Woocommerce:除购物车、结账及迷你购物车外设置3位价格小数的问题
解决WooCommerce迷你购物车价格小数位数问题
要让迷你购物车也显示2位小数,你需要在判断条件里加入对迷你购物车AJAX请求的检测——因为迷你购物车通常是通过woocommerce_get_refreshed_fragments这个AJAX动作加载的。
修改后的代码如下:
add_filter( 'wc_get_price_decimals' , 'custom_price_decimals', 20, 1 ); function custom_price_decimals( $decimals ) { // 检测购物车页面、结账页面,以及迷你购物车的AJAX请求 if( is_checkout() || is_cart() || ( defined('DOING_AJAX') && DOING_AJAX && isset($_POST['action']) && $_POST['action'] === 'woocommerce_get_refreshed_fragments' ) ) { $decimals = 2; } else{ $decimals = 3; } return $decimals; }
代码说明:
defined('DOING_AJAX') && DOING_AJAX:判断当前是否为AJAX请求$_POST['action'] === 'woocommerce_get_refreshed_fragments':确认是WooCommerce默认用来更新迷你购物车内容的AJAX动作
替换你原有的代码后,迷你购物车的价格就会显示2位小数,其他页面保持3位小数的设置。
内容的提问来源于stack exchange,提问作者in2d
相关产品推荐
相关产品推荐

