我们的支付网关要求我们在 WooCommerce 中激活 2 位小数,导致价格如下所示:199.00
通过 WooCommece 的官方修复,.00 很容易隐藏
add_filter( 'woocommerce_price_trim_zeros', '__return_true' );
但是,我们遇到了应用百分比折扣的产品的问题,例如我们所有的产品捆绑包。
百分比折扣使价格不以 .00 结尾,而是以随机数字结尾,如 0.15、0.65 等。 我们如何解决这个问题,以便我们向上/向下舍入价格
184.15 至 184.00 184.65 至 185.00
搜索谷歌。搜索了 Stackoverflow,发现一些代码无法运行。
尽管如此,您可以从 WooCommerce 管理 > 常规设置 中删除小数位。但是,如果它不能解决问题,您可以尝试使用 raw_woocommerce_price 过滤器来四舍五入产品价格。以下代码将有助于做到这一点。
add_filter( 'raw_woocommerce_price', 'wp_raw_woocommerce_price_filter', 10, 2 );
/**
* Function for `raw_woocommerce_price` filter-hook.
*
* @param float $raw_price Raw price.
* @param float|string $original_price Original price as float, or empty string. Since 5.0.0.
*
* @return float
*/
function wp_raw_woocommerce_price_filter( $raw_price, $original_price ){
// converto non-decimal number
return intval($raw_price);
}