2

一直在处理一条消息,通知客户有关运费的信息,如果他/她再花费 XX 美元,将提供免费送货服务。

我已经使用了各种钩子来显示它的显示位置(产品页面、购物车、结帐等),但我真正遇到的问题是如何降低成本。

如果客户花费至少 59 美元,它将提供免费送货服务。但是如果客户添加产品58.xx的消息会显示为,"Spend 0.1223242 dollars more and get free shipping"

如何将其更改为两位小数,如何使其理解0.1223等于0.100.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
    } 
    }

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

4

1 回答 1

2

您可以通过round()以下number_format()方式使用这些功能:

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

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


您还可以使用round()Woocommercewc_price()格式化价格功能:

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

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

于 2018-10-19T11:31:04.703 回答