Get Email Notifications When a New Admin Is Added in WordPress (Easy Guide)

Hey friends! 👋

If you’re managing a WordPress site and care even a little bit about security, this one’s for you.

🔒 Why You Should Care About New Admin Users

In WordPress, users with the Administrator role have full control — they can install plugins, edit themes, delete content, change settings, and even remove other admins. 😳

So imagine someone adds a new admin without you knowing. That’s a big security risk.

✅ What We’re Going to Do

We’ll write a simple code snippet that sends an email notification every time:

  • A new user is registered as an Administrator

  • An existing user’s role is changed to Administrator

This is perfect for WordPress site owners, web developers, security-conscious admins, or even agencies managing client websites.

📜 Code to Send Email Alerts When a New Admin Is Added

Just copy this code and paste it into your theme’s functions.php file or create a mini plugin:

// Notify when a new admin is registered
function notify_on_new_admin_registration($user_id) {
$user = get_userdata($user_id);
if (in_array('administrator', (array) $user->roles)) {
send_admin_alert_email($user);
}
}
add_action('user_register', 'notify_on_new_admin_registration');

// Notify when an existing user's role is changed to admin
function notify_on_admin_role_change($user_id, $old_user_data) {
$user = get_userdata($user_id);
$old_roles = (array) $old_user_data->roles;
$new_roles = (array) $user->roles;

// If user wasn't an admin before, but now is
if (!in_array('administrator', $old_roles) && in_array('administrator', $new_roles)) {
send_admin_alert_email($user);
}
}
add_action('profile_update', 'notify_on_admin_role_change', 10, 2);

// Shared function to send email
function send_admin_alert_email($user) {
$to = 'test1@gmail.com, test2@gmail.com, test3@gmail.com';
$subject = 'Administrator Role Assigned';
$message = "A user has been assigned the Administrator role:\n\n";
$message .= "Username: " . $user->user_login . "\n";
$message .= "Email: " . $user->user_email . "\n";
$message .= "Updated: " . current_time('mysql');

wp_mail($to, $subject, $message);
}

 

📨 Who Gets the Email Notification?

Right now, the email goes to:

You can easily change or add more recipients — just edit the $to variable in the code.

 

⚠️ Bonus Tip: Make Sure WordPress Can Send Emails

Sometimes WordPress email notifications don’t work because your server blocks them or your emails land in spam. To fix this, I highly recommend using the WP Mail SMTP plugin. It connects your WordPress site to Gmail, Outlook, or any SMTP provider so emails send reliably.


🚀 Final Thoughts

This is a simple but powerful trick to keep your WordPress site secure. You’ll always know when a new admin is added — either during registration or by someone editing a user.

No more surprises. No more silent admin access.

Let me know if you want me to turn this into a small plugin for your site. Happy coding! 👨‍💻✨