There are several ways to prevent user notification for new registered users and user password changes.
One would be to change the pluggable functions "wp_new_user_notification()
" and "wp_password_change_notification()
". A different way would be to post the following code in functions.php.
It uses the "phpmailer_init
" hook to test, if the subject of the mail is the one sent by "wp_new_user_notification" and "wp_password_change_notification
". If the condition is met then the $phpmailer
object is newly initialized. That means it is empty and cannot be sent since phpmailer class checks if there is at least a single recipient.
// prevent admin notification email for new registered users or user password changes
function conditional_mail_stop() {
global $phpmailer;
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$subject = array(
sprintf(__('[%s] New User Registration'), $blogname),
sprintf(__('[%s] Password Lost/Changed'), $blogname)
);
if ( in_array( $phpmailer->Subject, $subject ) )
// empty $phpmailer class -> email cannot be send
$phpmailer = new PHPMailer( true );
}
add_action( 'phpmailer_init', 'conditional_mail_stop' );