WordPress Version: 6.1
/**
* Sends an email to the old network admin email address when the network admin email address changes.
*
* @since 4.9.0
*
* @param string $option_name The relevant database option name.
* @param string $new_email The new network admin email address.
* @param string $old_email The old network admin email address.
* @param int $network_id ID of the network.
*/
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 ('you@example.com' === $old_email) {
$send = false;
}
/**
* Filters whether to send the network admin email change notification email.
*
* @since 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] Network Admin Email Changed'),
'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 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']);
}