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

WooCommerce如何禁用加入购物车提交后自动跳转至购物车页面

相关代码片段
<div class="submit-group">
<button class="btn btn-green btn-large btn-full upper btn-book-ajax" type="submit" name="submit">
Book Now                                                                    
<i class="fa fa-spinner fa-spin hide"></i>
</button>
<input style="display:none;" type="submit" class="btn btn-default btn-send-message" data-id="9278" name="st_send_message" value="Send message">
</div>
需求说明

上述代码中class属性为btn btn-green btn-large btn-full upper btn-book-ajax的按钮,功能与WooCommerce默认的「add to cart(加入购物车)」按钮完全一致,需要实现:禁用点击该类加入购物车按钮完成提交后,自动跳转至购物车页面的默认行为。

实现方案

按优先级从高到低可选择以下方案:

  • 后台可视化配置(无代码,优先选择)
    进入WordPress后台,打开「WooCommerce → 设置 → 产品 → 通用」页面,找到「添加购物车后行为」配置项,将默认的「跳转到购物车页面」修改为「无(停留在当前页面)」,保存配置后即可全局生效,所有遵循WooCommerce原生加购逻辑的按钮都会取消自动跳转。

  • 原生过滤器修改(后台配置不生效时使用)
    若主题或第三方插件重写了加购逻辑导致后台配置失效,可将以下代码添加到当前主题/子主题的functions.php文件中,通过WooCommerce官方钩子强制取消跳转:

    // 取消加购后自动跳转购物车
    add_filter('woocommerce_add_to_cart_redirect', '__return_false');
    

    如果只需要针对当前这个带btn-book-ajax类的按钮单独取消跳转,不影响其他加购按钮的行为,可以配合前后端逻辑做定向判断:

    1. 加一段前端JS,给对应按钮提交的表单加自定义标记:
    document.addEventListener('DOMContentLoaded', () => {
      const ajaxBookBtn = document.querySelector('.btn-book-ajax');
      if (ajaxBookBtn) {
        ajaxBookBtn.addEventListener('click', function() {
          const markInput = document.createElement('input');
          markInput.type = 'hidden';
          markInput.name = 'stop_cart_jump';
          markInput.value = '1';
          this.closest('form').appendChild(markInput);
        });
      }
    });
    
    1. 调整后端过滤逻辑,仅识别到自定义标记时才取消跳转:
    add_filter('woocommerce_add_to_cart_redirect', function($targetUrl) {
      if (isset($_POST['stop_cart_jump']) && $_POST['stop_cart_jump'] === '1') {
        return false;
      }
      return $targetUrl;
    });
    
  • AJAX加购场景特殊处理
    该按钮带有btn-book-ajax类名,默认走AJAX异步提交逻辑,WooCommerce原生AJAX加购本身不会触发页面跳转,如果出现自动跳转,基本是主题或插件自定义了added_to_cart事件的跳转逻辑。可以先在站点JS代码中搜索wc_add_to_cart_params.cart_url关键字,找到绑定跳转的逻辑段删除或加判断拦截;如果找不到对应代码,可直接加高优先级事件阻止跳转执行:

    // 优先级设为最高,拦截其他绑定在added_to_cart上的跳转逻辑
    jQuery(document.body).on('added_to_cart', function(e) {
      e.stopImmediatePropagation();
      // 可在此处自定义加购成功后的反馈,比如弹出成功提示
    }, 999);
    

操作提示:修改主题文件前请提前备份,避免语法错误导致站点运行异常。

内容的提问来源于stack exchange,提问作者gulf optics web master

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:18:14