grant_super_admin

The timeline below displays how wordpress function grant_super_admin has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.5

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins']) || !is_multisite()) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins().
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins, true)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 5.4

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins']) || !is_multisite()) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins().
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 4.6

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins']) || !is_multisite()) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 4.3

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins'])) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 4.1

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins'])) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 3.9

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the $super_admins global is defined.
 */
function grant_super_admin($user_id)
{
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($GLOBALS['super_admins'])) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}

WordPress Version: 3.7

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 */
function grant_super_admin($user_id)
{
    global $super_admins;
    // If global super_admins override is defined, there is nothing to do here.
    if (isset($super_admins)) {
        return false;
    }
    /**
     * Fires before the user is granted Super Admin privileges.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
     */
    do_action('grant_super_admin', $user_id);
    // Directly fetch site_admins instead of using get_super_admins()
    $super_admins = get_site_option('site_admins', array('admin'));
    $user = get_userdata($user_id);
    if ($user && !in_array($user->user_login, $super_admins)) {
        $super_admins[] = $user->user_login;
        update_site_option('site_admins', $super_admins);
        /**
         * Fires after the user is granted Super Admin privileges.
         *
         * @since 3.0.0
         *
         * @param int $user_id ID of the user that was granted Super Admin privileges.
         */
        do_action('granted_super_admin', $user_id);
        return true;
    }
    return false;
}