Как сделать поля страницы оформления заказа Woocommerce доступными только для чтения - PullRequest
0 голосов
/ 27 июня 2018

Для редактирования woocommerce (плагин WordPress) полей страницы учетной записи и сделать доступным только для чтения, легко редактировать woocommerce/templates/myaccount/form-edit-account.php файл и добавить только только для чтения в конец полей, теги end (извините, мой английский) и программирование не профессиональное и хорошее)

Но для редактирования woocommerce извлеките поля страницы и сделайте одно или два или более полей, например, поле электронной почты, доступными только для чтения, нельзя сделать предыдущим способом

Пожалуйста, помогите мне сделать это, я понятия не имею.

Было бы намного лучше, если бы научил меня делать это из functions.php простым, лучшим и надежным способом (если это возможно).

еще раз спасибо

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

очень спасибо за ответ г-н Амритош Пандей этот код работает правильно

только для поля электронной почты, удалите:

if($key == 'billing_address_1' || $key == 'billing_address_2'){

и я перехожу на

if($key == 'billing_email'){

и работать идеально и правильно

мой новый квест> если использовать для двух полей, например: мобильное (тел) и поле электронной почты или более Должен ли я повторить все коды? из add_action для возврата $ checkout_fields; }

или может повторить if ($ key строка 2 или 3 или больше?

пример:

...
...
if($key == 'billing_email'){
if($key == 'billing_phone'){
if($key == 'billing_postcode'){
...
...

спасибо

0 голосов
/ 29 июня 2018

Вы можете использовать следующий код в файле «function.php» вашей темы.

  add_action('woocommerce_checkout_fields','customization_readonly_billing_fields',10,1);
        function customization_readonly_billing_fields($checkout_fields){
            $current_user = wp_get_current_user();;
            $user_id = $current_user->ID;
            foreach ( $checkout_fields['billing'] as $key => $field ){
                if($key == 'billing_address_1' || $key == 'billing_address_2'){
                    $key_value = get_user_meta($user_id, $key, true);
                    if( strlen($key_value)>0){
                        $checkout_fields['billing'][$key]['custom_attributes'] = array('readonly'=>'readonly');
                    }
                }
            }
            return $checkout_fields;
        }

Эта функция проверяет, имеют ли поля адреса значение (т. Е. Если адрес указан), и, если оно имеет значение, делает поле / поля доступными только для чтения. Остальное оставляет поля открытыми для добавления данных для пользователя. Вы можете применять одну и ту же концепцию для каждого обязательного поля.

Надеюсь, это поможет.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...