WordPress.org

Make WordPress Core

Ticket #20460: 20460.diff

File 20460.diff, 2.6 KB (added by duck_, 6 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 = WP_User::get_data_by( 'id', $id );
     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}