Как переопределить поле доставки почтового индекса woocommerce и сделать его выпадающим или выбрать?

64
6

Я пытаюсь сделать поле почтового индекса при доставке только выбранным типом с моими параметрами на странице оформления заказа в woocommerce

1. Сброс поля состояния доставки и почтового индекса

add_filter( 'woocommerce_checkout_fields' , 'partial_unsetting_checkout_fields' );
function partial_unsetting_checkout_fields( $fields ) {
unset($fields['shipping']['woocommerce_checkout_fields']);
return $fields;
}

2. Reinserting поле доставки почтовый индекс,

add_filter( 'woocommerce_checkout_fields' , 'art_override_default_address_fields' );
function art_override_default_address_fields( $fields ) {
$fields['shipping_postcode']['type'] = 'select';
$fields['shipping_postcode']['class'] = array('form-row-wide');
$fields['shipping_postcode']['required'] = true;
$fields['shipping_postcode']['label'] = __('Postcode', 'my_theme_slug');
$fields['shipping_postcode']['placeholder'] = __('Enter Postcode', 'my_theme_slug');
$fields['shipping_postcode']['default'] ='Choice 1';
$fields['shipping_postcode']['options'] = array(
'option_1' => 'Choice 1',
'option_2' => 'Choice 2',
'option_3' => 'Choice 3'
);
}

спросил(а) 2021-01-19T18:57:37+03:00 6 месяцев назад
1
Решение
90

Есть несколько способов сделать это:

1) Для доставки только в поле почтовый индекс, вы будете использовать следующее:

add_filter( 'woocommerce_shipping_fields' , 'customize_shipping_postcode_field' );
function customize_shipping_postcode_field( $shipping_fields ) {

$shipping_fields['shipping_postcode']['type'] = 'select';
$shipping_fields['shipping_postcode']['options'] = array(
'' => __('Select your postcode', 'woocommerce'),
'option_1' => 'Choice 1',
'option_2' => 'Choice 2',
'option_3' => 'Choice 3'
);

return $shipping_fields;
}

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

2) Для полей выставления счетов и доставки вы можете использовать это вместо:

add_filter( 'woocommerce_default_address_fields' , 'customize_postcode_fields' );
function customize_postcode_fields( $adresses_fields ) {

$adresses_fields['postcode']['type'] = 'select';
$adresses_fields['postcode']['options'] = array(
'' => __('Select your postcode', 'woocommerce'),
'option_1' => 'Choice 1',
'option_2' => 'Choice 2',
'option_3' => 'Choice 3'
);

return $adresses_fields;
}

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

enter image description here

ответил(а) 2021-01-19T18:57:37+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема