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

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

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

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


person Balint    schedule 05.02.2017    source источник


Ответы (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, но это какая-то сложная и реальная разработка… Приносим извинения за неудобства.

person LoicTheAztec    schedule 05.02.2017