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

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

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

Стандартная форма регистрации содержит всего несколько полей: имя пользователя, email и пароль. Но для многих сайтов важно собирать больше информации. Например, если у вас сообщество, интернет-магазин или образовательный портал, дополнительные поля помогут лучше сегментировать пользователей или персонализировать сервис.

Добавление дополнительных полей помогает:

  • Собрать контактные данные (телефон, соцсети, адрес)
  • Узнать предпочтения пользователя
  • Отслеживать источник регистрации
  • Выполнять кастомные проверки и фильтрацию

Рассмотрим, как расширить форму регистрации с помощью готовых плагинов и собственных функций.

Добавление поля регистрации с помощью плагинов

Если вы не хотите вникать в код, можно воспользоваться плагинами. Вот несколько популярных решений:

1. Profile Builder

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

Преимущества:

  • Интуитивный интерфейс
  • Поддержка кастомных полей разных типов (текст, чекбоксы, селекты)
  • Возможность создавать несколько форм регистрации

Для установки достаточно зайти в админку WordPress, выбрать «Плагины» > «Добавить новый», найти Profile Builder и активировать. После этого можно создавать новые поля в разделе «Profile Builder» > «Manage Fields».

2. User Registration

User Registration — еще один удобный плагин с визуальным конструктором форм. Он позволяет добавлять поля простым перетаскиванием.

Особенности:

  • Множество типов полей
  • Короткие коды для вставки форм на страницы
  • Поддержка подтверждения email и reCAPTCHA

Плагин доступен бесплатно на официальном репозитории, есть платные расширения для интеграций.

3. WPGPT и другие плагины от WPSHOP.RU

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

Плагины из набора WPSHOP обычно хорошо совместимы и имеют поддержку, что важно для продвинутых сайтов.

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

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

1. Добавляем поле в форму регистрации

function wpid_add_phone_field() {
    ?>
    <p>
        <label for="phone">Телефон <br /></label>
        <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', 'wpid_add_phone_field' );

Этот код добавляет текстовое поле "Телефон" в форму регистрации.

2. Проверяем заполнение поля

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

Здесь мы проверяем, что телефон введён и соответствует простому шаблону номера. При ошибке выводится сообщение.

3. Сохраняем данные

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

После успешной регистрации номер телефона сохраняется в метаданные пользователя.

4. Отображение поля в профиле пользователя

Чтобы администратор мог видеть номер телефона, добавим поле в профиль:

function wpid_show_phone_profile_field( $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', 'wpid_show_phone_profile_field' );
add_action( 'edit_user_profile', 'wpid_show_phone_profile_field' );

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

Эти функции добавят поле телефона в профиле пользователя и позволят его редактировать.

Как улучшить безопасность и удобство пользовательских полей

При работе с дополнительными полями важно:

  • Использовать sanitize_text_field() или другие функции очистки данных
  • Проверять данные на корректность (например, регулярными выражениями)
  • Защищать формы от CSRF и ботов с помощью nonce и reCAPTCHA
  • Обеспечивать совместимость с плагинами кэширования и безопасности

Для удобства пользователей можно добавить маски ввода (через JavaScript), подсказки и валидацию на стороне клиента.

Выводы и рекомендации

Добавление кастомных полей в форму регистрации WordPress позволяет собрать полезную информацию и настроить работу сайта под свои задачи. Если не хотите писать код, используйте плагины Profile Builder или User Registration. Для гибкой кастомизации подойдет самостоятельное решение на хуках.

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

Экспериментируйте, адаптируя функционал под конкретные задачи вашего сайта!

Как использовать WPRemark для повышения вовлечённости пользователей в WordPress
14.01.2026
Как использовать хуки для удаления метаданных в WordPress
08.01.2026
Как создать свой плагин для WordPress с примерами кода
21.11.2025
Как добавить многоязычность в WordPress без плагинов
12.02.2026
Оптимизация базы данных WordPress: практические советы от WPID
04.11.2025