Как отказаться от платы за доставку при оформлении заказа Woocommerce без использования купона?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как отказаться от платы за доставку при оформлении заказа Woocommerce без использования купона?

Сообщение Anonymous »

Я создал экспресс-оформление заказа для одного из моих магазинов woocommerce и реализую функцию нулевой стоимости доставки для всех предоплаченных заказов. У меня есть один флажок для включения/отключения наложенного платежа на странице оформления заказа, и в зависимости от выбора этого флажка я пытаюсь переключить стоимость доставки. Я также хочу отразить изменения в самом интерфейсе страницы оформления заказа, так как он должен отображать стоимость доставки и обновлять общую сумму заказа в сводке заказов, только если включен COD, иначе должно отображаться 0 расходов на доставку, а общая сумма заказа остается неизменной.
После некоторых исследований я нашел одну ловушку woocommerce_package_rates, которая в основном помогает настроить стоимость доставки, и попробовал это:

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

add_action('woocommerce_package_rates', 'custom_woocommerce_zero_shipping_for_prepaid_orders', 10, 2);
function custom_woocommerce_zero_shipping_for_prepaid_orders($rates, $package) {
// Check for the chosen payment method
$chosen_payment_method = WC()->session->get('chosen_payment_method');

// If the chosen payment method is NOT 'cod' (Cash on Delivery), set shipping to zero
if ($chosen_payment_method !== 'cod') {
foreach ($rates as $rate_key => $rate) {
// Set the cost of each shipping method to zero
$rates[$rate_key]->cost = 0;

// If you want to also set taxes to zero, uncomment the line below
$rates[$rate_key]->taxes = array_map(function($tax) { return 0; }, $rates[$rate_key]->taxes);
}
}

return $rates;
}
Но этот хук срабатывает при загрузке страницы. Это может сработать для расчетов за сценой после размещения заказа. Но я не могу подключить это к специальным вызовам ajax для пересчета цен на самой странице оформления заказа.
Есть ли какой-нибудь другой способ, который может помочь оправдать ожидания?
P.S: Я уже пробовал заставить это работать с купонами. Я не хочу реализовывать эту функцию с помощью купонов.

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

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

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

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

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

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

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