В следующем случае активируется только один определенный способ доставки, если в корзине более 15 товаров:
add_filter( 'woocommerce_package_rates', 'hide_shipping_methods_based_on_item_count', 10, 2 );
function hide_shipping_methods_based_on_item_count( $rates, $package ) {
// HERE the targeted shipping method ID (see the attribute "value" of the related shipping method input field)
$targeted_method_id = 'flat_rate:12'; // <== Replace with your DHL shipping method ID
// HERE the articles count threshold
$more_than = 15;
// Cart items count
$item_count = WC()->cart->get_cart_contents_count();
if( WC()->cart->get_cart_contents_count() > $more_than ) {
foreach ( $rates as $rate_key => $rate ) {
if ( $rate->id != $targeted_method_id ) {
unset($rates[$rate_key]);
}
}
}
return $rates;
}
Код поступает в файл function.php вашей активной дочерней темы (или темы). Проверено и работает.
Обновите кэши доставки: (обязательно)
- Этот код уже сохранен в файле function.php вашей активной темы.
- Корзина пуста
- В настройках зоны доставки отключите / сохраните любой способ доставки, затем включите обратно / сохраните.
Вы закончили , и вы можете проверить это.