注意WC_ROUNDING_PRECISION
常数设置为6
in WC_WoocommerceDefine_constants() 方法 https://github.com/woocommerce/woocommerce/blob/5.0.0/includes/class-woocommerce.php#L241.
这意味着WooCommerce 税收计算精度已设置为 6 位小数。
税收计算精确是基于wc_get_rounding_precision()核心功能 https://github.com/woocommerce/woocommerce/blob/5.0.0/includes/wc-core-functions.php#L1844-L1857用于WC_Tax Class https://github.com/woocommerce/woocommerce/blob/5.0.0/includes/class-wc-tax.php#L37:
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
常数优先,如果显示价格小数值 + 2小于WC_ROUNDING_PRECISION
持续的。但正如你想保留的那样显示的价格保留两位小数,这需要其他东西。
因此,您不应增加显示的价格小数位,也不应使用wc_price_args
or/and wc_get_price_decimals
钩子,以提高税收计算的准确性。
If 6 位小数的精度不够并且您想要获得更高的精度:
如何提高税务计算的准确性?
获得更精确的税收计算并保持显示价格保留 2 位小数的最佳方法是编辑 WordPress wp config.php 文件并添加以下行(您可以在其中增加WC_ROUNDING_PRECISION
你喜欢的常数值,这里的值设置为8例如):
// Change WooCommerce rounding precision
define('WC_ROUNDING_PRECISION', 8);
这将会改变WC_ROUNDING_PRECISION
常数,不影响显示的价格小数。