
Приветствую всех! Помогите написать правильную "логику" полей. Нужно, чтобы при выборе определённой страны, скрывались некоторые поля (в моём случае дополнительные поля доставки).
В сети нашёл такой код. Как подправить его под проверку страны/региона?
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;
}
В сети нашёл такой код. Как подправить его под проверку страны/региона?
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;
}