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

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

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

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

Однако при добавлении полей нужно соблюдать безопасность и удобство пользователя. Поля должны валидироваться, а данные — правильно сохраняться и выводиться в админке.

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

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

После установки и активации плагина можно:

  • Перейти в раздел «User Registration» в админке;
  • Создать новую форму, добавив нужные поля — текстовые, checkbox, селекты;
  • Настроить обязательность и валидацию полей;
  • Вставить шорткод формы на страницу регистрации.

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

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

Если хочется более гибкой настройки или не использовать плагин, можно добавить поле через код в functions.php темы или свой плагин. Рассмотрим, как добавить поле «Телефон».

Вывод дополнительного поля в форме регистрации

function wpgen_add_phone_field() {
    ?>
    <p>
        <label for="phone">Телефон</label>
        <input type="text" name="phone" id="phone" class="input" value="<?php echo esc_attr( wpgen_get_post_value('phone') ); ?>" size="25" />
    </p>
    <?php
}
add_action('register_form', 'wpgen_add_phone_field');

Здесь мы добавляем простой текстовый input для телефона. Функция wpgen_get_post_value() — вспомогательная, чтобы сохранить введённое значение при ошибках (ее код можно реализовать самостоятельно).

Валидация поля телефона

function wpgen_validate_phone_field($errors, $sanitized_user_login, $user_email) {
    if (empty($_POST['phone'])) {
        $errors->add('phone_error', '<strong>Ошибка</strong>: Поле Телефон обязательно.');
    } elseif (!preg_match('/^\+?[0-9\s\-\(\)]+$/', $_POST['phone'])) {
        $errors->add('phone_error', '<strong>Ошибка</strong>: Неверный формат телефона.');
    }
    return $errors;
}
add_filter('registration_errors', 'wpgen_validate_phone_field', 10, 3);

Регулярное выражение допускает цифры, пробелы, скобки и знак + в начале, что подходит для большинства телефонов.

Сохранение поля телефона в метаданные пользователя

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

После успешной регистрации значение телефона сохраняется к пользователю.

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

function wpgen_show_phone_in_profile($user) {
    $phone = get_user_meta($user->ID, 'phone', true);
    ?>
    <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($phone); ?>" class="regular-text" /></td>
        </tr>
    </table>
    <?php
}
add_action('show_user_profile', 'wpgen_show_phone_in_profile');
add_action('edit_user_profile', 'wpgen_show_phone_in_profile');

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

Использование плагина Clearfy Pro для управления формой регистрации

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

Это удобный способ быстро добавить поле, не углубляясь в программирование, с поддержкой валидации и вывода в админке.

Советы по безопасности и удобству при добавлении полей в регистрацию

При расширении формы регистрации следует учесть несколько важных моментов:

  • Обязательно валидируйте и санитизируйте данные — это поможет избежать уязвимостей и ошибок.
  • Не добавляйте слишком много обязательных полей — это может отпугнуть пользователей.
  • Используйте понятные подписи и подсказки к полям.
  • Проверяйте совместимость с плагинами безопасности и кеширования.
  • Храните данные в пользовательских метаполях с префиксом для избежания конфликтов.

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

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

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

Оптимизация базы данных WordPress для повышения производительности сайта
16.11.2025
Как добавить автоматическое сохранение данных в формах WordPress
27.02.2026
Как сделать защитные метаполя в WordPress для хранения персональных данных
24.12.2025
Как создать настройки плагина WordPress на основе Customizer
11.04.2026
Создание эффективного загрузчика изображений в WordPress с поддержкой Ajax
04.01.2026