在我的基于woocommerce的商店中,我已经将购物车和结账页面合并为一个页面,它运行得很好,但是当我尝试删除优惠券时出现了一个问题。优惠券通过 AJAX 处理从购物车中删除,所以当删除完成时-页面不会重新加载,优惠券仍然显示为已应用(但实际上它被删除了)。所以我需要禁用AJAX的应用/删除优惠券功能。
我试着把这段代码添加到我的主题的 functions.php 中:
function disable_checkout_script() {
wp_dequeue_script( 'wc-checkout' );
}
add_action( 'wp_enqueue_scripts', 'disable_checkout_script' );
它解决了我的问题,但这段代码在结帐页面禁用了所有 AJAX ,我想只在应用/删除优惠券时禁用Ajax,并保存另一个Ajax处理,如账单/发货字段的验证。
请帮忙,不幸的是,我不是一个JSMaven。
2条答案
按热度按时间cl25kdpy1#
在JS文件中,你需要删除几个事件处理程序。当按下删除优惠券按钮时,以及当提交优惠券表单时,都会触发一个事件。
相关行是
woocommerce/assets/js/frontend/checkout.js
的381 - 383(WooCommerce加载此文件的缩小版本)。您需要删除2和3。
将以下代码添加到JS文件:
smdncfj32#
对于任何其他人寻找一个解决方案,以禁用 AJAX 和强制刷新结帐页面,并遇到了这篇文章,这里是我发现为我工作,而不必编辑WooCommerce插件中的任何核心功能文件。注意,然而,它实际上并没有禁用AJAX,但它成功地刷新了整个结帐页面后删除。
jQuery代码:这会在单击remove按钮400ms后强制页面刷新,以确保 AJAX 删除命令首先执行。
然后将.js文件链接到checkout页面(添加到主题的functions.php或创建一个插件)。
我是这样做的: