У меня есть веб-сайт, на котором клиент выбирает зону в раскрывающемся списке полей для выставления счетов. Это 4 зоны: zone1, zone2 и zone3 в качестве примера.
Идея состоит в том, что если покупатель выбрал zone1, а общая корзина составляет менее 1000 долларов, клиент должен заплатить тариф за доставку в размере 100 долларов. Если сумма заказа превышает 1000 долларов, клиент получает бесплатную доставку.
Мне нужно повторить это для двух других зон с разными суммами в корзине и тарифами на доставку. Возможно ли это?
Сейчас у меня есть следующий рабочий код, но клиент должен вручную выбрать фиксированную ставку. Проблема, конечно, в том, что клиенты ... Если отображается бесплатная доставка, они выберут эту, зная, что не применяют эту опцию, когда общая сумма меньше для их зоны.
/* Change shipping based on total cost purchased. */
add_filter( 'woocommerce_package_rates', 'bbloomer_woocommerce_tiered_shipping', 10, 2 );
function bbloomer_woocommerce_tiered_shipping( $rates, $package ) {
$threshold_centro = 1000;
$threshold_hasta_el_5 = 1500;
$threshold_arelauquen = 2000;
if ( WC()->cart-> cart_contents_total < $threshold_centro ) {
unset( $rates['free_shipping:9'] );
}
elseif ( WC()->cart-> cart_contents_total < $threshold_hasta_el_5 ) {
unset( $rates['flat_rate:2'] );
}
elseif ( WC()->cart-> cart_contents_total < $threshold_arelauquen ) {
unset( $rates['flat_rate:2'], $rates['flat_rate:3'] );
}
else {
unset( $rates['flat_rate:2'], $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:6'] );
}
return $rates;
}
и настраиваемое поле вот это: billing_wcccf_id_qXZZegrC774HULq