You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EA Woo Checkout添加/移除优惠券后结账页无法自动刷新问题求助

失效原因

你之前写的代码无法触发是因为WooCommerce发起优惠券操作的AJAX请求时,URL会自动附带校验nonce、时间戳等额外查询参数,使用全等于(===)规则无法命中对应请求。同时你使用的Essential Addons的EA Woo Checkout模块有独立的更新事件,原生update_checkout无法覆盖其数据刷新。

可用解决方案

方案1:操作优惠券后全页刷新(最稳妥,100%同步翻译价格)

在结账页页脚插入如下代码即可:

jQuery(document).ready(function() {
    jQuery(document).ajaxComplete(function(event, xhr, settings) {
        // 模糊匹配包含优惠券操作的请求路径
        if (settings.url.includes('wc-ajax=apply_coupon') || settings.url.includes('wc-ajax=remove_coupon')) {
            // 加300ms延迟等待优惠券操作逻辑执行完成再刷新
            setTimeout(function() {
                location.reload();
            }, 300);
        }
    });
});

方案2:无刷新更新结账数据(用户体验更好)

如果不想全页刷新,可以用WooCommerce原生优惠券事件触发局部更新,同时适配EA Woo Checkout模块:

jQuery(document).ready(function() {
    // 监听优惠券应用、移除的原生完成事件
    jQuery(document).on('applied_coupon removed_coupon', function() {
        setTimeout(function() {
            // 触发WooCommerce原生结账更新
            jQuery('body').trigger('update_checkout');
            // 触发EA Woo Checkout订单预览模块的独立更新
            jQuery(document).trigger('ea_woo_checkout_update_order_review');
        }, 200);
    });
});

部署注意事项

  • 代码需要放在jQuery资源加载完成之后插入,避免出现jQuery is not defined报错
  • 部署完成后清空站点缓存、浏览器本地缓存后再测试效果

内容的提问来源于stack exchange,提问作者namari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:36:01