Index: src/wp-includes/pluggable.php
===================================================================
--- src/wp-includes/pluggable.php	(revision 41155)
+++ src/wp-includes/pluggable.php	(working copy)
@@ -1746,43 +1746,36 @@
 		$message = sprintf( __( 'Password changed for user: %s' ), $user->user_login ) . "\r\n";
 		// 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);
+		$blog_name = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
-		/* translators: %s: site title */
-		$subject = sprintf( __( '[%s] Password Changed' ), $blogname );
-
+		$wp_password_change_notification_email = array(
+			'to'      => get_option( 'admin_email' ),
+			/* translators: Password change notification email subject. 1: Site name */
+			'subject' => __( '[%s] Password Changed' ),
+			'message' => $message,
+			'headers' => '',
+		);
 		/**
-		 * Filters the subject of the password change notification email sent to the site admin.
+		 * Filters the contents of the password change notification email sent to the site admin.
 		 *
 		 * @since 4.9.0
 		 *
-		 * @param string  $subject  Email subject.
+		 * @param array  $wp_password_change_notification_email{
+		 *   Used to build wp_mail().
+		 *            @type string $to      The intended recipients - admin_email.
+		 *            @type string $subject The subject of the email.
+		 *            @type string $message The content of the email.
+		 * }
 		 * @param WP_User $user     User object for user whose password was changed.
-		 * @param string  $blogname The site title.
+		 * @param string  $blog_name The site title.
 		 */
-		$subject = apply_filters( 'wp_password_change_notification_subject', $subject, $user, $blogname );
+		$wp_password_change_notification_email = apply_filters( 'wp_password_change_notification_email', $wp_password_change_notification_email, $user, $blog_name );
 
-		/**
-		 * Filters the message body of the password change notification email sent to the site admin.
-		 *
-		 * @since 4.9.0
-		 *
-		 * @param string  $message Email message.
-		 * @param WP_User $user    User object for user whose password was changed.
-		 */
-		$message = apply_filters( 'wp_password_change_notification_message', $message, $user );
-
-		/**
-		 * Filters the email headers of the password change notification admin email sent to the site admin.
-		 *
-		 * @since 4.9.0
-		 *
-		 * @param string  $headers Email headers.
-		 * @param WP_User $user    User object for user whose password was changed.
-		 */
-		$headers = apply_filters( 'wp_password_change_notification_headers', '', $user );
-
-		wp_mail( get_option( 'admin_email' ), wp_specialchars_decode( $subject ), $message, $headers );
+		wp_mail( $wp_password_change_notification_email['to'],
+			wp_specialchars_decode( sprintf( $wp_password_change_notification_email['subject'] ), $blog_name ),
+			$wp_password_change_notification_email['message'],
+			$wp_password_change_notification_email['headers']
+		);
 	}
 }
 endif;
@@ -1816,53 +1809,47 @@
 
 	// 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);
+	$blog_name = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
 	if ( 'user' !== $notify ) {
 		$switched_locale = switch_to_locale( get_locale() );
 
 		/* translators: %s: site title */
-		$subject  = sprintf( __( '[%s] New User Registration' ), $blogname );
-		/* translators: %s: site title */
-		$message  = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
+		$message  = sprintf( __( 'New user registration on your site %s:' ), $blog_name ) . "\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: Password change notification email subject. 1: Site name */
+			'subject' => __( '[%s] New User Registration' ),
+			'message' => $message,
+			'headers' => '',
+		);
 		/**
-		 * Filters the subject of the new user notification email sent to the site admin.
+		 * Filters the contents of the new user notification email sent to the site admin.
 		 *
 		 * @since 4.9.0
 		 *
-		 * @param string  $subject  Email subject.
-		 * @param WP_User $user     User object for newly registered user.
-		 * @param string  $blogname The site title.
+		 * @param array $wp_new_user_notification_email{
+		 *   Used to build wp_mail().
+		 *            @type string $to      The intended recipients - admin_email.
+		 *            @type string $subject The subject of the email.
+		 *            @type string $message The content of the email.
+		 * }
+		 * @param WP_User $user     User object for user whose password was changed.
+		 * @param string  $blog_name The site title.
 		 */
