我如何停止在Woocommerce中调整运费

时间:2019-02-28 10:34:35

标签: php wordpress woocommerce rounding shipping

当我向Woocommerce添加58.75运费时。将其四舍五入为59。 我要确切的运费58.75。

有人遇到过这个问题吗?

3 个答案:

答案 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)

转到WooCommerce>设置>常规选项卡,并确认“小数位数”为2。

enter image description here

答案 2 :(得分:3)

您应该检查主题文件。

导航到您的主题文件,该文件正在调用显示价格的函数。

可能有PHP函数 round()

文档:Click here

示例:

在主题文件中,可能会有这样的代码:

<?php echo round($price); ?>

您应该将其更改为:

<?php echo $price; ?>