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

WooCommerce中应用优惠券时显示购物车单品折扣金额

在WooCommerce中获取单个购物车商品的折扣金额

WooCommerce内置了单个购物车商品的折扣计算逻辑,无需手动分配总折扣(可避免舍入误差)。每个购物车商品项已包含原价小计与折扣后小计,两者的差值即为该商品对应的折扣金额。

核心代码示例

// 遍历购物车所有商品
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
    // 商品原价小计(未折扣:数量 × 原价)
    $original_subtotal = $cart_item['line_subtotal'];
    // 商品折扣后小计
    $discounted_subtotal = $cart_item['line_total'];
    // 单个商品折扣金额
    $item_discount = $original_subtotal - $discounted_subtotal;

    // 输出示例(可根据需求调整展示逻辑)
    printf(
        '商品:%s,折扣金额:%s<br>',
        $cart_item['data']->get_name(),
        wc_price($item_discount)
    );
}

补充说明

  • 若需计算含税折扣金额,可使用税费相关字段的差值:
    $item_discount_tax = $cart_item['line_subtotal_tax'] - $cart_item['line_tax'];
    
  • 该方式的折扣分配逻辑完全遵循WooCommerce内置规则(如优惠券的百分比/固定金额、促销活动的优先级等),与总折扣get_cart_discount_total()的计算逻辑一致,不会出现手动分配的误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:59:58