如何让WP Configurator Pro的Ajax加入购物车按钮跳转至购物车页面
解决WP Configurator Pro Ajax加购按钮点击后跳转购物车的问题
你的原有代码问题在于:直接触发按钮点击后立刻跳转,忽略了Ajax请求的异步特性——商品还没完成添加操作,页面就已经跳走了,而且逻辑上没有正确绑定按钮的点击交互,而是主动触发点击,自然达不到预期效果。
以下是两种可行的解决方案:
方案一:监听插件加购成功事件(推荐)
通过监听插件内置的加购成功回调事件,确保商品真正加入购物车后再跳转,这是最可靠的方式:
add_action( 'wp_footer', 'wpc_pro_ajax_add_to_cart_redirect' ); function wpc_pro_ajax_add_to_cart_redirect() { // 仅在产品相关页面加载脚本,可根据需求调整 if ( ! is_product() && ! is_product_category() ) return; ?> <script type="text/javascript"> (function($){ // 监听WP Configurator Pro的加购成功事件(部分插件会触发此类自定义事件) $(document).on('wpc_add_to_cart_success', function(){ // 跳转至WordPress默认购物车页面,无需硬编码链接 window.location.href = '<?php echo wc_get_cart_url(); ?>'; }); })(jQuery); </script> <?php }
方案二:绑定按钮点击并延迟跳转
如果插件没有提供可监听的成功事件,可通过短暂延迟确保Ajax请求完成后再跳转:
add_action( 'wp_footer', 'wpc_pro_ajax_add_to_cart_redirect' ); function wpc_pro_ajax_add_to_cart_redirect() { if ( ! is_product() && ! is_product_category() ) return; ?> <script type="text/javascript"> (function($){ // 绑定插件加购按钮的点击事件 $(document).on('click', '.js-wpc-submit-cart-form', function(){ // 设置500ms延迟,确保Ajax请求完成(可根据服务器响应速度调整时长) setTimeout(function(){ window.location.href = '<?php echo wc_get_cart_url(); ?>'; }, 500); }); })(jQuery); </script> <?php }
注意事项
- 确认按钮类名:通过浏览器开发者工具检查插件加购按钮的实际类名,确保
.js-wpc-submit-cart-form是正确的,若不符需替换为实际类名。 - 清除缓存:修改代码后务必清除网站缓存(包括浏览器缓存、插件缓存),避免旧代码影响效果。
- 延迟时长调整:方案二中的延迟时间如果过短,可能仍会出现跳转过早的情况,可根据实际测试调整数值。
内容的提问来源于stack exchange,提问作者Pptinyint
相关产品推荐
相关产品推荐

