How to Turn Off New User Notification Emails in WordPress 4.3

Article in Blog

Recently I have received a lot of questions about “New User Notification Emails “. And almost the question are the same, like: I want to disable new user notification, I don’t like it, it’s troublesome. How to turn off new user notification emails? It annoys me. That is the motivation to share my knowledge on this post.

WordPress is now the most popular open-source content management system (CMS), built on basis of PHP and MySQL. When you enable user registration option on your site, it means WordPress will send email notifications to the administrator whenever new user registers. And here is the form:

New User Notification Email
New User Notification Email

If your website is popular, get high traffic and more people join in every day then it really is a trouble. Right now, I will introduce with you the two most popular methods to turn off new user notification emails. Please keep track and go along with me .

Using Disable New User Notification Emails Plugin

Disable New User Notification Emails Plugin is a plugin to block messages from your email inbox. And in our case, this plugin can be used to turn off the notification. After making registration, users will receive confirmations on their usernames and passwords. If they forget those information, the accounts still can be restored. Conveniently, the plugin will not affect to any other emails apart from new user notifications. From now on you will be free from annoying emails.

Specially, this plugin works from version WordPress 3.3.1 or higher. You just need to download the .zip file or going to Dashboard >>Plugins >> Add New, you search Disable New User Notification Email Plugin then install as other plugins to activate it.

This is simplest method for you to stop receiving new user notifications. If you interested in this plugin and want to download, please check out the link below.

Download

Using Code to Disable New User Notification Emails

This is a pretty simple approach but my advice is: if you don’t know the code then leave this method because it is very likely that you will accidentally delete something important.

WordPress comes with dozens of pluggable functions, however, of which a feature makes the users unhappy is wp_new_user_notification(); First, I will tell you about target and code of function. The purpose of this function is to send new user notifications email for the administrator and send the username and password for registered users. You can find it out in folder wp-includes >> user.php line 2622:

wp_new_user_notification( $user_id, null, 'both' );

The following part is code for the function to operate: from line 1684 to line 1747 of wp-includes >> pluggable.php:

if ( !function_exists('wp_new_user_notification') ) :
/**
* Email login credentials to a newly-registered user.
*
* A new user registration notification is also sent to admin email.
*
* @since 2.0.0
* @since 4.3.0 The `$plaintext_pass` parameter was changed to `$notify`.
* @since 4.3.1 The `$plaintext_pass` parameter was deprecated. `$notify` added as a third parameter.
*
* @global wpdb $wpdb WordPress database object for queries.
* @global PasswordHash $wp_hasher Portable PHP password hashing framework instance.
*
* @param int $user_id User ID.
* @param null $deprecated Not used (argument deprecated).
* @param string $notify Optional. Type of notification that should happen. Accepts 'admin' or an empty
* string (admin only), or 'both' (admin and user). The empty string value was kept
* for backward-compatibility purposes with the renamed parameter. Default empty.
*/
function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' ) {
if ( $deprecated !== null ) {
_deprecated_argument( __FUNCTION__, '4.3.1' );
}
global $wpdb, $wp_hasher;
$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);
$message = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
$message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";
@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
if ( 'admin' === $notify || empty( $notify ) ) {
return;
}
// Generate something random for a password reset key.
$key = wp_generate_password( 20, false );
/** This action is documented in wp-login.php */
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 = 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_mail($user->user_email, sprintf(__('[%s] Your username and password info'), $blogname), $message);
}
endif;

And here is instruction for you to fix:

  • Add the following code to the function.php file of your active theme

// Fix New User Email Notification
if( !function_exists ( 'wp_new_user_notification')){
function wp_new_user_notification ( $user_id, $notify = '' ) { }
}
endif;

  • However if the above code is used then all notifications will be disabled including the confirmation of usernames, passwords for registered users. So I recommend you should add the following code to the function.php file:

if ( !function_exists ( 'wp_new_user_notification' ) ) :
function wp_new_user_notification( $user_id, $notify = '' ) {
$user = get_userdata( $user_id );
$user_login = stripslashes ($user-> user_login);
$user_email = stripslashes ($user-> user_email);
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
if ( empty($notify) ) {
return;
}
$message = sprintf(__('Username: %s'), $user_login) . "\r\n";
$message .= sprintf(__( 'Password: %s', $notify) . "\r\n";
$message .= wp_login_url() . "\r\n";
wp_mail($user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
}
endif;

I hope after reading this post you can turn off new user registration notification emails if it is bothering you. I am very happy if receiving comments below the article: you did successfully. Do not hesitate and please let us know if you have some questions. We are willing to help you.

Comment

    Jayme Richmond
    December 3, 2017

    If some one desires to be updated with most up-to-date technologies afterward hee must be pay a vissit this webb page and be up to date all the time.

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.