Make WordPress Core


Ignore:
Timestamp:
04/24/2012 10:13:47 PM (13 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.