WooCommerce以数字格式获取购物车总价

时间:2013-09-24 作者:Trekdrop

有没有可能在没有任何加价的情况下得到购物车的总价。所以没有欧元符号?现在,我通过以下方式获得金额:

$totalamount = $woocommerce->cart->get_cart_total();  
这将提供16.50欧元

我也试过:

$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, \'.\', \'\');
但这总是给0.00

是否有一个woocommerce get函数可以给出购物车总价的数字格式?谢谢

2 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

2020年更新

Answer

看见flytech\'s answer 对于使用本机WooCommerce API的解决方案。

Note / Caveat

如果你要对货币价值进行适当的计算,always use signed integers (!) representing the smallest denomination of a given currency (美分、便士、佩萨、迪拉姆等)
只有在所有计算完成后,才能在应用程序的表示层中转换回小数。

无论语言或框架如何,这都是正确的。

最初的答案是,我根本不懂woocommerce,因此也可能有一种本土的方式,但无论如何,这

$amount = floatval( preg_replace( \'#[^\\d.]#\', \'\', $woocommerce->cart->get_cart_total() ) );
应该这样做。

这个preg_replace 消除除十进制字符和冒号以外的所有字符。

如果你想用它做数学题floatval 将值从字符串转换为数字。

SO网友:flytech01

这就是你想要的:

使用全局变量:

global $woocommerce;  
$woocommerce->cart->total;
使用函数:

WC()->cart->total;

结束

相关推荐

Output terms to post_class()

我试图将附加到特定帖子的所有术语(包括自定义分类术语)输出为应用于div的CSS类,如下所示: <div <?php post_class(\'class-name\'); ?>></div> 所以它输出如下: <div class=\"class-name term1 term2 term3 term4\"></div> 我该怎么做?谢谢