-		$subject = apply_filters( 'wp_new_user_notification_admin_subject', $subject, $user, $blogname );
+		$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blog_name );
 
-		/**
-		 * Filters the message body of the new user notification email sent to the site admin.
-		 *
-		 * @since 4.9.0
-		 *
-		 * @param string  $message Email message.
-		 * @param WP_User $user    User object for newly registered user.
-		 */
-		$message = apply_filters( 'wp_new_user_notification_admin_message', $message, $user );
+		@wp_mail( $wp_new_user_notification_email_admin['to'],
+			wp_specialchars_decode( sprintf( $wp_new_user_notification_email_admin['subject'] ), $blog_name ),
+			$wp_new_user_notification_email_admin['message'],
+			$wp_new_user_notification_email_admin['headers']
+		);
 
-		/**
-		 * Filters the email headers of the new user notification email sent to the site admin.
-		 *
-		 * @since 4.9.0
-		 *
-		 * @param string  $headers Email headers.
-		 * @param WP_User $user    User object for newly registered user.
-		 */
-		$headers = apply_filters( 'wp_new_user_notification_admin_headers', '', $user );
-
-		@wp_mail( get_option( 'admin_email' ), wp_specialchars_decode( $subject ), $message, $headers );
-
 		if ( $switched_locale ) {
 			restore_previous_locale();
 		}
@@ -1889,8 +1876,6 @@
 
 	$switched_locale = switch_to_locale( get_user_locale( $user ) );
 
-	/* translators: %s: site title */
-	$subject = sprintf( __( '[%s] Your username and password info' ), $blogname );
 	/* 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";
@@ -1898,40 +1883,35 @@
 
 	$message .= wp_login_url() . "\r\n";
 
+	$wp_new_user_notification_email = array(
+		'to'      => $user->user_email,
+		/* translators: Password change notification email subject. 1: Site name */
+		'subject' => __( '[%s] Your username and password info' ),
+		'message' => $message,
+		'headers' => '',
+	);
 	/**
-	 * Filters the subject of the new user email sent to the new user.
+	 * Filters the contents of the new user notification email sent to the new user.
 	 *
 	 * @since 4.9.0
 	 *
-	 * @param string  $subject  Email subject.
-	 * @param WP_User $user     User object for newly registered user.
-	 * @param string  $blogname The site title.
+	 * @param array $wp_new_user_notification_email{
+	 *   Used to build wp_mail().
+	 *            @type string $to      The intended recipients - user_email.
+	 *            @type string $subject The subject of the email.
+	 *            @type string $message The content of the email.
+	 * }
+	 * @param WP_User $user     User object for user whose password was changed.
+	 * @param string  $blog_name The site title.
 	 */
-	$subject = apply_filters( 'wp_new_user_notification_subject', $subject, $user, $blogname );
+	$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email', $wp_new_user_notification_email, $user, $blog_name );
 
-	/**
-	 * Filters the message body of the new user email sent to the new user.
-	 *
-	 * @since 4.9.0
-	 *
-	 * @param string  $message Email message.
-	 * @param WP_User $user    User object for newly registered user.
-	 * @param string  $key     User activation key.
-	 */
-	$message = apply_filters( 'wp_new_user_notification_message', $message, $user, $key );
+	wp_mail( $wp_new_user_notification_email['to'],
+		wp_specialchars_decode( sprintf( $wp_new_user_notification_email['subject'] ), $blog_name ),
+		$wp_new_user_notification_email['message'],
+		$wp_new_user_notification_email['headers']
+	);
 
-	/**
-	 * Filters the email headers of the new user email sent to the new user.
-	 *
-	 * @since 4.9.0
-	 *
-	 * @param string  $headers Email headers.
-	 * @param WP_User $user    User object for newly registered user.
-	 */
-	$headers = apply_filters( 'wp_new_user_notification_headers', '', $user );
-
-	wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $headers );
-
 	if ( $switched_locale ) {
 		restore_previous_locale();
 	}
