当我向Woocommerce添加58.75运费时。将其四舍五入为59。 我要确切的运费58.75。
有人遇到过这个问题吗?
答案 0 :(得分:5)
/**
* Get rounding precision for internal WC calculations.
* Will increase the precision of wc_get_price_decimals by 2 decimals, unless WC_ROUNDING_PRECISION is set to a higher number.
*
* @since 2.6.3
* @return int
*/
function wc_get_rounding_precision() {
$precision = wc_get_price_decimals() + 2;
if ( absint( WC_ROUNDING_PRECISION ) > $precision ) {
$precision = absint( WC_ROUNDING_PRECISION );
}
return $precision;
}
请检查WC_ROUNDING_PRECISION是否已设置在其他位置(可能是在主题中)
您可以设置一些常量来更改舍入计算:https://github.com/woocommerce/woocommerce/blob/master/includes/class-woocommerce.php#L207-L209。我相信它们会在您的wp-config文件中更早地定义。
在这里可以看到,WC将主要使用较高的那个:https://github.com/woocommerce/woocommerce/blob/64bcabf0af9a05274d53ec833a4e8c9153509bc4/includes/wc-core-functions.php#L1549-L1553。 WC_ROUNDING_PRECISION常数,或者您设置的小数位数加2。
答案 1 :(得分:4)
答案 2 :(得分:3)
您应该检查主题文件。
导航到您的主题文件,该文件正在调用显示价格的函数。
可能有PHP函数 round()
文档:Click here
示例:
在主题文件中,可能会有这样的代码:
<?php echo round($price); ?>
您应该将其更改为:
<?php echo $price; ?>