Получить сумму корзины в виде числа с плавающей точкой в ​​WooCommerce 3+ - PullRequest
2 голосов
/ 03 марта 2020

В WooCommerce,

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

дает мне 1 750,00

Как получить это число с плавающей запятой, чтобы умножить его?

Я испробовал каждое решение в этих двух SO вопросах:

Невозможно получить сумму корзины в woocommerce

woocommerce - Получить сумму корзины как число

Все устарело и не работает. Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

4 голосов
/ 03 марта 2020

Вы можете обратиться к WooCommerce WC_Cart официальной документации

Это должно работать:

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

Пояснения:

Благодаря btomw , который указал, что аргумент должен быть определен в методе WC_Cart get_total(). Если вы вызываете этот метод без определения аргумента (это должно быть что-то еще, кроме строки 'view') , на выходе будет отформатированная итоговая цена, так как 'view' аргумент по умолчанию будет использоваться этим метод. Поэтому, если вы хотите получить значение с плавающей точкой (non formatted), установите в качестве аргумента все остальное, что не является 'view', даже пустую строку, например ''. Как вы можете видеть в документации по этому методу , она предназначена для обратной совместимости начиная с WooCommerce 3.2.

1 голос
/ 03 марта 2020

В качестве альтернативы ответу Сар Путник , с WC_Cart объектом вы можете напрямую обращаться к свойствам подобно total, что дает отформатированное число:

$total = WC()->cart->total;

// Testing output
var_dump($total);

Это даст тот же результат при использовании $total = WC()->cart->get_total("");

Обратите внимание, что, начиная с WooCommerce 3, на других объектах экземпляра WooCommerce вы можете ' т доступ к свойствам напрямую … Но некоторые классы, такие как WC_Cart, все еще допускают это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...