wp_new_user_notification() │ WP 2.0.0 Повідомляє поштою адміністратора сайту про реєстрацію нового користувача та надсилає користувачеві лист з логіном та паролем для авторизації.
Ця функція автоматично спрацьовує на хуку wp_send_new_user_notifications() – обгортка для цієї функції.
add_action( 'register_new_user', 'wp_send_new_user_notifications');
Це init .
Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.
Повертає null
. Нічого.
Використання wp_new_user_notification( $user_id, $deprecated, $notify );
$user_id
(число) (обов’язковий)
ID користувача.
$deprecated
(застарів)
Застарілий з версії 4.3.1. Потрібно вказувати null.
Типово: null
$notify
(рядок) Визначає тип сповіщення.
admin
або пустая строка
( ” ) – повідомлення отримає лише адмін.user
– Повідомлення отримає лише створений користувач.both
– повідомлення отримають адмін та створений користувач.За замовчуванням: ”
Приклади #1 Повідомлення адміна та нового користувача про реєстрацію та надсилання обом листа Припустимо, при реєстрації користувача потрібно повідомити себе (ви адмін) і надіслати листа новому користувачу на пошту з посиланням на встановлення нового пароля:
$new_user_id = 8;
wp_new_user_notification( $new_user_id, 'both' ); В результаті:
Адмін отримає:
На вашому сайті «SYSTEMa» зареєстровано нового користувача:
Ім'я користувача: user
E-mail: [email protected] Користувач отримає:
Ім'я користувача: user
Щоб задати пароль, перейдіть за наступним посиланням:
<http://example.com/wp-login.php?action=rp&key=1ORsgCiUtZdwDw3tss4U&login=user>
http://example.com/wp-login.php Додати свій приклад
список змінЗ версії 2.0.0 Введено. З версії 4.3.0 $plaintext_pass parameter був змінений до $notify .З версії 4.3.1 The $plaintext_pass parameter був розбитий. $notify added as a third parameter. З версії 4.6.0 $notify parameter accepts ‘user’ для sending notification тільки для користувача створений.
Код wp_new_user_notification() wp new user notification WP 6.0.2 function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' ) {
if ( null !== $deprecated ) {
_deprecated_argument( __FUNCTION__, '4.3.1');
}
// Accepts only 'user', 'admin' , 'both' or default '' як $notify.
if ( ! in_array( $notify, array( 'user', 'admin', 'both', '' ), true ) ) {
return;
}
$ user = get_userdata ($ user_id);
// Вхідний блог name is escaped with esc_html() on the way in database in sanitize_option().
// We want to reverse this for the plain text arena of emails.
$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
if ( 'user' !== $notify ) {
$ switched_locale = switch_to_locale( get_locale() );
/* translators: %s: Site title. */
$message = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "nrn";
/* translators: %s: User login. */
$message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "nrn";
/* translators: %s: User email address. */
$message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "rn";
$wp_new_user_notification_email_admin = array(
'to' => get_option( 'admin_email' ),
/* translators: New user registration notification email subject. %s: Site title. */
'subject' => __( '[%s] New User Registration' ),
'message' => $message,
'headers' => '',
);
/**
* Filters contents of new user notification email sent to the site admin.
*
* @ Since 4.9.0
*
* @param array $wp_new_user_notification_email_admin {
* Used to build wp_mail().
*
* @type string $to The intended recipient - site admin email address.
* @type string $subject Subject of the email.
* @type string $message The body of the email.
* @type string $headers headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname );
wp_mail(
$wp_new_user_notification_email_admin['to'],
wp_specialchars_decode( sprintf( $wp_new_user_notification_email_admin['subject'], $blogname ) ),
$wp_new_user_notification_email_admin['message'],
$wp_new_user_notification_email_admin['headers']
);
if ($ switched_locale) {
restore_previous_locale();
}
}
// `$ deprecated` був pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notification.
if ( 'admin' === $notify || ( empty( $deprecated ) && empty( $notify ) ) ) {
return;
}
$key = get_password_reset_key($user);
if ( is_wp_error( $key ) ) {
return;
}
$ switched_locale = switch_to_locale (get_user_locale ($ user));
/* translators: %s: User login. */
$message = sprintf( __( 'Username: %s' ), $user->user_login ) . "nrn";
$message .= __( 'To set your password, visit the following address:' ) . "nrn";
$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user->user_login ), 'login' ) . "nrn";
$message .= wp_login_url() . "rn";
$wp_new_user_notification_email = array(
'to' => $user->user_email,
/* translators: Login details notification email subject. %s: Site title. */
'subject' => __( '[%s] Login Details' ),
'message' => $message,
'headers' => '',
);
/**
* Filters contents of new user notification e-mail sent to new user.
*
* @ Since 4.9.0
*
* @param array $wp_new_user_notification_email {
* Used to build wp_mail().
*
* @type string $to The intended recipient - New user email address.
* @type string $subject Subject of the email.
* @type string $message The body of the email.
* @type string $headers headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email', $wp_new_user_notification_email, $user, $blogname );
wp_mail(
$wp_new_user_notification_email['to'],
wp_specialchars_decode( sprintf( $wp_new_user_notification_email['subject'], $blogname ) ),
$wp_new_user_notification_email['message'],
$wp_new_user_notification_email['headers']
);
if ($ switched_locale) {
restore_previous_locale();
}
} Зв’язані функції