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

调整WooCommerce加入购物车代码以实现触发后停留在当前页面

解决WooCommerce添加购物车后跳转首页的问题

我来帮你搞定这个困扰!你现在用的直接链接方式会触发WooCommerce默认的GET请求跳转,所以总是回到首页。下面给你两种靠谱的解决方案:

方法1:利用WooCommerce自带的重定向参数

只需要给你的添加购物车链接加上&redirect_to参数,指定跳转回当前页面就行。你可以用PHP动态获取当前页面的URL,这样不管在哪个页面都能生效:

<a href="/?add-to-cart=25&quantity=3&redirect_to=<?php echo urlencode(get_permalink()); ?>">Add to Cart</a>

原理很简单:这个参数会告诉WooCommerce,完成添加购物车操作后,跳转到redirect_to指定的页面(也就是当前页面),而不是默认的首页。

方法2:无刷新AJAX添加(更推荐)

如果想要更流畅的用户体验,完全避免页面跳转,那用AJAX实现是最佳选择。步骤如下:

1. 修改HTML链接

给链接加一个自定义类,方便JS识别:

<a href="/?add-to-cart=25&quantity=3" class="ajax-add-to-cart">Add to Cart</a>

2. 添加JS代码监听点击

把这段代码放到你的主题functions.php里(用wp_enqueue_script加载),或者直接放到主题的自定义JS文件中:

jQuery(document).ready(function($) {
    // 监听自定义类的链接点击
    $('body').on('click', '.ajax-add-to-cart', function(e) {
        e.preventDefault(); // 阻止默认的页面跳转行为
        var addToCartUrl = $(this).attr('href');

        // 发送AJAX请求添加商品到购物车
        $.get(addToCartUrl, function(response) {
            // 显示成功提示(可以根据你的主题样式调整)
            $('.woocommerce-message').remove();
            $('body').prepend('<div class="woocommerce-message" role="alert">商品已成功加入购物车!</div>');
            
            // 刷新购物车图标(如果你的主题有购物车数量显示)
            $.get('/?wc-ajax=get_refreshed_fragments', function(fragments) {
                if (fragments && fragments['.cart-contents']) {
                    $('.cart-contents').replaceWith(fragments['.cart-contents']);
                }
            });
        });
    });
});

这种方式不仅不会跳转页面,还能实时更新购物车的数量显示,用户体验拉满!

额外检查项

别忘了去WooCommerce后台确认一下设置:进入WooCommerce → 设置 → 产品 → 常规,看看“添加到购物车行为”里有没有勾选“添加后重定向到购物车页面”,如果有的话取消勾选(不过你的情况是跳首页,大概率不是这个问题,但检查一下更稳妥)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:12:30