Intereting Posts
обработка больших массивов с помощью array_diff как узнать, являются ли поля файла csv табуляцией или запятыми Язык шаблона против прямого PHP Проверка наличия значения массива в многомерном массиве PHP z-Scores (стандартное отклонение и среднее значение) в PHP Найти, если номер находится между двумя номерами в разных полях в базе данных MySQL при включении () или require () мне всегда нужно использовать ../../ относительно моего файла? Есть простой способ? Миграция с OpenID 2.0 на OpenID Connect Есть ли у PHP потоки? Ошибка «Без базы данных» даже после того, как выбран db Как получить базовый URL с PHP? MPDF: независимая информация на нескольких страницах Сделать дополнительную ссылку открытой на отдельной странице в joomla как решить проблему curlexception 6: ошибка поиска имени тайм-аут в facebook new graph api Как я могу выполнить php перед отправкой на какой-либо скрипт elses из формы?

Изменение общего количества и tax_total Woocommerce

Я создаю пользовательскую страницу проверки с пользовательским расчетом. Как я могу изменить общий и tax_total через Ajax (или обновить страницу, если это необходимо).

Я создаю пользовательскую страницу для запроса ajax и устанавливаю этот код

$ss = new WC_Session_Handler(); $ss->set('tax_total',9999999); $ss->save_data(); $ss->set('total',9999999); $ss->save_data(); var_dump(WC()); 

На этой странице я вижу свои изменения, но «контрольная страница» ничего не происходит (даже после обновления). Как я могу изменить произвольное значение total или tax_total .

Попробуй использовать

 add_action('woocommerce_calculate_totals', array($this, 'calculate_totals'), 10, 1); function calculate_totals($totals){ //your code } 

Также он должен быть tax_total в тележке, и вы можете его изменить.

У меня были проблемы с получением других решений для работы, но, по крайней мере, для v.3.0.1, это сработало отлично:

 add_action('woocommerce_cart_total', 'calculate_totals', 10, 1); function calculate_totals($wc_price){ $new_total = 0; foreach ( WC()->cart->cart_contents as $key => $value ) { //calculations here } return wc_price($new_total); }