В стандартной регистрационной форме WordPress есть несколько полей, которые для многих проектов избыточны или не нужны. Например, поле "Имя" или "Фамилия". Иногда необходимо полностью удалить эти поля, чтобы упростить форму и улучшить пользовательский опыт. В этой статье мы подробно рассмотрим, как удалить как стандартные, так и кастомные поля из регистрационной формы WordPress, используя код и плагины.
Почему важно уметь удалять поля из регистрационной формы WordPress
Удаление ненужных полей упрощает процесс регистрации, снижает количество ошибок при заполнении и повышает конверсию. Кроме того, это снижает нагрузку на базу данных и упрощает администрирование пользователей. В некоторых случаях, например на закрытых сообществах или сайтах с минимальным набором данных, лишние поля могут создавать путаницу.
Однако важно понимать, что просто скрыть поле через CSS недостаточно — оно все равно будет отправлено и обработано сервером. Поэтому правильнее удалять поля именно программно.
Как удалить стандартные поля из регистрационной формы WordPress
Стандартная регистрационная форма WordPress создается функцией register_form и обрабатывается на сервере. Чтобы удалить стандартные поля, например "Имя" и "Фамилия", нужно использовать фильтры и хуки, которые позволяют изменять форму до вывода и обработку данных.
Удаление полей "Имя" и "Фамилия" с помощью фильтра wpedu_remove_registration_fields
Создадим функцию, которая уберет поля из формы регистрации. В WordPress по умолчанию этих полей нет, но часто их добавляют через хуки. Чтобы удалить их, нужно отцепить соответствующие действия или фильтры.
function wpedu_remove_registration_fields() {
// Отменяем добавление поля Имя
remove_action('register_form', 'register_form_first_name');
// Отменяем добавление поля Фамилия
remove_action('register_form', 'register_form_last_name');
}
add_action('init', 'wpedu_remove_registration_fields');
Если вы не знаете, какие функции добавляют поля, можно использовать функцию has_action для их поиска или посмотреть в код плагинов, которые расширяют регистрацию.
Удаление поля «Отображаемое имя» и других пользовательских полей
Если в вашей форме есть дополнительные поля, добавленные плагинами, их нужно удалять аналогично — отключая соответствующие хуки. Например, плагин Clearfy Pro позволяет управлять регистрационной формой и удалять ненужные поля через настройки, что удобно для тех, кто не хочет копаться в коде.
Удаление кастомных полей из регистрационной формы с помощью кода
Если вы добавляли поля в регистрацию через хук register_form, то для их удаления нужно удалить соответствующий хук. Рассмотрим пример добавления поля «Телефон» и его удаления.
Пример добавления кастомного поля «Телефон»
function wpedu_add_phone_field() {
?>
<p>
<label for="phone">Телефон</label><br />
<input type="text" name="phone" id="phone" class="input" value="<?php echo esc_attr( wp_unslash( $_POST['phone'] ?? '' ) ); ?>" size="25" />
</p>
<?php
}
add_action( 'register_form', 'wpedu_add_phone_field' );
Удаление кастомного поля «Телефон»
Чтобы убрать поле из формы, достаточно отключить хук:
remove_action( 'register_form', 'wpedu_add_phone_field' );
Если поле добавлялось из плагина, то нужно найти, как и где оно подключается, и отключить этот хук так же.
Обработка удаления поля на этапе валидации и регистрации
Важно не только убрать поле из формы, но и исключить его из обработки. Например, если поле «Телефон» проверялось и сохранялось в метаданные пользователя, нужно отключить эти функции.
function wpedu_disable_phone_validation( $errors, $sanitized_user_login, $user_email ) {
// Удаляем ошибку, связанную с телефоном
if ( isset( $errors->errors['phone_error'] ) ) {
unset( $errors->errors['phone_error'] );
}
return $errors;
}
add_filter( 'registration_errors', 'wpedu_disable_phone_validation', 10, 3 );
function wpedu_disable_phone_save( $user_id ) {
// Не сохраняем телефон
if ( isset( $_POST['phone'] ) ) {
delete_user_meta( $user_id, 'phone' );
}
}
add_action( 'user_register', 'wpedu_disable_phone_save' );
Использование плагинов для управления регистрацией и полями
Если вы хотите гибко управлять регистрационной формой без написания кода, обратите внимание на следующие плагины:
- User Registration — позволяет создавать собственные формы регистрации и полностью контролировать поля.
- Clearfy Pro — оптимизирует регистрацию и позволяет отключать ненужные поля и функции WordPress.
- WP User Manager — плагин с расширенными возможностями для управления профилями и регистрацией.
Использование плагинов особенно удобно, если вы не хотите изменять код сайта и хотите получить готовые решения с поддержкой и обновлениями.
Выводы и рекомендации
Удаление полей из регистрационной формы WordPress — задача, требующая понимания, какие поля добавлены стандартными средствами, а какие — плагинами или темами. Всегда начинайте с анализа кода и используйте remove_action и remove_filter для отключения нежелательных полей.
Для сложных случаев используйте плагины, которые позволят управлять формами без риска повредить сайт. Например, Clearfy Pro отлично подходит для оптимизации и управления регистрацией.
И помните, что удаление поля — это не только визуальное изменение, но и корректная обработка на сервере и в базе данных.