当前位置: 首页 > 知识库问答 >
问题:

如何在添加优惠券代码(wordpress)后刷新/重新加载电子商务结账页面?

缪阎宝
2023-03-14

在添加优惠券代码后,我需要重新加载整个WooCommerce结账页面
我尝试了以下代码,但没有重新加载。

我需要此函数的原因是:
在添加优惠券代码后,审阅表的价格变为defalut语言价格
当我刷新页面时,它会显示翻译语言的价格,因此我需要重新加载它。

请告诉我如何重新加载好吗?

在签出页面中添加了以下代码:

jQuery(document).ajaxComplete(function(event, xhr, settings) {
    if (settings.url === '/?wc-ajax=apply_coupon') {
        location.reload();
    }
});
jQuery(document).ajaxComplete(function(event, xhr, settings) {
    if (settings.url === '/?wc-ajax=apply_coupon') {
    jQuery('body').trigger('update_checkout');
    }
});

订单审查表:

<div class="ea-woo-checkout-order-review">
        <div class="ea-checkout-review-order-table">
            <ul class="ea-order-review-table">
                                    <li class="table-header">
                        <div class="table-col-1"></div>
                        <div class="table-col-2"></div>
                        <div class="table-col-3"></div>
                                   </li>
                
        <li class="table-row cart_item">
        <div class="table-col-1 product-thum-name">
        <div class="product-thumbnail">
        <img width="300" height="200" src="https://www.myweb.com/wp-content/uploads/2021/06/LineOne_22-300x200.jpg" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="" loading="lazy">                              </div>
        <div class="product-name">Template Type&nbsp;&nbsp;</div>
        </div>
                                <div class="table-col-2 product-quantity">1</div>
                                <div class="table-col-3 product-total"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>820,000</bdi></span></div>
        </li>
        </ul>

        <div class="ea-order-review-table-footer">
        <div class="footer-content">
        <div class="cart-subtotal">
            <div></div>
            <div><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>820,000</bdi></span></div>
        </div>
        <div class="order-total">
        <div></div>
        <div><strong><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>820,000</bdi></span></strong> </div>
        </div>
                        </div>
        </div>
</div>
</div>

申请优惠券:

<div class="woo-checkout-coupon">
            <div class="ea-coupon-icon"><i aria-hidden="true" class="fas fa-percent"></i></div>
                            <div class="woocommerce-form-coupon-toggle">
    <div class="woocommerce-info">
        Have a coupon? <a href="#" class="showcoupon">Click here to enter your code</a> </div>
                </div>

                <form class="checkout_coupon woocommerce-form-coupon" method="post" style="">

                    <p>If you have a coupon code, please apply it below.</p>

                    <p class="form-row form-row-first">
                        <input type="text" name="coupon_code" class="input-text" placeholder="Coupon code" id="coupon_code" value="">
                    </p>

                    <p class="form-row form-row-last">
                        <button type="submit" class="button" name="apply_coupon" value="Apply Coupon">Apply Coupon</button>
                    </p>

                    <div class="clear"></div>
                </form>
</div>

共有2个答案

余善
2023-03-14

如果有人需要它它使用以下代码:

jQuery( document.body ).on( 'applied_coupon_in_checkout removed_coupon_in_checkout', function () {
    location.reload();
} );
杨赞
2023-03-14

你应该用

jQuery('body').trigger('update_checkout');

而不是

location.reload();

备选方案

add_action('wp_footer', 'woocommerce_custom_update_checkout', 50);

function woocommerce_custom_update_checkout()
{
  if (is_checkout()) {
?>
<script type="text/javascript">

  jQuery(document).ready($ => {

    $('input').on('change', () => {

      $('body').trigger('update_checkout');

    });

  });

</script>
 类似资料:
  • 我使用以下函数来接收订单的购物车总数、订单id和优惠券代码。该函数显示购物车的总金额和订单id,但不显示应用的优惠券代码。 根据Woocommerce codex的示例,它应该可以工作:http://docs.woothemes.com/document/send-coupons-used-in-an-order-by-email/

  • 我添加了快速结账按钮到我的页面,并使用客户端代码设置服务器端进程: 我使用服务器端。NET SDK通过通用处理程序创建和处理支付,它工作正常,但是在调用支付执行后,整个页面被重新加载。 我想通过执行监听器处理结果/错误-paypal。要求post(执行付款URL…)使用定义的回调。然后()和。catch()方法。 用于贝宝的互动演示https://developer.paypal.com/demo

  • 我想在注销后刷新/重新加载页面(屏幕上的消息在5秒钟内可见)。当前代码不会刷新它,所以我仍然在标题中看到用户名,而不是像登录按钮这样的东西。 我已经检查了这篇文章,但没有什么变化。

  • 我想重定向我的购物车/结账页面到新的页面,如果优惠券是在WooCommerce应用。我有一张免费打印的优惠券。如果用户应用它,我希望页面被重定向到一个新的页面,在那里用户可以选择一些产品。优惠券应用后,我很难重定向页面。任何问题都会得到极大的评价。 谢谢

  • 问题内容: 我正在尝试实现一些功能,即单击屏幕上的按钮将导致我的[QuerydataTable刷新(因为自创建dataTable以来服务器端数据源可能已更改)。 这是我所拥有的: 但是当我运行它时,它什么也没做。单击按钮时刷新dataTable的正确方法是什么?提前致谢! 问题答案: 您可以尝试以下方法:

  • 问题内容: 我正在使用Java进行项目,因此需要在单击特定按钮后重新加载整个程序。这该怎么做? 问题答案: 尝试 如果仍然无法使用,请在完成上述步骤后尝试