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

