Как изменить регистрацию пользователей WordPress через функции

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

Почему стоит кастомизировать регистрацию пользователей в WordPress

Стандартный процесс регистрации предоставляет только базовые поля — имя пользователя и e-mail. Это не всегда удобно, если нужно собрать больше информации, например, телефон, дату рождения или согласие с политикой конфиденциальности. Кроме того, часто возникает необходимость внедрить дополнительную валидацию данных, защиту от спама или интеграцию с CRM.

Кастомизация регистрации позволяет:

  • Добавить дополнительные поля для сбора нужной информации;
  • Проверить валидность и корректность введенных данных;
  • Изменить внешний вид и поведение формы регистрации;
  • Автоматизировать отправку уведомлений и письма с подтверждением;
  • Интегрировать регистрацию с другими системами и плагинами.

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

Добавление дополнительных полей в форму регистрации WordPress

Давайте рассмотрим пример, как с помощью хуков добавить поле "Телефон" в стандартную форму регистрации.

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

Для начала с помощью хука register_form добавим HTML-код поля:

function wpeasy_add_phone_field() {
    $phone = ( isset( $_POST['phone'] ) ) ? esc_attr( $_POST['phone'] ) : '';
    echo '<p><label for="phone">Телефон <br /><input type="text" name="phone" id="phone" class="input" value="'. $phone .'" size="25" /></label></p>';
}
add_action('register_form', 'wpeasy_add_phone_field');

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

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

Чтобы при регистрации проверять корректность введенного телефона, используем фильтр registration_errors:

function wpeasy_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', 'wpeasy_validate_phone_field', 10, 3);

Здесь мы проверяем, что поле не пустое и соответствует простому регулярному выражению для номера телефона.

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

После успешной регистрации нужно сохранить номер телефона в пользовательские мета-данные. Для этого используем действие user_register:

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

Теперь номер телефона сохранится и будет доступен для дальнейшего использования, например, в профиле пользователя.

Использование плагинов для расширения регистрации

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

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

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

Пример кастомной функции отправки письма после регистрации

Иногда требуется отправить кастомное письмо после успешной регистрации пользователя. Для этого используйте следующий код:

function wpeasy_send_welcome_email( $user_id ) {
    $user_info = get_userdata( $user_id );
    $to = $user_info->user_email;
    $subject = 'Добро пожаловать на наш сайт!';
    $message = 'Здравствуйте, ' . $user_info->first_name . '! Спасибо за регистрацию на нашем сайте.';
    wp_mail( $to, $subject, $message );
}
add_action( 'user_register', 'wpeasy_send_welcome_email' );

Этот код автоматически отправит приветственное письмо новому пользователю.

Заключение: рекомендации по безопасности и удобству

При кастомизации регистрации важно не забывать про безопасность:

  • Всегда фильтруйте и проверяйте вводимые данные, чтобы избежать XSS и SQL-инъекций;
  • Используйте nonce-поля для защиты от CSRF;
  • Активируйте защиту от спама, например, с помощью reCAPTCHA или Honeypot;
  • Обеспечьте понятные сообщения об ошибках и удобный интерфейс для пользователей.

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

Как создать многоуровневую навигацию в WordPress с помощью ABC Pagination
04.01.2026
Как исправить проблемы с изменением slug в WooCommerce после редактирования товара
17.04.2026
Как автоматизировать удаление спама в комментариях WordPress
14.02.2026
Как использовать хуки для автоматизации в WordPress
22.01.2026
Как сделать многоуровневый фильтр в WordPress на примере товаров
04.04.2026