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

WooCommerce中隐藏无定价商品的不含税价格问询

搞定WooCommerce无定价商品的0.00不含税价格问题

嘿,我知道你现在卡在这儿了——明明想让无定价商品只显示询价按钮,结果单品页还顽固地跳出0.00的不含税价格。之前的判断没用,问题出在你用了woocommerce_price()返回的格式化字符串来对比,它可不是纯纯的0.00哦,一般会带货币符号(比如$0.00),所以你的对比自然不生效。

给你两个靠谱的解决方案:

方案一:直接判断价格数值(最通用)

别用格式化后的字符串做判断了,直接拿get_price_excluding_tax()返回的原始数值来检查。修改/woocommerce/single-product/price.php里的代码:

<?php
// 先拿到不含税价格的纯数值
$excl_tax_price = $product->get_price_excluding_tax();
// 只有当价格大于0的时候才显示
if ($excl_tax_price > 0) {
    echo woocommerce_price($excl_tax_price);
}
?>

这个方法直接从源头判断,不管货币格式怎么变都能生效。

方案二:结合Call For Price插件精准判断

如果你的无定价商品都是用Call For Price插件标记的,那我们可以结合插件的标识来判断,避免误判正常的0元商品(如果有的话)。插件通常会给这类商品加个自定义字段,比如call_for_price_enabled,代码可以这么写:

<?php
// 检查当前商品是否开启了询价功能(字段名根据插件实际情况调整)
$is_call_for_price = get_post_meta($product->get_id(), 'call_for_price_enabled', true);
$excl_tax_price = $product->get_price_excluding_tax();

// 不是询价商品,且价格大于0时才显示不含税价格
if (!$is_call_for_price && $excl_tax_price > 0) {
    echo woocommerce_price($excl_tax_price);
}
?>

要是不确定插件用的哪个字段,你可以去商品编辑页的自定义字段里看看,或者翻一下插件的文档找对应的判断方法。

小提醒

修改模板文件之前,记得用子主题来改哦,不然主题一更新,你的代码就没了。如果还是有问题,不妨用var_dump($excl_tax_price)打印一下实际的数值,看看是不是判断条件哪里没写对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:38:44