В настоящее время на странице «Изменить данные учетной записи» есть следующие поля: Имя, Фамилия, Адрес электронной почты, Текущий пароль & Новый пароль.
Теперь мне нужно отключить поля «Имя», «Фамилия», «Адрес электронной почты» только для пользователей. Я использую тему Flatsome WP и плагины Woocommerce.
Как я могу это сделать?
Обновить
За редактировать Поля «Детали учетной записи» (поле электронной почты), вам нужно будет отредактировать
myaccount/form-edit-account.php
файл шаблона, так как эти поля жестко запрограммированы в шаблонеВам нужно будет добавить только для чтения атрибут для связанных полей ввода, как в этом примере извлечения:
<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' ); ?> <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>
Официальная документация: Переопределение шаблонов через тему
Для Моя учетная запись> изменить адрес для выставления счета, следующий код сделает только для чтения имя, фамилия и адрес электронной почты для полей выставления счетов:
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 вашей активной дочерней темы (или активной темы). Проверено и работает.
Вы можете легко отключить различные поля на странице учетной записи 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' );
Документацию для настройки полей можно найти Вот.