it-swarm.com.ru

Получить общую сумму woocommerce тележек

Я пытаюсь применить скидку к общей цене тележки, но я могу сделать это только по базовой цене, а не по всей цене. Я гуглил и наткнулся на этот пост в Wordpress 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...
19
Howli

Вам нужно вызвать глобальную переменную, чтобы убедиться, что она получает правильные значения.

Если вы добавите 

 global $woocommerce;

как раз перед

 $amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

это должно решить вашу проблему.

20
Ronan

Попробуй это:

WC()->cart->cart_contents_total

Функция get_cart_total использует функцию wc_price, которая конвертирует cart_contents_total в валюту.

20
zennin

Это тоже хорошо работает.

WC()->cart->total

8
colapsnux

Это отлично работает и удаляет символ валюты:

     $woocommerce->cart->total;
5
Muvans
global $woocommerce;
    $amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

Вы также можете конвертировать сумму $ в значение с плавающей запятой согласно вашему требованию.

4
Deepak Kumar

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

$ordertotal = wp_kses_data( WC()->cart->get_total() );
1
typocoder

По состоянию на конец 2018 года лучше всего использовать get_cart_contents_total(). Это общее количество товаров в корзине после скидок. 

WC()->cart->get_cart_contents_total(); // Float

Другие методы доступны для более конкретных нужд, просто взгляните на документы .

0
Buzut

$ totalamount = $ woocommerce-> cart-> cart_contents_total; 

echo $ totalamount;

0
mital korat