Если вы не хотите использовать какой-либо объект, вы можете использовать setattr()
внутри вашего текущего модуля:
import sys
current_module = module = sys.modules[__name__] # i.e the "file" where your code is written
setattr(current_module, 'variable_name', 15) # 15 is the value you assign to the var
print(variable_name) # >>> 15, created from a string
Вам нужно вызвать глобальную переменную, чтобы убедиться, что она получает правильные значения.
Если вы добавите
global $woocommerce;
непосредственно перед
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
, который должен решить вашу проблему.
Это также работает nicelly.
WC()->cart->total
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
Вы также можете конвертировать $ amount в значение float в соответствии с вашим требованием.
$ totalamount = $ woocommerce-> cart-> cart_contents_total;
echo $ totalamount;
Это отлично работает и удаляет символ валюты:
$woocommerce->cart->total;
Чтобы показать общее количество телег, включая налоги и скидки, используйте этот
blockquote>$ordertotal = wp_kses_data( WC()->cart->get_total() );
Попробуйте следующее:
WC()->cart->cart_contents_total
Функция get_cart_total использует функцию wc_price, которая преобразует cart_contents_total в валюту.
'#[^\d.,]#'
– j.c 19 May 2017 в 08:51