【问题标题】:How to round WooCommerce product prices to the tens digit place?如何将 WooCommerce 产品价格四舍五入到十位数?
【发布时间】:2021-04-14 23:40:24
【问题描述】:

我已经搜索了整个网络,但找不到任何解决方案。所以我使用插件将固定的美元产品价格转换为当前美元/澳元汇率的澳元。它是实时运行的,所以结果应该是 3257.2485131867 澳元。

现在我使用下面的代码 sn-p 删除所有小数,这样价格可以显示为 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

有什么想法吗?任何意见表示赞赏。

【问题讨论】:

    标签: php wordpress woocommerce rounding price


    【解决方案1】:

    请注意,自 WooCommerce 3 以来,钩子 woocommerce_get_price 已被弃用(您的代码中也缺少该函数)

    要将产品价格四舍五入,round() PHP function 中有第二个参数,您可以将其设置为 -1,例如:

    round( $price, -1 )
    

    现在在您的代码中使用 woocommerce_get_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,你的代码就像一个魅力,我的网站现在看起来好多了!真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多