【问题标题】:Get cart total as a float number in WooCommerce 3+在 WooCommerce 3+ 中将购物车总数作为浮点数获取
【发布时间】:2020-03-03 18:44:19
【问题描述】:

在 WooCommerce 中,

<?php echo WC()->cart->get_cart_total(); ?>

给我 1,750.00 欧元

我怎样才能把它作为一个浮点数来乘以它?

我在这两个 SO 问题中尝试了所有解决方案:

Unable to get cart total in woocommerce

woocommerce - Get Cart Total as number

所有已过时且无法正常工作。有谁知道怎么做?

【问题讨论】:

    标签: php wordpress woocommerce cart


    【解决方案1】:

    可以参考WooCommerce WC_Cart official documentation

    这应该可行:

    WC()->cart->get_total("anything_else_than_'view'");
    

    说明:

    感谢btomw 指出需要在WC_Cart get_total() 方法中定义一个参数。如果你调用这个方法时没有定义参数(应该是'view'字符串以外的任何东西),输出将是格式化的总价格,因为'view'默认参数将被使用这种方法。因此,如果您想获得一个浮点值(non formatted),请将其他任何不是“视图”的参数设置为参数,甚至是像'' 这样的空字符串。正如您在 this method documentation 上看到的那样,它是为了自 WooCommerce 3.2 以来的向后兼容性。

    【讨论】:

    • 具体来说,在调用此函数时包含一个参数很重要,实际上是除"view" 之外的任何参数。
    • 谢谢。现在是否还有一种快速的方法可以将浮点数格式化回€1,750.00 WooCommerce 格式?
    • 我相信相同的功能没有参数
    • @SarPutnik 最好只保留您的编辑以避免人们混淆。
    • @RafRasenberg 您可以使用 wc_price() 函数并将金额作为参数。
    【解决方案2】:

    作为Sar Putnik 答案的替代方案,使用WC_Cart 对象,您可以直接访问属性,例如total,它提供了一个非格式化的数字:

    $total = WC()->cart->total;
    
    // Testing output
    var_dump($total);
    

    如果使用$total = WC()-&gt;cart-&gt;get_total("");,它将给出相同的输出

    请注意,从 WooCommerce 3 开始,在其他 WooCommerce 实例对象上您不能直接访问属性...但是像WC_Cart 这样的少数类仍然允许这样做。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多