Отключить поле выбора с предварительно выбранным значением в Woocommerce

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

что я'm trying to achieve

Ниже приведен мой код состояния полей woocommerce в моем файле function.php. какой тип я должен использовать?

add_filter( 'woocommerce_checkout_fields', 'custom_checkout_fields', 10, 1 );
function custom_checkout_fields( $fields ) {

$fields['billing']['billing_city']['type'] = 'select';
$fields['billing']['billing_city']['options'] = array('Auckland' => 'Auckland');


return $fields;
}

1

Решение

Вы можете сделать поле только для чтения (отключен) на странице оформления заказа (а также в Личном кабинете> Адреса> раздел «Адрес для выставления счетов»)

2 разных случая:

1) Для select тип:

add_filter( 'woocommerce_billing_fields', 'custom_checkout_billing_city_field', 10, 1 );
function custom_checkout_billing_city_field( $billing_fields ) {
// HERE define the city
$city = 'Auckland';

// Set the city value (to be sure)
WC()->customer->set_billing_city( $city );

// Change the billing city field
$billing_fields['billing_city']['type'] = 'select';
$billing_fields['billing_city']['options'] = array( $city => $city );
$billing_fields['billing_city']['default'] = $city;
$billing_fields['billing_city']['custom_attributes']['disabled'] = 'disabled';

return $billing_fields;
}

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

Поле выбора отключено (только чтение) с заранее выбранным городом:

введите описание изображения здесь


2) Для text тип:

add_filter( 'woocommerce_billing_fields', 'custom_checkout_billing_city_field', 10, 1 );
function custom_checkout_billing_city_field( $billing_fields ) {
// HERE define the city
$city = 'Auckland';

// Set the city value (to be sure)
WC()->customer->set_billing_city( $city );

// Change the billing city field
$billing_fields['billing_city']['default'] = $city;
$billing_fields['billing_city']['custom_attributes']['readonly'] = 'readonly';

return $billing_fields;
}

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

Текстовое поле доступно только для чтения с предварительно выбранным городом:

введите описание изображения здесь

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]