многоуровневая фиксированная ставка woocommerce на основе настраиваемого поля - PullRequest
1 голос
/ 22 апреля 2020

У меня есть веб-сайт, на котором клиент выбирает зону в раскрывающемся списке полей для выставления счетов. Это 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

1 Ответ

0 голосов
/ 23 апреля 2020

Попробуйте установить сеанс W C при запуске окна выбора и использовать его в своем операторе if для получения правильной скорости доставки или использования переключателя

WC->session->set('your session name', 'value')
WC->session->get('your session')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...