• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Выборочная бесплатная доставка

Faceman

Новичок
Добрый день всем! Появилась такая проблема: есть 3 способа доставки. Самовывоз, платная доставка, бесплатная доставка. В файле functions.php есть код, который убирает вариант платной доставки, если доступна бесплатная
PHP:
function my_hide_shipping_when_free_is_available( $rates ) {
    $free = array();
    foreach ( $rates as $rate_id => $rate ) {
        if ( 'local_pickup' === $rate->method_id ) {
            $local_rate_id = $rate_id;
            $local_rate = $rate;
            $local_pickup = true;
        }
        
        if ( 'free_shipping' === $rate->method_id ) {
            if ($local_pickup == true) {
                $free[ $local_rate_id] = $local_rate;
            }
            $free[ $rate_id ] = $rate;
            break;
        }
    }
    return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

НО! Необходимо сделать проверку товаров в корзине, что бы, если хотя бы один из них находится в определенной категории, то вариант бесплатной доставки отключается. Не могу понять, как к этому подойти.
Спасибо)
 
Сверху Снизу