• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Отключение определённых полей в форме заказа по стране/региону

Zubrus

Новичок
Приветствую всех! Помогите написать правильную "логику" полей. Нужно, чтобы при выборе определённой страны, скрывались некоторые поля (в моём случае дополнительные поля доставки).

В сети нашёл такой код. Как подправить его под проверку страны/региона?

add_filter( 'woocommerce_checkout_fields' , 'mycode_checkout_for_virtual_products', 25 );

function mycode_checkout_for_virtual_products( $fields ) {

$is_only_virtual = true;

foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// если хотя бы один товар не виртуальный, то ничего делать не будем
if ( ! $cart_item['data']->is_virtual() ) {
$is_only_virtual = false;
break;
}
}

if( $is_only_virtual ) {
// отключаем поле Компания
unset( $fields[ 'billing' ][ 'billing_company' ] );
// отключаем поле Адрес 1
unset( $fields[ 'billing' ][ 'billing_address_1' ] );
// отключаем поле Адрес 2
unset( $fields[ 'billing' ][ 'billing_address_2' ] );
// отключаем поле Населённый пункт
unset( $fields[ 'billing' ][ 'billing_city' ] );
// отключаем поле Почтовый индекс
unset( $fields[ 'billing' ][ 'billing_postcode' ] );
// отключаем поле Страна/регион
unset( $fields[ 'billing' ][ 'billing_country' ] );
// отключаем поле Область/район
unset( $fields[ 'billing' ][ 'billing_state' ] );
// отключаем поле Телефон
unset( $fields[ 'billing' ][ 'billing_phone' ] );
}

return $fields;
}
 
Сверху Снизу