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

WooCommerce可变商品加入购物车自定义跳转:实现仅跳转不添加商品

解决WooCommerce仅跳转不添加商品到购物车的问题

你当前的代码用的是woocommerce_add_to_cart_redirect钩子,这个钩子是商品已经成功加入购物车之后才触发的,所以不管怎么跳转,商品已经被加到购物车里了。要实现仅跳转不添加,需要换用更早的钩子来阻止购物车添加操作。

修改方案:

改用woocommerce_add_to_cart_validation钩子——这个钩子是在商品加入购物车之前执行的验证环节,返回false就能直接阻止添加操作,同时在这个环节里完成跳转逻辑。

修改后的完整代码:

add_filter( 'woocommerce_add_to_cart_validation', 'custom_prevent_add_to_cart_and_redirect', 10, 5 );
function custom_prevent_add_to_cart_and_redirect( $passed, $product_id, $quantity, $variation_id, $variations ) {
    // 定义需要跳转的变体ID数组
    $target_variation_ids = array( 341, 2992 );
    
    // 检查当前提交的变体ID是否在目标数组里
    if ( in_array( absint( $variation_id ), $target_variation_ids ) ) {
        wp_redirect( 'http://google.pl' ); // 替换成你的目标跳转地址
        exit; // 终止后续执行,确保跳转生效
    }
    
    return $passed; // 其他商品正常执行添加购物车逻辑
}

关键修改点说明:

  • 更换钩子:用woocommerce_add_to_cart_validation替代woocommerce_add_to_cart_redirect,提前拦截添加操作
  • 合并判断逻辑:把两个单独的if合并成一个数组判断,代码更简洁易维护
  • 拦截添加操作:当触发跳转时,exit会终止程序,自然阻止商品加入购物车;其他情况返回$passed保持原有逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:55:32