revoke_super_admin

The timeline below displays how wordpress function revoke_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

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        $key = array_search($user->user_login, $super_admins, true);
        if (false !== $key) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 5.4

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        $key = array_search($user->user_login, $super_admins);
        if (false !== $key) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 5.3

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        $key = array_search($user->user_login, $super_admins);
        if (false !== $key) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 4.6

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 4.3

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 4.1

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 3.9

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the $super_admins global is defined.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 3.8

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && 0 !== strcasecmp($user->user_email, get_site_option('admin_email'))) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}

WordPress Version: 3.7

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 */
function revoke_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's Super Admin privileges are revoked.
     *
     * @since 3.0.0
     *
     * @param int $user_id ID of the user Super Admin privileges are being revoked from.
     */
    do_action('revoke_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 && $user->user_email != get_site_option('admin_email')) {
        if (false !== $key = array_search($user->user_login, $super_admins)) {
            unset($super_admins[$key]);
            update_site_option('site_admins', $super_admins);
            /**
             * Fires after the user's Super Admin privileges are revoked.
             *
             * @since 3.0.0
             *
             * @param int $user_id ID of the user Super Admin privileges were revoked from.
             */
            do_action('revoked_super_admin', $user_id);
            return true;
        }
    }
    return false;
}