WordPress.org

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Function Reference/wp new user notification

Description

Notify the blog admin of a new user, and optionally send an email to the user with an activation link.

This function can be replaced via plugins. If plugins do not redefine these functions, then this will be used instead.

Usage

<?php wp_new_user_notification$user_id$notify ?>

Parameters

$user_id
(integer) (required) User ID
Default: None
$notify
(string) (optional) Whether admin and user should be notified ('both') or only the admin ('admin' or empty)
Default: ''

Note: If password is not passed to function, the newly registered user will not receive their welcome email.

Return Values

(void) 
This function does not return a value.

Examples

// Redefine user notification function
if ( !function_exists('wp_new_user_notification') ) {

	function wp_new_user_notification( $user_id, $notify = '' ) {
 
                global $wpdb;
		$user = new WP_User( $user_id );

		$user_login = stripslashes( $user->user_login );
		$user_email = stripslashes( $user->user_email );

		$message  = sprintf( __('New user registration on %s:'), get_option('blogname') ) . "\r\n\r\n";
		$message .= sprintf( __('Username: %s'), $user_login ) . "\r\n\r\n";
		$message .= sprintf( __('E-mail: %s'), $user_email ) . "\r\n";

		@wp_mail(
			get_option('admin_email'),
			sprintf(__('[%s] New User Registration'), get_option('blogname') ),
			$message
		);


		if ( 'admin' === $notify || empty( $notify ) ) {
			return;
		}

		// Generate a key.
		$key = wp_generate_password( 20, false );
		
		do_action( 'retrieve_password_key', $user->user_login, $key );

		// Now insert the key, hashed, into the DB.
		if ( empty( $wp_hasher ) ) {
			require_once ABSPATH . WPINC . '/class-phpass.php';
			$wp_hasher = new PasswordHash( 8, true );
		}
		
		$hashed = time() . ':' . $wp_hasher->HashPassword( $key );
		$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user->user_login ) );

		$message  = __('Hi there,') . "\r\n\r\n";
		$message .= sprintf( __("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";

		$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";
		
		$message .= sprintf( __('If you have any problems, please contact me at %s.'), get_option('admin_email') ) . "\r\n\r\n";
		$message .= __('Adios!');

		wp_mail(
			$user_email,
			sprintf( __('[%s] Your username and password info'), get_option('blogname') ),
			$message
		);
	}
}

Notes

  • This function can be replaced via plugins. If plugins do not redefine these functions, then this will be used instead.
  • As of WP 4.3, a plain text password is no longer passed to the function. If you have a plugged version of this function and are assuming that the second function argument is `$plaintext_pass`, the password displayed in your email to the user will be "admin" or "both".

Change Log

  • Since: 2.0
  • Since: 4.3 The $plaintext_pass parameter was changed to $notify

Source File

wp_new_user_notification() is located in wp-includes/pluggable.php.

Related

See also index of Function Reference and index of Template Tags.