Как удалить поля из регистрационной формы WordPress

В стандартной регистрационной форме 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 отлично подходит для оптимизации и управления регистрацией.

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

⭐⭐⭐⭐⭐