Отключить поле выбора с предварительно выбранным значением в Woocommerce - PullRequest
0 голосов
/ 13 декабря 2018

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

what i'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 Ответ

0 голосов
/ 14 декабря 2018

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

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


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

...