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

Woocommerce撤销删除商品后重定向至购物车的实现方法

实现撤销购物车删除商品后的重定向

你已经通过template_redirect钩子搞定了删除商品后的重定向,那撤销操作的逻辑其实可以复用同一个钩子,只需要额外判断恢复商品对应的参数就行,非常简单。

Woocommerce在点击「Undo」恢复购物车商品后,会在URL中带上restored_item=1这个参数(你可以自己点击Undo后观察地址栏确认),所以我们只需要在现有代码里新增这个判断条件即可。

修改后的完整代码如下:

add_action( 'template_redirect', function() {
    // 获取删除商品和恢复商品的参数
    $removed_item = $_GET['removed_item'] ?? null;
    $restored_item = $_GET['restored_item'] ?? null;

    // 只要满足其中一个条件,就重定向到购物车页面
    if ( $removed_item === '1' || $restored_item === '1' ) {
        wp_safe_redirect( '/cart', 301 );
        die();
    }
} );

几个小补充:

  • 这个代码完全兼容你原来的逻辑,只是新增了对恢复操作的判断,不用改动原有功能
  • 不管购物车最终是空还是有商品,都会强制跳转到/cart页面,完全符合你的需求
  • 用wp_safe_redirect比直接写header()更安全,能自动过滤不安全的跳转目标
  • 这里用的是301永久重定向,如果需要临时重定向(比如测试阶段),可以把301改成302

如果你的Woocommerce版本比较特殊,参数可能有变化,你可以自己点击Undo后看一下地址栏的URL,比如会显示类似yourdomain.com/cart?restored_item=1,这样就能确认参数是否正确。绝大多数官方版本的Woocommerce都是用这个参数的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:26:22