Получение общей стоимости корзины WooCommerce в числовом формате
Возможно ли получить общую стоимость корзины без разметки, то есть без символа €? Сейчас я получаю сумму с помощью:
$totalamount = $woocommerce->cart->get_cart_total();
это выдаёт €16.50
Я также пробовал это:
$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');
Но это всегда выдаёт 0.00
Есть ли в WooCommerce функция, которая выдаст общую стоимость корзины в числовом формате? Спасибо!
Пожалуйста, добавьте объяснение к вашему ответу: почему это может решить проблему?

Если использовать это в корзине, то работает корректно только при посещении корзины, но не при обновлении корзины... Кто-нибудь знает почему?

Это должен быть правильный ответ. В зависимости от контекста (например, в моем случае), WC()->cart->total также отлично работает.

На любой странице вы можете объявить переменную $woocommerce как глобальную, и тогда у вас будет доступ к большинству необходимых функций.

Вы также можете создать другую переменную для корзины, например так: global $woocommerce; $cart = $woocommerce->cart->get_cart();
Она будет содержать информацию, связанную с корзиной;
Используйте print_r( $cart ); для просмотра значений.

https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#288-298

Обновление 2020
Ответ
См. ответ flytech для решения с использованием нативного API WooCommerce.
Примечание / Предостережение
Если вы собираетесь выполнять точные арифметические операции с денежными значениями, всегда используйте знаковые целые числа (!), представляющие наименьшую единицу валюты (цент, пенни, пайса, дирхам и т.д.).
Преобразовывайте обратно в десятичные дроби только на уровне представления вашего приложения после выполнения всех расчетов.
Это справедливо независимо от языка программирования или фреймворка.
Оригинальный ответ
Я совсем не знаю WooCommerce, поэтому, возможно, существует и нативный способ, но в любом случае, это
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
должно сработать.
preg_replace
удаляет все символы, кроме цифр и десятичной точки.
Если вам нужно выполнять математические операции, floatval
преобразует значение из строки в числовое.

Для некоторых стран нужно учитывать и запятую, попробуйте это '#[^\d.,]#'

Предупрежу вас о такой проблеме: если вы установите точки и запятые в общих настройках WooCommerce, это может привести к нежелательным результатам. Пример: сумма = 1.239,90$ может быть прочитана как 1,239$. Я бы предложил это решение
