
Добрый день всем! Появилась такая проблема: есть 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 );
НО! Необходимо сделать проверку товаров в корзине, что бы, если хотя бы один из них находится в определенной категории, то вариант бесплатной доставки отключается. Не могу понять, как к этому подойти.
Спасибо)