Сделать поле проверки состояния необязательным в Woocommerce - PullRequest
0 голосов
/ 08 ноября 2018

Поскольку Woo 3.5.1, поле состояния выставления счета является обязательным для определенных стран, и я пытаюсь выяснить, как не сделать его обязательным.

Это код, который я использую, который не работает. Кажется, это коренное изменение, и я не знаю, есть ли для этого новый крючок?

Код:

add_filter( 'woocommerce_billing_fields', 'remove_mandatory_state_billing', 10, 1 );
function remove_mandatory_state_billing( $address_fields ) {
    $address_fields['billing_state']['required'] = false;
    return $address_fields;
}

add_filter( 'woocommerce_shipping_fields', 'remove_mandatory_state_shipping', 10, 1 );
function remove_mandatory_state_shipping( $address_fields ) {
    $address_fields['shipping_state']['required'] = false;
    return $address_fields;
}

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 08 ноября 2018

Следующий код сделает поле состояния необязательным для всех стран в Woocommerce:

add_filter( 'woocommerce_get_country_locale', 'custom_country_locale_state_optional', 10, 1 );
function custom_country_locale_state_optional( $locale ) {
    foreach( $locale as $country_code => $state_field ) {
        if( isset($locale[$country_code]['state']) ) {
            $locale[$country_code]['state']['required'] = false;
        }
    }
    return $locale;
}

Код помещается в файл function.php вашей активной дочерней темы (active theme). Проверено и работает.

Related: Сделать поле проверки состояния обязательным для конкретной страны в Woocommerce

...