Как настроить бесплатную доставку для определенного способа оплаты в Woocommerce?

У меня есть два способа оплаты на сайте, и клиент попросил меня настроить бесплатную доставку для заказов на сумму свыше X (не проблема), и если клиенты используют Банковский перевод как способ оплаты.

Я перепробовал несколько плагинов, но они могут только добавлять и удалять тарифы из общей суммы, поэтому, если я настрою удаление стоимости доставки с помощью банковского перевода, но заказ будет превышать сумму X (что обеспечит бесплатную доставку), тогда плагин просто уменьшает итоговую цену в итоге на цену доставки.

Есть идеи, что делать? Не удалось найти ничего в Stackoverflow или в Google.

1

Решение

Это частично ответит на ваш вопрос, так как это довольно сложно, и мы не предоставляем бесплатную разработку в StackOverFlow, так как вы не предоставляете какой-либо код и даже ссылки или детали о плагинах, которые вы пробовали.

Вот фрагмент кода, основанный на официальном фрагменте кода WooCommerce, который будет скрывать другие способы доставки, когда будет достигнута целевая сумма корзины:

// Only for WooCommerce version 2.6+

// Hidding all shipping methods except "free shipping" when a cart amount is reached
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );
function my_hide_shipping_when_free_is_available( $rates ) {

$cart_items_total = WC()->cart->cart_contents_total;

$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id && $cart_items_total > 20 ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}

В качестве способа оплаты выбирается внизу страницы оформления заказа, единственный способ заставить это работать для платежного шлюза BACS, должен использовать ajax на событии выбора клиента BACS, но это какое-то сложное и реальное развитие … Извините за неудобства.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]