WordPress.org

Make WordPress Core

Ticket #20460: 20460.2.diff

File 20460.2.diff, 2.6 KB (added by duck_, 3 years ago)
  • wp-includes/user.php

     
    11431143 * 
    11441144 * @since 3.0.0 
    11451145 * 
    1146  * @param int $id User ID 
     1146 * @param WP_User $user User object to be cleaned from the cache 
    11471147 */ 
    1148 function clean_user_cache($id) { 
    1149         $user = WP_User::get_data_by( 'id', $id ); 
     1148function clean_user_cache( $user ) { 
     1149        if ( is_numeric( $user ) ) { 
     1150                _deprecated_argument( __FUNCTION__, '3.4', 'Pass the full user object instead of the ID.' ); 
     1151                $user = new WP_User( $user ); 
     1152        } 
    11501153 
    1151         wp_cache_delete($id, 'users'); 
    1152         wp_cache_delete($user->user_login, 'userlogins'); 
    1153         wp_cache_delete($user->user_email, 'useremail'); 
    1154         wp_cache_delete($user->user_nicename, 'userslugs'); 
     1154        if ( ! $user->exists() ) 
     1155                return; 
     1156 
     1157        wp_cache_delete( $user->ID, 'users' ); 
     1158        wp_cache_delete( $user->user_login, 'userlogins' ); 
     1159        wp_cache_delete( $user->user_email, 'useremail' ); 
     1160        wp_cache_delete( $user->user_nicename, 'userslugs' ); 
    11551161} 
    11561162 
    11571163/** 
  • wp-admin/includes/user.php

     
    237237        global $wpdb; 
    238238 
    239239        $id = (int) $id; 
     240        $user = new WP_User( $id ); 
    240241 
    241242        // allow for transaction statement 
    242243        do_action('delete_user', $id); 
     
    262263                $wpdb->update( $wpdb->links, array('link_owner' => $reassign), array('link_owner' => $id) ); 
    263264        } 
    264265 
    265         clean_user_cache($id); 
     266        clean_user_cache( $user ); 
    266267 
    267268        // FINALLY, delete user 
    268269        if ( !is_multisite() ) { 
  • wp-admin/includes/ms.php

     
    132132        global $wpdb; 
    133133 
    134134        $id = (int) $id; 
     135        $user = new WP_User( $id ); 
    135136 
    136137        do_action( 'wpmu_delete_user', $id ); 
    137138 
     
    162163        $wpdb->delete( $wpdb->users, array( 'ID' => $id ) ); 
    163164        $wpdb->delete( $wpdb->usermeta, array( 'user_id' => $id ) ); 
    164165 
    165         clean_user_cache( $id ); 
     166        clean_user_cache( $user ); 
    166167 
    167168        // allow for commit transaction 
    168169        do_action( 'deleted_user', $id ); 
     
    389390 
    390391        $wpdb->update( $wpdb->users, array( $pref => $value ), array( 'ID' => $id ) ); 
    391392 
    392         clean_user_cache( $id ); 
     393        $user = new WP_User( $id ); 
     394        clean_user_cache( $user ); 
    393395 
    394396        if ( $pref == 'spam' ) { 
    395397                if ( $value == 1 ) 
     
    407409        if ( !$user = get_userdata( $id ) ) 
    408410                return false; 
    409411 
    410         clean_user_cache( $id ); 
     412        clean_user_cache( $user ); 
    411413 
    412414        return $id; 
    413415}