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

WooCommerce:特定商品仅当购物车总额达标时才可加入购物车

嘿,这个需求完全可以通过自定义代码搞定,不用费劲找插件!我之前帮客户做过类似的“附加商品”逻辑,下面给你详细的实现步骤和代码,亲测有效~

实现核心思路

我们需要在用户尝试添加目标商品(也就是那个1美元的保险杠贴纸)到购物车时,做两个关键检查:

  • 当前要添加的商品是不是我们设定的“附加商品”
  • 购物车中排除这个附加商品后的总金额是否达到了25美元
    如果不满足第二个条件,就阻止添加并给用户明确的提示信息。
具体代码实现

你可以把下面的代码复制到你的WordPress主题(强烈建议用子主题,避免主题更新丢失代码)的functions.php文件里,或者封装成一个简单的自定义插件:

// 定义附加商品的ID和最低购物车金额(不含附加商品)
define('ATTACHMENT_PRODUCT_ID', 123); // 替换成你的保险杠贴纸商品ID
define('MIN_CART_TOTAL', 25); // 最低购物车总额要求

// 拦截添加到购物车的动作,进行验证
add_filter('woocommerce_add_to_cart_validation', 'restrict_attachment_product_add_to_cart', 10, 3);

function restrict_attachment_product_add_to_cart($passed, $product_id, $quantity) {
    // 检查当前要添加的是不是附加商品
    if ($product_id == ATTACHMENT_PRODUCT_ID) {
        $cart_total = 0;
        
        // 遍历购物车,计算除了附加商品之外的总金额
        foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
            if ($cart_item['product_id'] != ATTACHMENT_PRODUCT_ID) {
                $cart_total += $cart_item['line_total'];
            }
        }
        
        // 检查是否满足最低金额要求
        if ($cart_total < MIN_CART_TOTAL) {
            $passed = false;
            // 设置错误提示信息
            wc_add_notice( sprintf( '抱歉,只有当您的购物车中其他商品总额达到 %s 美元时,才能添加这款保险杠贴纸!', wc_price(MIN_CART_TOTAL) ), 'error' );
        }
    }
    
    return $passed;
}
代码说明
  1. 常量定义:开头的两个常量ATTACHMENT_PRODUCT_ID和MIN_CART_TOTAL,你只需要把123换成你实际的保险杠贴纸商品ID,把25换成你需要的最低金额就行。
  2. 钩子拦截:使用woocommerce_add_to_cart_validation这个WooCommerce核心钩子,它会在商品添加到购物车之前触发,我们可以在这里做验证并决定是否允许添加。
  3. 购物车总额计算:遍历购物车中的每个商品,只累加非附加商品的金额,这样就算用户已经添加过一次附加商品,也不会影响验证逻辑。
  4. 错误提示:如果不满足条件,就把$passed设为false,并用wc_add_notice显示友好的错误提示,用户会在页面上看到这个提示。
注意事项
  • 一定要使用子主题的functions.php,或者自己创建一个简单的自定义插件来放这段代码,不然主题更新后代码会丢失。
  • 如果你有多个这类附加商品,可以把ATTACHMENT_PRODUCT_ID改成数组,然后用in_array()来判断当前商品是不是附加商品。
  • 测试的时候记得清空购物车,或者模拟不同的购物车总额场景,确保逻辑正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:48:26