Функция register_new_user()
используется для регистрации нового пользователя в базе данных WordPress. Эта функция проверяет корректность введенных данных (логина и email), генерирует случайный пароль и создает нового пользователя с помощью функции wp_create_user()
. Если регистрация прошла успешно, пользователь получает уведомление на email.
register_new_user( string $user_login, string $user_email ): int|WP_Error
Параметры:
$user_login
(строка, обязательный): Логин пользователя, который он будет использовать для входа.$user_email
(строка, обязательный): Email-адрес пользователя, на который будет отправлено письмо с уведомлением о регистрации.
Возвращаемое значение:
- Возвращает ID пользователя в случае успешной регистрации.
- Возвращает объект WP_Error в случае ошибки.
Описание:
register_new_user()
проверяет корректность логина и email, генерирует случайный пароль с помощьюwp_generate_password()
и создает пользователя с помощью функцииwp_create_user()
. Если регистрация прошла успешно, пользователь получает email с уведомлением о своем новом аккаунте и сгенерированным паролем.- Если требуется создать пользователя с конкретным паролем, рекомендуется использовать
wp_create_user()
илиwp_insert_user()
.
Хуки:
register_post
: Этот хук позволяет изменять данные до их сохранения.registration_errors
: Позволяет обработать ошибки регистрации и добавить собственные проверки.wp_new_user_notification
: Отправляет уведомление пользователю о создании аккаунта.
1. Пример из файла wp-login.php
$user_login = sanitize_text_field( $_POST['user_login'] );
$user_email = sanitize_email( $_POST['user_email'] );
$user = register_new_user( $user_login, $user_email );
if ( ! is_wp_error( $user ) ) {
$redirect_to = ! empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
wp_safe_redirect( $redirect_to );
exit();
}
Этот пример показывает базовый сценарий регистрации пользователя через форму.
2. Регистрация нового пользователя с логином и email
$user_id = register_new_user( 'testuser', '[email protected]' );
if ( ! is_wp_error( $user_id ) ) {
echo "Пользователь успешно зарегистрирован с ID: " . $user_id;
} else {
echo "Ошибка регистрации: " . $user_id->get_error_message();
}
Этот код регистрирует пользователя с логином «testuser» и email «[email protected]».
Обработка ошибок
Функция возвращает объект WP_Error
при возникновении ошибок. Пример обработки:
$user_id = register_new_user( 'invaliduser', 'invalidemail' );
if ( is_wp_error( $user_id ) ) {
echo "Ошибка: " . $user_id->get_error_message();
}
Заключение:
register_new_user()
— это удобная функция для автоматизации регистрации пользователей в WordPress. Она подходит для ситуаций, когда необходимо создать пользователя с минимальным набором данных, таким как логин и email, с автоматической генерацией пароля. Для более гибких настроек рекомендуется использовать функции wp_create_user()
или wp_insert_user()
.