Итоговые данные WooCommerce Checkout обновляются только при двойной перезагрузке страницы.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Итоговые данные WooCommerce Checkout обновляются только при двойной перезагрузке страницы.

Сообщение Anonymous »

Общую и общую сумму доставки я установил через AJAX:

Код: Выделить всё

add_action('wp_ajax_wc_shipper_set_rate', 'wc_shipper_set_rate');
add_action('wp_ajax_nopriv_wc_shipper_set_rate', 'wc_shipper_set_rate');

function wc_shipper_set_rate(){
$object_id = strval($_POST['object_id']);
$order_id = intval($_POST['order_id']);
$rate = false;

//Find rate by object_id
$rates = WC()->session->get('wc_shipper_rates');
foreach ($rates as $_rate) {
if ($_rate['object_id'] == $object_id) {
WC()->session->set('wc_shipper_chosen_rate', $_rate);
$rate = $_rate;
}
}

if($rate){
//Calculate new totals
$totals = WC()->cart->get_totals();
$new_total = floatval($totals['total']) - floatval($totals['shipping_total']) + floatval($rate['amount']);

// Set cart totals
WC()->cart->set_shipping_total($rate['amount']);
WC()->cart->set_total($new_total);

$totals = WC()->cart->get_totals();
WC()->cart->calculate_shipping();
WC()->cart->calculate_totals();

// Change shipping total in order

$order = wc_get_order($order_id);
$order->set_shipping_total($rate['amount']);
$order->set_total($new_total);
$order->save();

// Change shipping total in session
WC()->session->set('shipping_total', $rate['amount']);
WC()->session->set('total', $new_total);
WC()->session->set('cart_totals', $totals);

update_post_meta($order_id, '_wc_shipper_object_id', $rate['object_id']);
}

echo json_encode(['status' => 'ok', 'totals' => $totals], JSON_UNESCAPED_UNICODE);
exit;
}
В WP-ADMIN видны новые итоги и сумма доставки:
Новые итоги в заказе
Но на На странице оформления заказа есть старые итоги. Новые итоги видны после двойного обновления страницы.
Старые итоги
Метод WC бесполезен.

Код: Выделить всё

WC()->cart->calculate_shipping();
WC()->cart->calculate_totals();
Я использую последнюю версию WooCommerce и Wordpress.

Подробнее здесь: https://stackoverflow.com/questions/787 ... aded-twice
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»