过滤后

时间:2017-11-01 09:59:28

标签: 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', 'change_price', 10, 1 );

如果价格是45.000(四万五千),它不会变成90(九十),我希望它是90.000。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

问题是PHP将“45.000”表示为“45”,因为点是小数分隔符,而您的价格使用它来表示数千(某些国家/地区,并且他们将使用逗号分隔小数) )。

function change_price( $price ) {
    $price = str_replace(".", "", $price);
    $price = $price * 2;
    return number_format($price,0, '', '.');
}
add_filter( 'price_format', 'change_price', 10, 1 );

在这种情况下可以工作,首先删除千位分隔符,进行计算并再次以原始格式添加它。

请注意,如果您的价格不是整数(例如45000.99),则会将价格四舍五入到最接近的整数,因为number_format的第三个参数为空。你不能对此做很多事情,因为它已经出现在应用过滤器的原始函数中。

答案 1 :(得分:0)

尝试

<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
<script src="https://threejs.org/examples/js/libs/tween.min.js"></script>