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

WooCommerce升级后税率0%明细税行不显示及0%税行显示需求

解决WooCommerce 0税率时隐藏税行的问题

嘿,这个问题我之前升级WooCommerce的时候也踩过坑!默认情况下,WooCommerce会自动隐藏金额为0的税行,哪怕你开了「显示税费总计:分项」选项。不过通过几个简单的钩子就能搞定,让0税率的税行在购物车、结账页、邮件和发票里都正常显示。

方案1:核心过滤器强制显示0税率税行

WooCommerce有个内置的过滤器woocommerce_hide_zero_tax,默认返回true(也就是隐藏0金额的税行),我们只需要把它改成false就能全局生效:

// 强制显示所有0税率的税行,覆盖WooCommerce默认行为
add_filter( 'woocommerce_hide_zero_tax', '__return_false' );

这个代码会直接告诉WooCommerce:不管税金额是多少,都不要隐藏对应的税行。它会作用于购物车、结账页面、订单邮件,以及大部分主流发票插件(比如官方的WooCommerce PDF发票插件)。

方案2:自定义税行输出(适配特殊场景)

如果遇到某些主题或第三方插件还是不显示0税率税行,可以再添加一个钩子,手动控制税行的输出内容,确保标签和金额都能正常展示:

// 自定义购物车/结账页的税行显示
add_filter( 'woocommerce_cart_totals_tax_html', 'force_display_zero_tax_label', 10, 2 );
// 自定义订单邮件/发票的税行显示
add_filter( 'woocommerce_order_totals_tax_html', 'force_display_zero_tax_label', 10, 2 );

function force_display_zero_tax_label( $html, $tax ) {
    // 当税金额为0时,手动拼接标签和0金额的显示内容
    if ( wc_format_decimal( $tax->get_amount(), wc_get_price_decimals() ) == 0 ) {
        $html = '<span class="tax-label">' . esc_html( $tax->get_label() ) . '</span> <span class="tax-amount">' . wc_price( 0 ) . '</span>';
    }
    return $html;
}

使用方法

把上面的代码添加到你的WordPress主题的functions.php文件末尾,或者用「Code Snippets」这类自定义代码插件来添加(更推荐后者,避免主题升级导致代码丢失)。

测试验证

添加代码后,记得做以下测试确认效果:

  • 设置一个0税率的税类,添加商品到购物车,查看购物车/结账页是否显示税行
  • 模拟下单流程,检查订单确认邮件里的税行显示
  • 如果用了发票插件,生成一张发票确认税行是否正常展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:10:31