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
相关产品推荐
相关产品推荐

