Получить общую стоимость ваукомера
Я пытаюсь применить скидку на общую стоимость тележек, но я могу сделать это только по базовой цене товара, а не по всей цене. я Googled и наткнулся на это сообщение в WordPack stackoverflow:
$ amount = floatval (preg_replace ('# [^\d.] #', '', $woocommerce-> cart-> get_cart_total())); Preg_replace устраняет все, кроме десятичных символов и двоеточий.
Если вы хотите сделать математику с ней, floatval преобразует значение из строки в числовое.
Я попытался добавить:
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
и изменение
$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);
в
$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);
Но я получаю следующую ошибку:
Fatal error: Call to a member function get_cart_total() on a non-object in...
Ответы
Ответ 1
Вы должны вызвать глобальную переменную, чтобы убедиться, что она получает правильные значения.
Если вы добавите
global $woocommerce;
прямо перед
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
что должно решить вашу проблему.
Ответ 2
Попробуй это:
WC()->cart->cart_contents_total
Функция get_cart_total использует функцию wc_price, которая преобразует значение cart_contents_total в валюту.
Ответ 3
Это отлично работает и удаляет символ валюты:
$woocommerce->cart->total;
Ответ 4
Это также работает nicelly.
WC()->cart->total
Ответ 5
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
Вы также можете конвертировать $ amount в значение float в соответствии с вашим требованием.
Ответ 6
Чтобы показать общее количество телег, включая налоги и скидки, используйте это
$ordertotal = wp_kses_data( WC()->cart->get_total() );
Ответ 7
$ totalamount = $woocommerce-> cart-> cart_contents_total;
echo $ totalamount;