在 Woocommerce 中显示两位小数价格四舍五入到一位小数

问题描述 投票:0回答:1

正在制作一条消息,通知客户有关运费的信息,如果他/她再花费 XX 美元,则可以享受免费送货。

我使用了各种钩子来决定其显示位置(产品页面、购物车、结帐等),但我真正遇到的问题是如何四舍五入成本。

顾客消费满59美元可免运费。但如果客户添加

58.xx
的产品,消息将显示为,
"Spend 0.1223242 dollars more and get free shipping"

如何将其更改为两位小数以及如何让它理解

0.1223
等于
0.10
以及
0.15544
等于
0.2
等等? (我希望这是足够清晰且容易理解的)。

这是我使用的代码:

function show_shipping_message() {
    global $woocommerce;  
    $total_cart = $woocommerce->cart->total;
    $limit_free_shipping = 59;

    if ($total_cart != 0 && $total_cart < $limit_free_shipping) { 
    $dif = $limit_free_shipping - $total_cart;

    ?>
    <p class="free-shipping-notice" >
    <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/shipping-icon.png"> <?php _e('TEXT', THEME_TEXT_DOMAIN); ?> <?php echo $dif; ?> <?php _e('dollar, TEXT', THEME_TEXT_DOMAIN); ?> <strong><?php _e('TEXT', THEME_TEXT_DOMAIN); ?></strong>
    </p>

    <?php
    } 
    }

如果有人可以提供帮助,我将非常感激。提前致谢。如果有人知道如何在从迷你购物车中删除商品后自动更新,那就太好了。再次提前致谢。

php wordpress woocommerce rounding price
1个回答
2
投票

您可以这样使用功能

round()
number_format()

echo number_format( round(0.1223242, 1), 2 ); // will display: 0.10

您将得到的价格首先四舍五入到一位小数,但根据您的需要以两位小数显示。


您还可以将

round()
与 Woocommerce
wc_price()
格式化价格功能一起使用:

echo wc_price( round(0.1223242, 1) ); // will display: $0.10

您将获得格式化的价格 (四舍五入到一位小数),但显示为其他 Woocommerce 价格 (带有货币符号的 2 位小数显示)...

© www.soinside.com 2019 - 2024. All rights reserved.