wp_network_admin_email_change_notification( string $option_name, string $new_email, string $old_email, int $network_id )

Send an email to the old network admin email address when the network admin email address changes.


Parameters

$option_name

(Required) The relevant database option name.

$new_email

(Required) The new network admin email address.

$old_email

(Required) The old network admin email address.

$network_id

(Required) ID of the network.


Source

File: wp-includes/ms-functions.php

function wp_network_admin_email_change_notification( $option_name, $new_email, $old_email, $network_id ) {
	$send = true;

	// Don't send the notification to the default 'admin_email' value.
	if ( '[email protected]' === $old_email ) {
		$send = false;
	}

	/**
	 * Filters whether to send the network admin email change notification email.
	 *
	 * @since WP-4.9.0
	 *
	 * @param bool   $send       Whether to send the email notification.
	 * @param string $old_email  The old network admin email address.
	 * @param string $new_email  The new network admin email address.
	 * @param int    $network_id ID of the network.
	 */
	$send = apply_filters( 'send_network_admin_email_change_email', $send, $old_email, $new_email, $network_id );

	if ( ! $send ) {
		return;
	}

	/* translators: Do not translate OLD_EMAIL, NEW_EMAIL, SITENAME, SITEURL: those are placeholders. */
	$email_change_text = __( 'Hi,

This notice confirms that the network admin email address was changed on ###SITENAME###.

The new network admin email address is ###NEW_EMAIL###.

This email has been sent to ###OLD_EMAIL###

Regards,
All at ###SITENAME###
###SITEURL###' );

	$email_change_email = array(
		'to'      => $old_email,
		/* translators: Network admin email change notification email subject. %s: Network title */
		'subject' => __( '[%s] Notice of Network Admin Email Change' ),
		'message' => $email_change_text,
		'headers' => '',
	);
	// get network name
	$network_name = wp_specialchars_decode( get_site_option( 'site_name' ), ENT_QUOTES );

	/**
	 * Filters the contents of the email notification sent when the network admin email address is changed.
	 *
	 * @since WP-4.9.0
	 *
	 * @param array $email_change_email {
	 *            Used to build wp_mail().
	 *
	 *            @type string $to      The intended recipient.
	 *            @type string $subject The subject of the email.
	 *            @type string $message The content of the email.
	 *                The following strings have a special meaning and will get replaced dynamically:
	 *                - ###OLD_EMAIL### The old network admin email address.
	 *                - ###NEW_EMAIL### The new network admin email address.
	 *                - ###SITENAME###  The name of the network.
	 *                - ###SITEURL###   The URL to the site.
	 *            @type string $headers Headers.
	 *        }
	 * @param string $old_email  The old network admin email address.
	 * @param string $new_email  The new network admin email address.
	 * @param int    $network_id ID of the network.
	 */
	$email_change_email = apply_filters( 'network_admin_email_change_email', $email_change_email, $old_email, $new_email, $network_id );

	$email_change_email['message'] = str_replace( '###OLD_EMAIL###', $old_email,    $email_change_email['message'] );
	$email_change_email['message'] = str_replace( '###NEW_EMAIL###', $new_email,    $email_change_email['message'] );
	$email_change_email['message'] = str_replace( '###SITENAME###',  $network_name, $email_change_email['message'] );
	$email_change_email['message'] = str_replace( '###SITEURL###',   home_url(),    $email_change_email['message'] );

	wp_mail( $email_change_email['to'], sprintf(
		$email_change_email['subject'],
		$network_name
	), $email_change_email['message'], $email_change_email['headers'] );
}


Changelog

Changelog
Version Description
WP-4.9.0 Introduced.