clean_user_cache

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

WordPress Version: 6.3

/**
 * Cleans all user caches.
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 * @since 6.2.0 User metadata caches are now cleared.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_nicename, 'userslugs');
    if (!empty($user->user_email)) {
        wp_cache_delete($user->user_email, 'useremail');
    }
    wp_cache_delete($user->ID, 'user_meta');
    wp_cache_set_users_last_changed();
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 6.2

/**
 * Cleans all user caches.
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 * @since 6.2.0 User metadata caches are now cleared.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_nicename, 'userslugs');
    if (!empty($user->user_email)) {
        wp_cache_delete($user->user_email, 'useremail');
    }
    wp_cache_delete($user->ID, 'user_meta');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 6.1

/**
 * Cleans all user caches.
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_nicename, 'userslugs');
    if (!empty($user->user_email)) {
        wp_cache_delete($user->user_email, 'useremail');
    }
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 9.5

/**
 * Clean all user caches
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 5.9

/**
 * Clean all user caches
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 * @since 5.8.0 Refreshes the global user instance if cleaning the user cache for the current user.
 *
 * @global WP_User $current_user The current user object which holds the user data.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    global $current_user;
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
    // Refresh the global user instance if the cleaning current user.
    if (get_current_user_id() === (int) $user->ID) {
        $user_id = (int) $user->ID;
        $current_user = null;
        wp_set_current_user($user_id, '');
    }
}

WordPress Version: 8.6

/**
 * Clean all user caches
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 5.8

/**
 * Clean all user caches
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 * @since 5.8.0 Refreshes the global user instance if cleaning the user cache for the current user.
 *
 * @global WP_User $current_user The current user object which holds the user data.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    global $current_user;
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
    // Refresh the global user instance if the cleaning current user.
    if (get_current_user_id() === (int) $user->ID) {
        $user_id = (int) $user->ID;
        $current_user = null;
        wp_set_current_user($user_id, '');
    }
}

WordPress Version: 4.4

/**
 * Clean all user caches
 *
 * @since 3.0.0
 * @since 4.4.0 'clean_user_cache' action was added.
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
    /**
     * Fires immediately after the given user's cache is cleaned.
     *
     * @since 4.4.0
     *
     * @param int     $user_id User ID.
     * @param WP_User $user    User object.
     */
    do_action('clean_user_cache', $user->ID, $user);
}

WordPress Version: 3.7

/**
 * Clean all user caches
 *
 * @since 3.0.0
 *
 * @param WP_User|int $user User object or ID to be cleaned from the cache
 */
function clean_user_cache($user)
{
    if (is_numeric($user)) {
        $user = new WP_User($user);
    }
    if (!$user->exists()) {
        return;
    }
    wp_cache_delete($user->ID, 'users');
    wp_cache_delete($user->user_login, 'userlogins');
    wp_cache_delete($user->user_email, 'useremail');
    wp_cache_delete($user->user_nicename, 'userslugs');
}