В Woocommerce я хотел бы изменить текстовое поле города в поле выбора поля выбора.Измените текстовое поле города на поле выбора опций в форме заказа
Что мне делать?
Вот скриншот:
Благодаря
В Woocommerce я хотел бы изменить текстовое поле города в поле выбора поля выбора.Измените текстовое поле города на поле выбора опций в форме заказа
Что мне делать?
Вот скриншот:
Благодаря
Вы должны сначала изменить поле 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'
по вашим.
Ссылки:
Вы можете настроить проверочные поля от действий и фильтров.
Пожалуйста, обратитесь к официальной документации 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 команды.
да спасибо, но я не могу найти этот код в WooCommerce плагине или мою тему .. – Krusna
Сработало вы спасли мой день. – Krusna
да и еще одна вещь, я хочу добавить класс в это поле. – Krusna