WooCommerce如何获取促销商品不含税的常规价格
WooCommerce 获取不含税常规价格实现方法
直接读取$product->regular_price属性拿到的是商品后台存储的原始常规价数值,不会跟随站点含税/不含税展示配置做自动换算,因此会和你已经处理为不含税的促销价计税口径不一致。
直接使用WooCommerce原生的价格计税函数处理常规价格即可,不需要手动计算税率,修正后的代码如下:
if( $product->is_on_sale() ) { // 换算常规价格为不含税口径 $regular_price_excl_tax = wc_get_price_excluding_tax( $product, array( 'price' => $product->get_regular_price() ) ); // 输出带删除线的原价,用wc_price统一格式化价格 printf( '<div style="text-decoration: line-through" class="original_price">%s</div>', wc_price($regular_price_excl_tax) ); } // 输出不含税促销价 echo wc_price( wc_get_price_excluding_tax( $product ) ); // 应税商品追加税费标识 if ( $product->is_taxable() ) { echo ' +VAT'; }
实现注意点
- 不要直接访问
$product->regular_price属性取值,统一使用$product->get_regular_price()方法获取原始常规价,兼容WooCommerce版本迭代,避免属性访问权限报错。 wc_get_price_excluding_tax()会自动读取站点后台配置的税率规则做换算,不需要手动编写税率计算逻辑,不会出现计算误差。- 所有价格输出统一使用
wc_price()函数格式化,会自动适配站点配置的货币符号、千分位/小数位规则,不要硬编码£这类货币符号,避免多货币、多地区站点显示异常。
内容的提问来源于stack exchange,提问作者user1717321
相关产品推荐
相关产品推荐

