Вы можете создать поле только для чтения (отключено) на странице оформления заказа (а также в разделе Моя учетная запись> Адреса> Адрес для выставления счетов) …
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 вашей активной дочерней темы(или активная тема).Протестировано и работает.
Поле выбора отключено (только для чтения) с предварительно выбранным городом:
![enter image description here](https://i.stack.imgur.com/r1eIH.png)
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 вашей активной дочерней темы (или активной темы).Протестировано и работает.
Текстовое поле доступно только для чтения с предварительно выбранным городом:
![enter image description here](https://i.stack.imgur.com/Peyo1.png)