2016-09-26 2 views

ответ

1

Вы должны сначала изменить поле type из «текст» к «выберите» с помощью специального крючка woocommerce_default_address_fields. Тогда вы должны также изменить label и к и options аргумент, где вы собираетесь установить свои города в массиве key/values.

В этом массиве у вас будет линия по городу, разделенная комой.

Вот код:

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; 


    // Returning Checkout customized fields 
    return $address_fields; 

} 

Этот код идет в function.php файле Вашего активного ребенка темы (или темы), или же в любом файле плагина.

Код проверен и полностью работоспособен.


Update: Чтобы добавить свой собственный класс, замените в $address_fields['city']['class']… класс 'my-custom-class' по вашим.


Ссылки:

+0

да спасибо, но я не могу найти этот код в WooCommerce плагине или мою тему .. – Krusna

+0

Сработало вы спасли мой день. – Krusna

+0

да и еще одна вещь, я хочу добавить класс в это поле. – Krusna

1

Вы можете настроить проверочные поля от действий и фильтров.

Пожалуйста, обратитесь к официальной документации here

// Add these code in your theme's function.php 
add_filter('woocommerce_default_address_fields' , 'custom_override_default_address_fields'); 

// Our hooked in function - $address_fields is passed via the filter! 
function custom_override_default_address_fields($fields) { 

$fields['billing']['your_field']['options'] = array(
    'option_1' => 'Option 1 text', 
    'option_2' => 'Option 2 text' 
); 
    return $fields; 
} 

В случае, если вы ищете плагин, вы можете использовать checkout field editor из WooCommerce команды.

 Смежные вопросы

  • Нет связанных вопросов^_^