Make WordPress Core


Ignore:
Timestamp:
07/12/2005 03:53:13 PM (20 years ago)
Author:
ryan
Message:

Roles update + UI from Owen.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/pluggable-functions.php

    r2703 r2704  
    3232    if ( $user_id == 0 )
    3333        return false;
    34        
     34
    3535    if ( isset( $cache_userdata[$user_id] ) )
    3636        return $cache_userdata[$user_id];
     
    5353
    5454    $cache_userdata[$user_id] = $user;
    55 
    5655    $cache_userdata[$cache_userdata[$userid]->user_login] =& $cache_userdata[$user_id];
    5756
    5857    return $cache_userdata[$user_id];
     58}
     59endif;
     60
     61if ( !function_exists('update_user_cache') ) :
     62function update_user_cache() {
     63    global $cache_userdata, $wpdb;
     64    $level_key = $wpdb->prefix . 'user_level';
     65    $user_ids = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'");
     66    $user_ids = join(',', $user_ids);
     67    $query = apply_filters('user_cache_query', "SELECT * FROM $wpdb->users WHERE ID IN ($user_ids)");
     68    if ( $users = $wpdb->get_results( $query ) ) :
     69        foreach ($users as $user) :
     70            $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
     71            foreach ( $metavalues as $meta ) {
     72                @ $value = unserialize($meta->meta_value);
     73                if ($value === FALSE)
     74                    $value = $meta->meta_value;
     75                $user->{$meta->meta_key} = $value;
     76                // We need to set user_level from meta, not row
     77                if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
     78                    $user->user_level = $meta->meta_value;
     79            }
     80
     81            $cache_userdata[$user->ID] = $user;
     82            $cache_userdata[$user->user_login] =& $cache_userdata[$user->ID];
     83        endforeach;
     84        return true;
     85    else :
     86        return false;
     87    endif;
    5988}
    6089endif;
Note: See TracChangeset for help on using the changeset viewer.