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

В настоящее время на странице «Изменить данные учетной записи» есть следующие поля: Имя, Фамилия, Адрес электронной почты, Текущий пароль и Новый пароль.

Теперь мне нужно отключить поля «Имя», «Фамилия», «Адрес электронной почты» только для пользователей.Я использую тему Flatsome WP и плагины Woocommerce.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Обновление

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

Вам необходимо добавить атрибут readonly к соответствующим полям ввода, как в этом примере извлечения:

<p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
    <label for="account_first_name"><?php esc_html_e( 'First name', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
    <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" autocomplete="given-name" value="<?php echo esc_attr( $user->first_name ); ?>" readonly />
</p>

Официальная документация: Переопределение шаблонов с помощью темы

Для моей учетной записи> изменить адрес для выставления счета, следующий код сделает readonly имя, фамилия и адрес электронной почты для полей выставления счетов:

add_filter( 'woocommerce_billing_fields', 'readonly_billing_account_fields', 25, 1 );
function readonly_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( is_user_logged_in() && is_account_page() ){

        $readonly = ['readonly' => 'readonly'];

        $billing_fields['billing_first_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_last_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_email']['custom_attributes'] = $readonly;
    }
    return $billing_fields;
}

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


Для удалите эти 3 поля , которые вы будете использовать:

add_filter( 'woocommerce_billing_fields', 'remove_billing_account_fields', 25, 1 );
function remove_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( is_user_logged_in() && is_account_page() ){
        unset($billing_fields['billing_first_name']);
        unset($billing_fields['billing_last_name']);
        unset($billing_fields['billing_email']);
    }
    return $billing_fields;
}

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

0 голосов
/ 21 сентября 2018

Вы можете легко отключить различные поля на странице учетной записи WooCommerce, добавив это в functions.php

function my_remove_checkout_fields($fields) {
    unset( $fields ['billing'] ['billing_first_name'] );
    unset( $fields ['billing'] ['billing_last_name'] );
    unset( $fields ['billing'] ['billing_email'] );

    // Any other fields you want to unset...

    return $fields;
}

add_filter( 'woocommerce_checkout_fields', 'my_remove_checkout_fields' );

вашей темы. Документацию по настройке полей можно найти здесь .

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