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

WooCommerce结账页订单总额为0时隐藏order-total区块的代码问题咨询

WooCommerce结账页订单金额为0时隐藏order-total模块修复方案

问题原因

  • 变量语法错误:PHP中变量必须以$符号开头,原代码漏写变量前缀,导致$cart_total未定义,值为null。PHP松散比较规则下null == 0返回结果为真,因此条件判断永远成立,无论实际金额多少都会执行移除操作。
  • 金额取值方法错误:WC()->cart->get_cart_total()返回的是带货币符号、千位分隔符的格式化字符串,无法直接用于数值比较,即使语法修正后也会出现判断异常。

修复后代码

// 结账页订单总金额为0时移除订单总览模块
add_action( 'woocommerce_checkout_order_review', 'remove_checkout_totals', 1 );
function remove_checkout_totals(){
    // 获取纯数值类型的购物车总金额
    $cart_total = floatval( WC()->cart->get_total( 'edit' ) );
    // 浮点型判断增加精度容错,避免精度误差导致判断失效
    if ( $cart_total < 0.01 ) {
        remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
    }
}

改动说明

  • 补全变量前缀$,修正变量未定义问题
  • 改用get_total('edit')获取未格式化的原始金额,通过floatval转换为浮点型数值,适配数值比较逻辑
  • 用区间判断替代全等判断,避免浮点型精度问题导致的判断误差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:36:03