SuperTester
Новичок

Добрый день, уважаемые коллеги и специалисты.
Задача следующая: в магазине стоимость доставки по городу 300 рублей, но при заказе от 10000 рублей - она бесплатная. С помощью стандартных настроек удалось добиться вывода бесплатной доставки при заказе на нужную сумму, но проблема в том, что платный вариант доставки продолжает отображаться.
На форуме нашел функцию, которая позволяет скрыть все способы доставки, если доступен бесплатный (прикрепляю ниже). Но все скрывать не нужно, только один. Как доработать эту функцию, чтобы при доступной бесплатной доставке скрывалась только местная доставка (т.е. local_delivery).
С уважением, Вячеслав
Задача следующая: в магазине стоимость доставки по городу 300 рублей, но при заказе от 10000 рублей - она бесплатная. С помощью стандартных настроек удалось добиться вывода бесплатной доставки при заказе на нужную сумму, но проблема в том, что платный вариант доставки продолжает отображаться.
На форуме нашел функцию, которая позволяет скрыть все способы доставки, если доступен бесплатный (прикрепляю ниже). Но все скрывать не нужно, только один. Как доработать эту функцию, чтобы при доступной бесплатной доставке скрывалась только местная доставка (т.е. local_delivery).
С уважением, Вячеслав
Код:
// Hide ALL shipping options when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available' , 10, 1 );
/**
* Hide ALL Shipping option when free shipping is available
*
* @param array $available_methods
*/
function hide_all_shipping_when_free_is_available( $available_methods ) {
if( isset( $available_methods['free_shipping'] ) ) :
// Get Free Shipping array into a new array
$freeshipping = array();
$freeshipping = $available_methods['free_shipping'];
// Empty the $available_methods array
unset( $available_methods );
// Add Free Shipping back into $avaialble_methods
$available_methods = array();
$available_methods[] = $freeshipping;
endif;
return $available_methods;
}