Убрать проверку полей с условиями выбора страны WooCommerce

Столкнулся с ситуацией, когда при установленном плагине Saphali Woocommerce Russian, который играл роль удобной настройке полей в заказе происходил маленький баг. Суть была в том, что для магазина поле почтовый индекс было обязательным.

Но проблема в том, что в ОАЭ нет таковых индексов, в каком понимании они есть у нас. Они используют Post Office Box. А у WooCommerce по дефолту скрывает поле shipping_postcode при выборе этой страны.

Таким образом, когда этими полями управляет Saphali Woocommerce Russian и в настройках стоит, что поле почтового индекса является обязательным — происходит конфликт. При проверке полей WooCommerce сообщает, что поле необходимо заполнить, но пользователь его не видит и не может это сделать.

Что можно сделать в этом случае? Самое простое решение, использовать хук woocommerce_checkout_fields, который получает все данные о полях и поменять их.

// Убираем валидацию почтового индекса для ОАЭ
add_filter( 'woocommerce_checkout_fields' , 'webgleb_postcode_required_false_for_uae' );
function webgleb_postcode_required_false_for_uae( $fields ) {
    $custome_shipping_country = WC()->customer->get_shipping_country();
    if( $custome_shipping_country == 'AE' ) {
        $fields['billing']['billing_postcode']['required'] = false;
        $fields['shipping']['shipping_postcode']['required'] = false;
    }
    return $fields;
}

Получается, что мы просто получаем страну пользователя, если это ОАЕ, то ставим эти поля не обязательными. Таким образом вы можете делать любые условия, которые будут касаться выбора страны. Надеюсь Вам пригодится.