所以我有一个问题,我希望有人可以帮助我...我有一个使用WooCommerce的WordPress网站,我正在尝试做一些相对具体的事情。该网站对各种产品有大量的批量定价折扣。
现在谈到批量定价我需要用四位小数(即0.1234美元)进行计算,所以我有WooCommerce设置设置为小数位数为4.
事实上,我们的很多产品都没有批量定价折扣;在大多数情况下,四个小数位完全没必要。 (例如:$ 0.5500或$ 12.0000)有没有什么方法可以修剪尾随零但只有在小数点后第二位?例如,如果我有$ 0.5500,它将显示为0.55美元,如果我有12.0000美元,它将显示为12.00美元
我知道几年前问过一个非常相似的问题(see here),但不幸的是,在这种情况下起作用的答案对我来说似乎不起作用......话虽如此,我可能会尝试使用这是错误的方式。我不太熟悉在WordPress“functions.php”文件中使用正则表达式。
任何帮助都将非常感谢!谢谢!
编辑:
在这一点上,我有以下几点:
add_action('wc_price', 'custom_price_disp');
function custom_price_disp($price) {
$count = null;
$resultingPrice = preg_replace('/(?<=\d{2})(0+)$/', '', $price, -1, $count);
return $resultingPrice;
}
但是这段代码似乎不起作用。价格仍然与以前相同。
答案 0 :(得分:2)
您可以在functions.php
子主题中使用此功能,它可以正常工作并从每个价格中删除.00
:
add_filter('woocommerce_price_trim_zeros', 'wc_hide_trailing_zeros', 10, 1);
function wc_hide_trailing_zeros( $trim ) {
// set to false to show trailing zeros
return true;
}
答案 1 :(得分:1)
我自己没有使用它,但根据前面提到的wc_price()
方法的代码,看起来就像你可以利用过滤器一样:
if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
$price = wc_trim_zeros( $price );
}
您应该可以将此添加到functions.php
:
add_filter( 'woocommerce_price_trim_zeros', true );
触发此行为。