невозможно настроить поле billing_state в woocommerce даже после применения рекомендуемых фильтров - PullRequest
0 голосов
/ 23 октября 2019

В настоящее время у меня возникла проблема с полем billing_state в woocommerce. моя идея состоит в том, чтобы изменить тип этого поля на «select» (из простого ввода текста), однако, даже после применения фильтров «woocommerce_checkout_fields» или «woocommerce_default_address_fields» из официального документа, я не могу получить желаемый результат простымввод по-прежнему отображается, я попытался на другом поле (billing_city), и он работал отлично, поэтому я var_dumped массив полей, чтобы увидеть, где разница, я обнаружил, что поле состояния имеет проверку с именем (состояние), но поле города не't ==> поэтому я попытался удалить проверку с помощью "unset ($ fields [' billing '] [' billing_state '] [' validate ']);"но это все еще не работает! вот мой код:

add_filter( 'woocommerce_checkout_fields', 'no_state_validation' );

function no_state_validation( $fields ){

    unset( $fields['billing']['billing_state']['validate'] );
    return $fields;

}

add_filter( 'woocommerce_default_address_fields' , 'customize_checkout_city_field' );
function customize_checkout_city_field( $address_fields ) {

    // Set HERE the cities (one line by city)
    $towns_cities_arr = array(
        '0' => __('Select your city', 'my_theme_slug'),
        'paris' => 'Paris',
        'versailles' => 'Versailles',
        'cannes' => 'Cannes',
    );

    // Customizing 'billing_city' field
    $address_fields['city']['type'] = 'select';
    $address_fields['city']['class'] = array('form-row-last', 'my-custom-class'); // your class here
    $address_fields['city']['label'] = __('Town / city', 'my_theme_slug');
    $address_fields['city']['options'] = $towns_cities_arr;

    // $address_fields['state']['type'] = 'select';
    // $address_fields['state']['class'] = array('form-row-last', 'my-custom-class');
    // $address_fields['state']['label'] = __('Wilaya ', 'my_theme_slug');
    // $address_fields['state']['options'] = $towns_cities_arr;
    // $address_fields['state']['validate'] = false;

     $address_fields['address_1']['type'] = 'select';
    $address_fields['address_1']['class'] = array('form-row-last', 'my-custom-class');
    $address_fields['address_1']['label'] = __('Wilaya ', 'my_theme_slug');
    $address_fields['address_1']['options'] = $towns_cities_arr;

     $address_fields['state']['type'] = 'select';
    $address_fields['state']['class'] = array('form-row-last', 'my-custom-class');
    $address_fields['state']['label'] = __('Wilaya ', 'my_theme_slug');
    $address_fields['state']['options'] = $towns_cities_arr;



    //echo '<script>console.log('.var_dump($address_fields).')</script>';
    // Returning Checkout customized fields
    return $address_fields;

}

Буду признателен за помощь вот результаты моего кода в интерфейсе оформления заказа для woocommerce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...