On this page
wp_new_user_notification( int $user_id, null $deprecated = null, string $notify = '' )
Emails login credentials to a newly-registered user.
Description
A new user registration notification is also sent to admin email.
Parameters
$user_idint Required-
User ID.
$deprecatednull Optional-
Not used (argument deprecated).
Default:
null $notifystring Optional-
Type of notification that should happen. Accepts
'admin'or an empty string (admin only),'user', or'both'(admin and user).Default:
''
More Information
- This function can be replaced via plugins. If plugins do not redefine these functions, then this will be used instead.
Source
File: wp-includes/pluggable.php. View all references
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 '' as $notify.
if ( ! in_array( $notify, array( 'user', 'admin', 'both', '' ), true ) ) {
return;
}
$user = get_userdata( $user_id );
// The blogname option is escaped with esc_html() on the way into the 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 );
/**
* Filters whether the admin is notified of a new user registration.
*
* @since 6.1.0
*
* @param bool $send Whether to send the email. Default true.
* @param WP_User $user User object for new user.
*/
$send_notification_to_admin = apply_filters( 'wp_send_new_user_notification_to_admin', true, $user );
if ( 'user' !== $notify && true === $send_notification_to_admin ) {
$switched_locale = switch_to_locale( get_locale() );
/* translators: %s: Site title. */
$message = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
/* translators: %s: User login. */
$message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "\r\n\r\n";
/* translators: %s: User email address. */
$message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n";
$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 the contents of the 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 The subject of the email.
* @type string $message The body of the email.
* @type string $headers The 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();
}
}
/**
* Filters whether the user is notified of their new user registration.
*
* @since 6.1.0
*
* @param bool $send Whether to send the email. Default true.
* @param WP_User $user User object for new user.
*/
$send_notification_to_user = apply_filters( 'wp_send_new_user_notification_to_user', true, $user );
// `$deprecated` was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notification.
if ( 'admin' === $notify || true !== $send_notification_to_user || ( 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 ) . "\r\n\r\n";
$message .= __( 'To set your password, visit the following address:' ) . "\r\n\r\n";
$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user->user_login ), 'login' ) . "\r\n\r\n";
$message .= wp_login_url() . "\r\n";
$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 the contents of the new user notification email sent to the 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 The subject of the email.
* @type string $message The body of the email.
* @type string $headers The 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();
}
}
Hooks
- apply_filters( 'wp_new_user_notification_email',
array $wp_new_user_notification_email ,WP_User $user ,string $blogname ) -
Filters the contents of the new user notification email sent to the new user.
- apply_filters( 'wp_new_user_notification_email_admin',
array $wp_new_user_notification_email_admin ,WP_User $user ,string $blogname ) -
Filters the contents of the new user notification email sent to the site admin.
- apply_filters( 'wp_send_new_user_notification_to_admin',
bool $send ,WP_User $user ) -
Filters whether the admin is notified of a new user registration.
- apply_filters( 'wp_send_new_user_notification_to_user',
bool $send ,WP_User $user ) -
Filters whether the user is notified of their new user registration.
Related
Uses
| Uses | Description |
|---|---|
| restore_previous_locale() wp-includes/l10n.php | Restores the translations according to the previous locale. |
| switch_to_locale() wp-includes/l10n.php | Switches the translations according to the given locale. |
| get_user_locale() wp-includes/l10n.php | Retrieves the locale of a user. |
| get_password_reset_key() wp-includes/user.php | Creates, stores, then returns a password reset key for user. |
| get_locale() wp-includes/l10n.php | Retrieves the current locale. |
| wp_specialchars_decode() wp-includes/formatting.php | Converts a number of HTML entities into their special characters. |
| wp_mail() wp-includes/pluggable.php | Sends an email, similar to PHP’s mail function. |
| wp_login_url() wp-includes/general-template.php | Retrieves the login URL. |
| network_site_url() wp-includes/link-template.php | Retrieves the site URL for the current network. |
| __() wp-includes/l10n.php | Retrieves the translation of $text. |
| get_userdata() wp-includes/pluggable.php | Retrieves user info by user ID. |
| _deprecated_argument() wp-includes/functions.php | Marks a function argument as deprecated and inform when it has been used. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
| get_option() wp-includes/option.php | Retrieves an option value based on an option name. |
| is_wp_error() wp-includes/load.php | Checks whether the given variable is a WordPress Error. |
Used By
| Used By | Description |
|---|---|
| wp_send_new_user_notifications() wp-includes/user.php | Initiates email notifications related to the creation of new users. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_new_user_notification