【问题标题】:woocommerce - Get Cart Total as numberwoocommerce - 获取购物车总数作为数字
【发布时间】:2015-07-15 18:56:30
【问题描述】:

我想在我的 woocommerce 插件中获取购物车的总价。

我想得到一个浮点数,像这样:21.00,但我不知道如何得到它。我的代码输出奇怪的结果,这是我的确切代码:

$total         = $woocommerce->cart->get_total();
$total_a       = WC()->cart->get_total();
$total1        = $woocommerce->cart->get_total_ex_tax();
$total1_a      = WC()->cart->get_total_ex_tax();
$total2        = $woocommerce->cart->get_cart_total();
$total2_a      = WC()->cart->get_cart_total();

输出:

0,00 €
0,00 €
0,00 €
0,00 €
21,00 €
21,00 €

如果我从字符串转换为浮点数,结果当然是 0.00。

任何帮助如何以浮点数的形式获得购物车总数?

【问题讨论】:

  • 查看购物车类。 get_total() 方法使用wc_price() 格式化价格。因此,正如@José 指出的那样,您只需要访问公共财产。

标签: php wordpress woocommerce


【解决方案1】:

我有这样的代码并且工作完美:

if ( ! WC()->cart->prices_include_tax ) {
    $amount = WC()->cart->cart_contents_total;
} else {
    $amount = WC()->cart->cart_contents_total + WC()->cart->tax_total;
}

祝你好运!

【讨论】:

  • 此方式不含运费。
  • 不是反过来吗?如果价格包含税费,则不应添加税费。
  • 此代码仍然适用于 WooCommerce 版本 5.4.x
【解决方案2】:

直接访问total 属性,它是公开的:

global $woocommerce;
echo $woocommerce->cart->total;

【讨论】:

  • 它似乎不适用于 woocommerce 版本 2.6.x 或更高版本。你有别的办法吗?
  • 它的工作谢谢你的伙伴!
【解决方案3】:
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

您还可以根据需要将 $amount 转换为浮点值。

【讨论】:

    【解决方案4】:
    global $woocommerce;
    $woocommerce->cart->cart_contents_total (Cart total)
    $woocommerce->cart->tax_total (tax total)
    $woocommerce->cart->shipping_total (shipping total)
    

    【讨论】:

    • 请描述你的答案
    【解决方案5】:

    试试这个 WC()->cart->cart_contents_total

    【讨论】:

      【解决方案6】:

      2020 年,Woocommerce 4+

      $total_cart = WC()->cart->get_displayed_subtotal(); // without taxs and shipping fees
      echo $total_cart; // ex: 0.00
      

      【讨论】:

      • 谢谢,终于在 2020 年工作了……我不敢相信在 WooCommerce 中将购物车总金额设为 float / int 几乎是不可能的。
      • 奇怪,但这是真的,虽然:WC()->cart->total 仍然对我有用,但是在没有 getter 的情况下获得这个值让我有点担心。
      【解决方案7】:

      最好的方法是使用get_total(),同时传入除默认“view”之外的上下文。当上下文被查看时,价格将被格式化以供显示。当设置为其他值时,它会传回原始值。

      例子:

      WC()->cart->get_total( 'raw' );
      

      同样值得注意的是$woocommerce(当然前提是你已经访问了全局)与WC()完全相同。我建议尽可能选择WC()

      【讨论】:

        【解决方案8】:

        它有方法,你不需要从属性中获取它们。

        使用:WC()->cart->get_cart_contents_total()

        代替:WC()->cart->cart_contents_total


        并使用:WC()->cart->get_taxes_total()

        代替:WC()->cart->tax_total

        【讨论】:

          【解决方案9】:

          Woocommerce 4.8 WC()->cart->total 工作正常,虽然在没有 getter 帮助的情况下获得这个值让我有点担心,但它似乎是目前最简单的方法。

          【讨论】:

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