В магазине Woocommerce есть 3 варианта доставки
- бесплатная доставка
- Единая ставка
- поднимать
Вдохновленный Бесплатная доставка в зависимости от веса и минимального количества корзины, я хотел бы указать минимальный общий вес корзины при выборе доставки вариант.
- Когда клиенты заказывают до 24 кг, они должны иметь возможность только забрать свой заказ.
- Если общий вес тележки составляет от 25 кг до 49 кг, они могут выбрать только метод фиксированной ставки или самовывоз.
- А если общий вес тележки составляет 50 кг и выше, они могут выбирать между бесплатной доставкой и самовывозом.
В Интернете я нашел WooCommerce: как настроить многоуровневые тарифы на доставку по сумме заказа, которую я настроил для правильной работы в магазине, потому что у нас есть 2 зоны доставки (то есть несколько фиксированных ставок, местный самовывоз и т. д.).
К сожалению, это не подходит для моих нужд, а я считаю код верным? Любая помощь будет высоко ценится.
add_filter( 'woocommerce_package_rates', 'bbloomer_woocommerce_tiered_shipping', 9999, 2 );
function bbloomer_woocommerce_tiered_shipping( $rates, $package ) {
if ( WC()->cart->get_cart_contents_weight() < 25 ) {
if ( isset( $rates['local_pickup:5'], $rates['local_pickup:9'] ) ) unset( $rates['flat_rate:3'], $rates['flat_rate:6'], $rates['free_shipping:1'], $rates['free_shipping:8'] );
} elseif ( WC()->cart->get_cart_contents_weight() < 50 ) {
if ( isset( $rates['flat_rate:3'], $rates['flat_rate:6'], $rates['local_pickup:5'], $rates['local_pickup:9'] ) ) unset( $rates['free_shipping:1'], $rates['free_shipping:8'] );
} else {
if ( isset( $rates['free_shipping:1'], $rates['free_shipping:8'], $rates['local_pickup:5'], $rates['local_pickup:9'] ) ) unset( $rates['flat_rate:3'], $rates['flat_rate:6'] );
}
return $rates;
}