The grant_super_admin WordPress PHP action fires before a user is granted Super Admin privileges.
Super admins have the ability to manage all aspects of a WordPress site, including network administration for multisite installations.
Usage
add_action('grant_super_admin', 'your_custom_function', 10, 1);
function your_custom_function($user_id) {
// Your custom code here
}
Parameters
$user_id(int) – ID of the user that is about to be granted Super Admin privileges.
More information
See WordPress Developer Resources: grant_super_admin
Examples
Send a welcome email to new Super Admins
Sends a welcome email to the user when they are granted Super Admin privileges.
add_action('grant_super_admin', 'send_welcome_email', 10, 1);
function send_welcome_email($user_id) {
$user_info = get_userdata($user_id);
$email = $user_info->user_email;
$subject = 'Welcome to Super Admin!';
$message = 'Hi ' . $user_info->display_name . ', you have been granted Super Admin privileges. Welcome to the team!';
wp_mail($email, $subject, $message);
}
Log Super Admin promotions
Logs when a user is granted Super Admin privileges to a custom log file.
add_action('grant_super_admin', 'log_super_admin_promotion', 10, 1);
function log_super_admin_promotion($user_id) {
$user_info = get_userdata($user_id);
$log_message = 'User ' . $user_info->display_name . ' (' . $user_id . ') was granted Super Admin privileges.';
error_log($log_message, 3, '/path/to/your/custom_log.log');
}
Add a custom role to new Super Admins
Automatically adds a custom role to users when they are granted Super Admin privileges.
add_action('grant_super_admin', 'add_custom_role', 10, 1);
function add_custom_role($user_id) {
$user = new WP_User($user_id);
$user->add_role('custom_role');
}
Notify site administrators of new Super Admins
Sends an email notification to all site administrators when a new user is granted Super Admin privileges.
add_action('grant_super_admin', 'notify_admins_new_super_admin', 10, 1);
function notify_admins_new_super_admin($user_id) {
$user_info = get_userdata($user_id);
$subject = 'New Super Admin: ' . $user_info->display_name;
$message = 'User ' . $user_info->display_name . ' (' . $user_id . ') has been granted Super Admin privileges.';
$admins = get_users(['role' => 'administrator']);
foreach ($admins as $admin) {
wp_mail($admin->user_email, $subject, $message);
}
}
Restrict Super Admin privileges to specific user IDs
Prevents users with certain IDs from being granted Super Admin privileges.
add_action('grant_super_admin', 'restrict_super_admin', 10, 1);
function restrict_super_admin($user_id) {
$restricted_ids = [1, 5, 10];
if (in_array($user_id, $restricted_ids)) {
wp_die('This user cannot be granted Super Admin privileges.');
}
}