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

WooCommerce购物车小计显示原价问题求助(Hook代码异常)

WooCommerce购物车小计显示原价总和问题修复

你的代码逻辑存在核心问题:遍历购物车商品时,每次循环都直接把$subtotal替换为当前商品的原价小计,循环结束后只会保留最后一件商品的价格,无法计算所有商品的原价总和。

修复后的代码如下:

function filter_woocommerce_cart_subtotal( $subtotal, $compound, $cart ) {
    // 初始化原价总和变量
    $regular_total = 0;
    
    // 遍历购物车商品,累加所有商品的原价×数量
    foreach ( $cart->get_cart() as $cart_item ) {
        $regular_total += $cart_item['data']->get_regular_price() * $cart_item['quantity'];
    }
    
    // 格式化总价后返回
    return wc_price( $regular_total );
}
add_filter( 'woocommerce_cart_subtotal', 'filter_woocommerce_cart_subtotal', 10, 3 );

关键改动说明

  • 新增$regular_total变量专门用于累加总金额,避免循环覆盖问题
  • 直接使用钩子传入的$cart参数(无需额外调用WC()->cart),代码更规范
  • 用+=运算符累加每个商品的原价与数量的乘积,最后统一格式化价格输出

内容的提问来源于stack exchange,提问作者social.reza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:24:29