Как изменить и добавить поля в форму регистрации 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 можно быстро и гибко реализовать нужный функционал своими руками, а плагины помогают упростить процесс без знаний программирования. Главное — помнить о безопасности и удобстве пользователей при внесении изменений.

Как избежать файловых конфликтов при обновлении WordPress и плагинов
23.12.2025
Как добавить динамические поля в WordPress без плагинов
14.03.2026
Как избежать повторов товаров и ошибок в WooCommerce: практическое руководство
25.05.2026
Как использовать хуки WooCommerce для добавления функционала в WordPress
03.12.2025
Как удалить старые изображения в WordPress без плагинов: практическое руководство
14.04.2026