Скрыть классы доставки, если доступна бесплатная доставка - PullRequest
0 голосов
/ 09 марта 2020

На сайте Woo есть пара фрагментов, чтобы скрыть все другие типы доставки, если доступна бесплатная доставка, или скрыть все, кроме Local Pick-up. На самом деле я хочу скрыть только вариант стандартной доставки, который я установил, но я все же хочу, чтобы клиенты увидели Обновленную доставку и забрали ее.

У меня есть код ниже, но мне не очень повезло изменить его для моих нужд. Любая помощь приветствуется!

function my_hide_shipping_when_free_is_available( $rates ) {
    $free = array();

foreach ( $rates as $rate_id => $rate ) {

        if ( 'free_shipping' === $rate->method_id ) {

            $free[ $rate_id ] = $rate;
            $free_shipping = true;

        }

        if ( $free_shipping == true && 'my_custom_shipping_method' === $rate->method_id=15) {
            $free[ $rate_id ] = $rate;
        }

    }

    return ! empty( $free ) ? $free : $rates;
}

add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );


Я думаю, что это другой код, который я тоже имел

function hide_shipping_when_free_is_available( $rates, $package ) {
    $new_rates = array();
    foreach ( $rates as $rate_id => $rate ) {
        // Only modify rates if free_shipping is present.
        if ( 'free_shipping' === $rate->method_id ) {
            $new_rates[ $rate_id ] = $rate;
            break;
        }
    }

    if ( ! empty( $new_rates ) ) {
        //Save local pickup if it's present.
        foreach ( $rates as $rate_id => $rate ) {
            if ('local_pickup' === $rate->method_id ) {
                $new_rates[ $rate_id ] = $rate;
                break;
            }
        }

        if ( ! empty( $new_rates ) ) {
        //Save upgraded shipping if it's present.
        foreach ( $rates as $rate_id => $rate ) {
            if ('local_pickup' === $rate->method_id ) {
                $new_rates[ $rate_id ] = $rate;
                break;
            }
        }
        return $new_rates;
    }

    return $rates;
}

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...