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

Форма регистрации в WordPress по умолчанию содержит минимальный набор полей: имя пользователя, электронная почта и пароль. Но часто возникает необходимость добавить дополнительные поля или изменить существующие, например, добавить телефон, дату рождения или чекбоксы с согласием. В этой статье подробно рассмотрим, как это сделать без плагинов и с помощью плагинов, а также приведём примеры кода с пояснениями.

Почему стоит менять стандартную форму регистрации WordPress

Стандартная форма регистрации очень ограничена и не позволяет собирать необходимую информацию о пользователях. Добавление кастомных полей помогает:

  • Собирать важные для бизнеса данные (телефон, адрес, дата рождения и пр.).
  • Добавлять пользовательские настройки и предпочтения прямо при регистрации.
  • Улучшать взаимодействие с пользователями и сегментировать их.

Однако стоит помнить, что неправильное добавление полей может привести к ошибкам регистрации или проблемам с безопасностью, поэтому важно соблюдать правила валидации и обработки данных.

Способы изменить и добавить поля в форму регистрации WordPress

Существует два основных подхода:

1. Использование хуков и фильтров WordPress

WordPress предоставляет несколько хуков, с помощью которых можно добавлять поля в форму регистрации, проверять их и сохранять данные. Главные хуки:

  • register_form — добавляет HTML новые поля в форму.
  • registration_errors — проверяет правильность заполнения новых полей.
  • user_register — сохраняет данные в метаполя пользователя после регистрации.

Рассмотрим пример добавления поля «Телефон».

Пример: добавляем поле телефон в форму регистрации

function wpdream_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', 'wpdream_add_phone_field' );

function wpdream_validate_phone_field( $errors, $sanitized_user_login, $user_email ) {
    if ( empty( $_POST['phone'] ) || ! preg_match( '/^\+?\d{10,15}$/', $_POST['phone'] ) ) {
        $errors->add( 'phone_error', 'Пожалуйста, введите корректный номер телефона.' );
    }
    return $errors;
}
add_filter( 'registration_errors', 'wpdream_validate_phone_field', 10, 3 );

function wpdream_save_phone_field( $user_id ) {
    if ( ! empty( $_POST['phone'] ) ) {
        update_user_meta( $user_id, 'phone', sanitize_text_field( $_POST['phone'] ) );
    }
}
add_action( 'user_register', 'wpdream_save_phone_field' );

В результате при регистрации появится новое поле «Телефон», которое обязательно к заполнению, и данные будут сохранены в метаполе пользователя.

2. Использование плагинов для расширения формы регистрации

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

Популярные плагины:

  • Clearfy Pro — оптимизация и расширение функционала, в том числе регистрация с кастомными полями.
  • WPCommunity — плагин для создания форума с расширенной регистрацией.
  • My Popup — можно использовать для вывода кастомных форм регистрации и сбора данных.

Плагины позволяют создавать поля разных типов (текст, дата, выбор, чекбоксы) и гибко настраивать валидацию, что значительно упрощает задачу.

Как отобразить и использовать дополнительные поля в профиле пользователя

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

Добавляем поле в профиль пользователя в админке

function wpdream_show_phone_in_profile( $user ) {
    ?>
    <h3>Дополнительная информация</h3>
    <table class="form-table">
        <tr>
            <th><label for="phone">Телефон</label></th>
            <td>
                <input type="text" name="phone" id="phone" value="<?php echo esc_attr( get_user_meta( $user->ID, 'phone', true ) ); ?>" class="regular-text" />
            </td>
        </tr>
    </table>
    <?php
}
add_action( 'show_user_profile', 'wpdream_show_phone_in_profile' );
add_action( 'edit_user_profile', 'wpdream_show_phone_in_profile' );

function wpdream_save_phone_in_profile( $user_id ) {
    if ( current_user_can( 'edit_user', $user_id ) && isset( $_POST['phone'] ) ) {
        update_user_meta( $user_id, 'phone', sanitize_text_field( $_POST['phone'] ) );
    }
}
add_action( 'personal_options_update', 'wpdream_save_phone_in_profile' );
add_action( 'edit_user_profile_update', 'wpdream_save_phone_in_profile' );

Таким образом, администратор и сам пользователь смогут видеть и изменять телефон напрямую в профиле WordPress.

Советы и рекомендации по безопасности и удобству

При добавлении полей регистрации важно:

  • Всегда валидировать и фильтровать данные, чтобы избежать XSS и других уязвимостей.
  • Не добавлять слишком много полей, чтобы не усложнять регистрацию и не отпугивать пользователей.
  • Проверять корректность формата, например, используя регулярные выражения для телефона или email.
  • Использовать nonce-поля для защиты от CSRF-атак, если форма кастомная.
  • Если используете плагины, регулярно обновляйте их и проверяйте совместимость с вашей версией WordPress.

Заключение

Добавление и изменение полей в форме регистрации WordPress — частая задача для разработчиков и владельцев сайтов. С помощью хуков WordPress можно быстро и гибко реализовать нужный функционал своими руками, а плагины помогают упростить процесс без знаний программирования. Главное — помнить о безопасности и удобстве пользователей при внесении изменений.

Как удалить зависимые отзывы WooCommerce после удаления товара
17.07.2026
Как автоматически отключать неиспользуемые плагины WordPress для оптимизации сайта
10.03.2026
Как использовать хуки WooCommerce для добавления функционала в WordPress
03.12.2025
Как установить автоматический редирект на новый URL в WordPress
06.03.2026
Как удалить пустые атрибуты и классы из HTML в WordPress
31.05.2026