Блог

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

Ранее я писал как скрыть доставки если по логике должна быть активна бесплатная доставка Эта система хорошо отработала на «стандартном» woocommerce Но люди столкнулись с проблемой когда у них стоит плагин Local Picap Plus который создает дополнительные пункты самовывоза. При использовании того кода, эти способы исчезали, и выбора пунктов самовывоза не было. C участником группы мы справились и видоизменили код под этот плагин.
add_filter('woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2);
function hide_shipping_when_free_is_available($rates, $package) {
$free_yn = 0;
$pickup_yn = 0;
foreach($rates as $key => $value) {
$key_part = explode(":", $key);
$method_title = $key_part[0];
if ('free_shipping' == $method_title) {
// check if free shipping rate exists
$free_yn = 1;
$free_shipping = $rates[$key];
$free_key = $key;
}
if ('local_pickup_plus' == $method_title) {
// check if local pickup rate exists
$local_pickup_plus_yn = 1;
$local_pickup_plus = $rates[$key];
$local_pickup_plus_key = $key;
}
}
if ($free_yn == 1) {
// Unset all rates.
$rates = array();
// Restore free shipping rate.
$rates[$free_key] = $free_shipping;
if ($local_pickup_plus_yn == 1) {
// Restore local pickup rate.
$rates[$local_pickup_plus_key] = $local_pickup_plus;
}
return $rates;
}
return $rates;
}

Теперь при использовании плагина Local Picap Plus и кода, у нас остается два способа доставки, Бесплатная и Самовывоз с точек выдачи товара.

Поделиться постом

Оставить комментарий

avatar
  Подписаться  
Уведомление о