Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将商业产品价格调整到十位数?_Php_Wordpress_Woocommerce_Rounding_Price - Fatal编程技术网

Php 如何将商业产品价格调整到十位数?

Php 如何将商业产品价格调整到十位数?,php,wordpress,woocommerce,rounding,price,Php,Wordpress,Woocommerce,Rounding,Price,我已经在网上搜索过了,但找不到任何解决办法。因此,我使用一个插件将固定的美元产品价格转换为当前美元/澳元汇率的澳元。它是实时运行的,因此结果可能是3257.2485131867澳元 现在我使用下面的代码片段删除所有小数,这样价格就可以显示为$3257.00,这很好 add_filter( 'raw_woocommerce_price', 'round_price_product', 10, 1); add_filter( 'woocommerce_get_price_excluding_tax'

我已经在网上搜索过了,但找不到任何解决办法。因此,我使用一个插件将固定的美元产品价格转换为当前美元/澳元汇率的澳元。它是实时运行的,因此结果可能是3257.2485131867澳元

现在我使用下面的代码片段删除所有小数,这样价格就可以显示为$3257.00,这很好

add_filter( 'raw_woocommerce_price', 'round_price_product', 10, 1);
add_filter( 'woocommerce_get_price_excluding_tax', 'round_price_product', 10, 1 );
add_filter( 'woocommerce_get_price_including_tax', 'round_price_product', 10, 1 );
add_filter( 'woocommerce_tax_round', 'round_price_product', 10, 1);
add_filter( 'woocommerce_get_price', 'round_price_product', 10, 1);
add_filter( 'raw_woocommerce_price', 'round_price_product', 10, 1);
        
    // Return rounded price
    return round( $price );
}
但是,既然3257.00美元这个数字看起来不太令人满意,有没有办法将其四舍五入到3260.00美元,这样看起来会更好?基本上,我想把一位数字显示为0

类似的例子:

2398美元->2400美元

$5243->$5240

7567美元->7570美元


有什么想法吗?欢迎您的任何输入。

请注意,自从woocommerce 3以来,hook
woocommerce\u get\u price
已被弃用(代码中也缺少该功能)

要将产品价格四舍五入到十位数,有第二个参数,您可以设置为
-1
,如下所示:

round( $price, -1 )
现在,在您的代码中,有
woocommerce\u get\u price
的替换挂钩:

add_filter( 'raw_woocommerce_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_get_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_get_regular_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_variation_get_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_variation_get_regular_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_get_price_excluding_tax', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_get_price_including_tax', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_tax_round', 'round_price_product', 1000, 1 );
function round_price_product( $price ){
    // Return rounded price
    return round( $price, -1 );
}

代码进入活动子主题(或活动主题)的functions.php文件。它应该可以工作。

请注意,自从woocommerce 3以来,hook
woocommerce\u get\u price
已被弃用(代码中也缺少该功能)

要将产品价格四舍五入到十位数,有第二个参数,您可以设置为
-1
,如下所示:

round( $price, -1 )
现在,在您的代码中,有
woocommerce\u get\u price
的替换挂钩:

add_filter( 'raw_woocommerce_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_get_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_get_regular_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_variation_get_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_product_variation_get_regular_price', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_get_price_excluding_tax', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_get_price_including_tax', 'round_price_product', 1000, 1 );
add_filter( 'woocommerce_tax_round', 'round_price_product', 1000, 1 );
function round_price_product( $price ){
    // Return rounded price
    return round( $price, -1 );
}

代码进入活动子主题(或活动主题)的functions.php文件。它应该可以工作。

非常感谢LoicTheAztec,你的代码工作得很有魅力,我的网站现在看起来好多了!真的很感激。非常感谢LoicTheAztec,你的代码工作起来很有魅力,我的网站现在看起来好多了!非常感谢。