Получите общую сумму тележек woocommerce
Я пытаюсь применить скидку к общей цене тележки, но я могу сделать это только по базовой цене товара, а не по общей цене. Я погуглил и наткнулся на этот пост в wordpress stackoverflow:
$сумма =плавающее значение(preg_replace('#[^\д.]#', ", $woocommerce->корзина->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...
7 answers
Вам нужно вызвать глобальную переменную, чтобы убедиться, что она получает правильные значения.
Если вы добавите
global $woocommerce;
Непосредственно перед
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
Это должно решить вашу проблему.
Попробуйте это:
WC()->cart->cart_contents_total
Функция get_cart_total использует функцию wc_price, которая преобразует cart_contents_total в валюту.
Это отлично работает и удаляет символ валюты:
$woocommerce->cart->total;
Это также хорошо работает.
WC()->cart->total
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
Вы также можете конвертировать сумму в долларах в плавающее значение в соответствии с вашими требованиями.
Чтобы показать общее количество тележек, включая налоги и скидки, используйте это
$ordertotal = wp_kses_data( WC()->cart->get_total() );
$totalamount = $woocommerce->корзина->корзина_контентс_тотал;
Эхо $общее количество;