Make WordPress Core


Ignore:
Timestamp:
04/24/2012 10:13:47 PM (14 years ago)
Author:
ryan
Message:
  • Return empty arrays instead of false for all conditions in get_blogs_of_user().
  • When deleting a user, use a delete_metadata_by_mid() loop over the meta so that the meta cache is cleared.
  • Use remove_user_from_blog() for DRYness.

Props nacin, duck_
Fixes #19500

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/user.php

    r20523 r20581  
    265265
    266266        // FINALLY, delete user
    267         if ( !is_multisite() ) {
    268                 $wpdb->delete( $wpdb->usermeta, array( 'user_id' => $id ) );
     267        if ( is_multisite() ) {
     268                remove_user_from_blog( $id, get_current_blog_id() );
     269        } else {
     270                $meta = $wpdb->get_col( $wpdb->prepare( "SELECT umeta_id FROM $wpdb->usermeta WHERE user_id = %d", $id ) );
     271                foreach ( $meta as $mid )
     272                        delete_metadata_by_mid( 'user', $mid );
     273
    269274                $wpdb->delete( $wpdb->users, array( 'ID' => $id ) );
    270         } else {
    271                 $level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels
    272                 $wpdb->delete( $wpdb->usermeta, array( 'user_id' => $id , 'meta_key' => $level_key ) );
    273275        }
    274276
Note: See TracChangeset for help on using the changeset viewer.