/**
  * @ticket 24635
  */
 public function test_should_store_raw_data_in_users_bucket_when_passed_a_wp_user_object()
 {
     global $wpdb;
     $u = self::factory()->user->create();
     $raw_userdata = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE ID = %d", $u));
     $user_object = new WP_User($u);
     update_user_caches($user_object);
     $cached = wp_cache_get($u, 'users');
     $this->assertFalse($cached instanceof WP_User);
     $this->assertEquals($raw_userdata, $cached);
 }
Example #2
0
 public function set_current_user()
 {
     if (!is_user_logged_in()) {
         return;
     }
     global $current_user, $user_identity;
     $old = $current_user->display_name;
     $current_user->display_name = $this->get_display_name($current_user->ID, $current_user->display_name);
     $user_identity = $current_user->display_name;
     if ($old != $user_identity) {
         update_user_caches($current_user);
     }
 }
Example #3
0
 public static function forge($user = null, $cache = true)
 {
     global $wpdb;
     empty($user) and $user = get_current_user_id();
     if (!$cache and is_numeric($user)) {
         if (!($user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE ID = %s", $user)))) {
             return false;
         }
         update_user_caches($user);
     }
     if (empty($user)) {
         return false;
     }
     return new static($user);
 }
Example #4
0
/**
 * Unserialize user metadata, fill $user object, then cache everything.
 *
 * @since 3.0.0
 * @param object $user The User object.
 * @param array $metavalues An array of objects provided by get_user_metavalues()
 */
function _fill_single_user(&$user, &$metavalues)
{
    global $wpdb;
    foreach ($metavalues as $meta) {
        $value = maybe_unserialize($meta->meta_value);
        // Keys used as object vars cannot have dashes.
        $key = str_replace('-', '', $meta->meta_key);
        $user->{$key} = $value;
    }
    $level = $wpdb->prefix . 'user_level';
    if (isset($user->{$level})) {
        $user->user_level = $user->{$level};
    }
    // For backwards compat.
    if (isset($user->first_name)) {
        $user->user_firstname = $user->first_name;
    }
    if (isset($user->last_name)) {
        $user->user_lastname = $user->last_name;
    }
    if (isset($user->description)) {
        $user->user_description = $user->description;
    }
    update_user_caches($user);
}
Example #5
0
 /**
  * Retrieve info for user lists to prevent multiple queries by get_userdata()
  *
  * @since 3.0.0
  *
  * @param array $user_ids User ID numbers list
  */
 function cache_users($user_ids)
 {
     global $wpdb;
     $clean = _get_non_cached_ids($user_ids, 'users');
     if (empty($clean)) {
         return;
     }
     $list = implode(',', $clean);
     $users = $wpdb->get_results("SELECT * FROM {$wpdb->users} WHERE ID IN ({$list})");
     $ids = array();
     foreach ($users as $user) {
         update_user_caches($user);
         $ids[] = $user->ID;
     }
     update_meta_cache('user', $ids);
 }
 /**
  * Return only the main user fields
  *
  * @since 3.3.0
  *
  * @param string $field The field to query against: 'id', 'slug', 'email' or 'login'
  * @param string|int $value The field value
  * @return object Raw user object
  */
 static function get_data_by($field, $value)
 {
     global $wpdb;
     if ('id' == $field) {
         // Make sure the value is numeric to avoid casting objects, for example,
         // to int 1.
         if (!is_numeric($value)) {
             return false;
         }
         $value = absint($value);
     } else {
         $value = trim($value);
     }
     if (!$value) {
         return false;
     }
     switch ($field) {
         case 'id':
             $user_id = $value;
             $db_field = 'ID';
             break;
         case 'slug':
             $user_id = wp_cache_get($value, 'userslugs');
             $db_field = 'user_nicename';
             break;
         case 'email':
             $user_id = wp_cache_get($value, 'useremail');
             $db_field = 'user_email';
             break;
         case 'login':
             $value = sanitize_user($value);
             $user_id = wp_cache_get($value, 'userlogins');
             $db_field = 'user_login';
             break;
         default:
             return false;
     }
     if (false !== $user_id) {
         if ($user = wp_cache_get($user_id, 'users')) {
             return $user;
         }
     }
     if (!($user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE {$db_field} = %s", $value)))) {
         return false;
     }
     update_user_caches($user);
     return $user;
 }
Example #7
0
 /**
  * Retrieve info for user lists to prevent multiple queries by get_userdata()
  *
  * @since 3.0.0
  *
  * @param array $user_ids User ID numbers list
  */
 function cache_users($user_ids)
 {
     global $nxtdb;
     $clean = array();
     foreach ($user_ids as $id) {
         $id = (int) $id;
         if (!nxt_cache_get($id, 'users')) {
             $clean[] = $id;
         }
     }
     if (empty($clean)) {
         return;
     }
     $list = implode(',', $clean);
     $users = $nxtdb->get_results("SELECT * FROM {$nxtdb->users} WHERE ID IN ({$list})");
     $ids = array();
     foreach ($users as $user) {
         update_user_caches($user);
         $ids[] = $user->ID;
     }
     update_meta_cache('user', $ids);
 }
	/**
	 * Return only the main user fields
	 *
	 * @since 3.3.0
	 *
	 * @param string $field The field to query against: 'id', 'slug', 'email' or 'login'
	 * @param string|int $value The field value
	 * @return object Raw user object
	 */
	static function get_data_by( $field, $value ) {
		global $wpdb;

		if ( 'id' == $field )
			$value = absint( $value );
		else
			$value = trim( $value );

		if ( !$value )
			return false;

		switch ( $field ) {
			case 'id':
				$user_id = $value;
				$db_field = 'ID';
				break;
			case 'slug':
				$user_id = wp_cache_get($value, 'userslugs');
				$db_field = 'user_nicename';
				break;
			case 'email':
				$user_id = wp_cache_get($value, 'useremail');
				$db_field = 'user_email';
				break;
			case 'login':
				$value = sanitize_user( $value );
				$user_id = wp_cache_get($value, 'userlogins');
				$db_field = 'user_login';
				break;
			default:
				return false;
		}

		if ( false !== $user_id ) {
			if ( $user = wp_cache_get( $user_id, 'users' ) )
				return $user;
		}

		if ( !$user = $wpdb->get_row( $wpdb->prepare(
			"SELECT * FROM $wpdb->users WHERE $db_field = %s", $value
		) ) )
			return false;

		update_user_caches( $user );

		return $user;
	}
Example #9
0
/**
 * Unserialize user metadata, fill $user object, then cache everything.
 *
 * @since 3.0.0
 * @param object $user The User object.
 * @param array $metavalues An array of objects provided by get_user_metavalues()
 */
function _fill_single_user(&$user, &$metavalues)
{
    global $wpdb;
    foreach ($metavalues as $meta) {
        $value = maybe_unserialize($meta->meta_value);
        $user->{$meta->meta_key} = $value;
    }
    $level = $wpdb->prefix . 'user_level';
    if (isset($user->{$level})) {
        $user->user_level = $user->{$level};
    }
    // For backwards compat.
    if (isset($user->first_name)) {
        $user->user_firstname = $user->first_name;
    }
    if (isset($user->last_name)) {
        $user->user_lastname = $user->last_name;
    }
    if (isset($user->description)) {
        $user->user_description = $user->description;
    }
    update_user_caches($user);
}