【问题标题】:Get the cart totals non formatted values as float numbers in WooCommerce在 WooCommerce 中获取购物车总计非格式化值作为浮点数
【发布时间】:2017-12-15 11:43:37
【问题描述】:

我怎样才能得到购物车total/total_ex_tax as float number

我找过,但所有答案都是这样的:

a) 难看的用法 reg_exp(例如,如果我们将使用 ',' 而不是 '.' 呢?):

global $woocommerce;
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

b) 直接访问类属性(将来可能会更改;而不是 OOP 方法)。它有效,但方法错误:

global $woocommerce;
echo $woocommerce->subtotal;
echo $woocommerce->subtotal_ex_tax;
echo $woocommerce->total;
echo $woocommerce->total_ex_tax;
echo $woocommerce->cart_contents_total;

我想获得类似这样的普通 API:

$wc = WC();
echo $wc->cart->get_total_as_number();
echo $wc->cart->get_total_ex_tax_as_number();

【问题讨论】:

标签: php wordpress properties woocommerce cart


【解决方案1】:

使用WC()->cartWC_Cart 类对象),您可以使用以下WC_Cart class documentation Api 中列出的方法或访问属性。

因此,使用WC()->cart,您可以直接访问属性并使用以下方法获取非格式化值

echo WC()->cart->subtotal;
echo WC()->cart->subtotal_ex_tax;
echo WC()->cart->total;
echo WC()->cart->total_ex_tax;
echo WC()->cart->cart_contents_total;

您将获得浮点数。请记住,WC()->cart 是一个活动对象。

WC()->cartglobal $woocommerce; 完全替换为$woocommerce->cart,因此无需使用过时的global $woocommerce;...


相关官方文档:WC_Cart class api, methods and properties

【讨论】:

  • 看来你是对的。我用过。但是 OOP & encapsulation & setter/getter 呢?..
  • @KonstantinPetlya WC_Cart 类仍然允许直接获取属性,因为该类中尚未实现 CRUD 方法(setter 和 getter)……请记住 WC_Cart 是一个活动对象,不像产品、优惠券、订单……如果这个答案正在回答您的问题,请不要忘记accept the answer。谢谢
猜你喜欢
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多