Чтобы скрыть только обычную доставку, когда «Бесплатная доставка» доступна, вам понадобится что-то другое:
add_filter( 'woocommerce_package_rates', 'show_hide_shipping_methods', 100 );
function show_hide_shipping_methods( $rates ) {
// When "Free shipping" is available
if( isset($rates['legacy_free_shipping']) && isset($rates['legacy_flat_rate']) ) {
// Hide normal flat rate
unset($rates['legacy_flat_rate']);
}
return $rates;
}
Следующее будет устанавливать «Бесплатная доставка» как по умолчанию выбранная доставкаМетод:
add_filter( 'woocommerce_shipping_chosen_method', 'set_default_chosen_shipping_method', 10, 3 );
function set_default_chosen_shipping_method( $default, $rates, $chosen_method ) {
if( isset($rates['legacy_free_shipping']) ) {
$default = 'legacy_free_shipping';
}
return $default;
}
Код помещается в файл functions.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Обновите кэши доставки: (обязательно)
- Этот код уже сохранен на вашем активномфайл theme.php темы.
- Корзина пуста
- В настройках зоны доставки отключите / сохраните любой способ доставки, затем включите обратно / сохраните.