Wordpress 过滤后的数字格式错误
我的一个Wordpress插件输出一个价格,我想用集成过滤器改变这个价格。资料来源如下:Wordpress 过滤后的数字格式错误,wordpress,filter,number-formatting,Wordpress,Filter,Number Formatting,我的一个Wordpress插件输出一个价格,我想用集成过滤器改变这个价格。资料来源如下: $price_str = apply_filters( 'price_format', number_format($price,0,'', '.') ); 添加我已添加此筛选器: function change_price( $price ) { $price = $price * 2; return $price; } add_filter( 'price_format', 'c
$price_str = apply_filters( 'price_format', number_format($price,0,'', '.') );
添加我已添加此筛选器:
function change_price( $price ) {
$price = $price * 2;
return $price;
}
add_filter( 'price_format', 'change_price', 10, 1 );
如果价格是45.000(四万五千),它不会变成90(九十),我希望它是90.000
为什么会这样?试试看
function change_price( $price ) {
$price = floatval($price) * 2;
return $price;
}
add_filter( 'price_format', 'change_price', 10, 1 );
问题是PHP将“45.000”表示为“45”,因为点是十进制分隔符,而您的价格使用它表示千(有些国家使用逗号分隔小数) 将在这种情况下工作,首先删除千分隔符,进行计算,然后以最初的格式再次添加它
请注意,如果您的价格不是整数(想想45000.99),这将使价格四舍五入到最接近的整数,因为number_格式的第三个参数为空。对此您不能做太多,因为它已经出现在应用过滤器的原始函数中。谢谢!工作出色!
function change_price( $price ) {
$price = str_replace(".", "", $price);
$price = $price * 2;
return number_format($price,0, '', '.');
}
add_filter( 'price_format', 'change_price', 10, 1 );