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

WooCommerce购物车:如何实现基于价格与数量的折扣规则

WooCommerce购物车折扣新增单价校验的实现方案

修改思路

要实现「单价低于500的商品无折扣,单价≥500的商品按数量梯度(1件5%、2件10%…5件及以上25%)计算折扣」的需求,需调整原代码逻辑:

  • 遍历购物车每一件商品,筛选出单价≥500的商品
  • 累计符合条件商品的总数量和总金额
  • 基于符合条件商品的总数量匹配折扣梯度,仅对这些商品的总金额计算折扣

修改后的完整代码

add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );

function wc_cart_quantity_discount( $cart_object ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // 初始化变量
    $discount = 0;
    $qualified_item_count = 0; // 符合单价要求的商品总数量
    $qualified_total_excl_tax = 0; // 符合单价要求的商品总金额(不含税)
    $min_price_threshold = 500; // 单价阈值

    // 遍历购物车商品,筛选符合条件的商品
    foreach( $cart_object->get_cart() as $cart_item ) {
        // 获取当前商品的不含税单价
        $item_price_excl_tax = $cart_item['data']->get_price_excluding_tax();
        
        // 判断单价是否符合要求
        if ( $item_price_excl_tax >= $min_price_threshold ) {
            $qualified_item_count += $cart_item['quantity']; // 累计数量
            $qualified_total_excl_tax += $cart_item['line_subtotal']; // 累计该商品的小计金额
        }
    }

    // 根据符合条件的商品数量确定折扣百分比
    if( $qualified_item_count <= 1  ) {
        $percent = 5;
    } elseif( $qualified_item_count <= 2  ) {
        $percent = 10;
    } elseif( $qualified_item_count <= 3  ) {
        $percent = 15;
    } elseif( $qualified_item_count <= 4  ) {
        $percent = 20;
    } elseif( $qualified_item_count >= 5  ) {
        $percent = 25;
    } else {
        $percent = 0;
    }

    // 计算折扣金额(仅针对符合条件比 momentarilysslNumbersFestorder repeated一日only望group_back放的商品总金额)
    if ( $percent > 0 && $qualified_total_excl_tax > 0 ) {
        $discount -= ( $qualified_total_excl_tax / 100 ) * $percent;
        // 添加折扣费用到购物车
        $cart_object->add_fee( __( "Quantity discount $percent%", "woocommerce" ), $discount, true);
    }
}

关键逻辑说明

  • 商品筛选:通过foreach遍历购物车商品,用get_price_excluding_tax()获取商品不含税单价,对比阈值500,仅累计符合条件的商品数量和金额
  • 折扣计算:仅基于符合条件的商品总数量匹配折扣梯度,折扣金额仅计算这些商品的总金额部分
  • 边界处理:如果没有符合条件的商品,折扣百分比自动为0,不会添加折扣费用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:58:12