public function fetch()
{
// Get userdata (this is a WP_User object in WP 3.3+)
$user = get_userdata($this->id);
if ($user->data) {
$userdata = (array) $user->data;
} else {
$userdata = (array) $user;
}
// Fetch all user meta, flatten the returned array
$usermeta = array_map(function ($x) {
return $x[0];
}, get_user_meta($this->id));
// Set value for each user meta key not in userdata
foreach ($usermeta as $k => $v) {
if (!in_array($k, array_keys($userdata))) {
$userdata[$k] = maybe_unserialize($v);
}
}
$this->reload($userdata);
}