Skip to Content


Conveniently get user metadata in a single function.

PHP February 10, 2018


nebula()->get_user_info($datapoint, $options)


(Optional) (String) The user meta name to retrieve
Default: None

(Optional) (Array)
Default: None

Parameter Notes

$options include:

  • ‘id’ (default: get_current_user_id())
  • ‘prepend’
  • ‘append’

Request or provide clarification »


Append the user's email address in a query string if available

echo '' . nebula()->get_user_info('user_email', array('prepend' => '&nv-email='))

Additional Notes

If a specific datapoint is not passed, the entire userdata object is returned. If the datapoint is not available it returns false.

Source File

Located in /libs/Functions.php on line 2204.

No Hooks

This function does not have any filters or actions available. Request one?
        public function get_user_info($datapoint, $options=array()){
            $defaults = array(
                'id' => get_current_user_id(),
                'datapoint' => $datapoint,
                'fresh' => false,
                'prepend' => '',
                'append' => '',
                'fallback' => false,

            $data = array_merge($defaults, $options);

            if ( empty($data['id']) ){ //If there is no user or current user is not logged in
                return $data['fallback'];

            //Get from object cache unless specifically requested fresh data
            if ( !$data['fresh'] ){
                $userdata = wp_cache_get('nebula_user_info', 'user-id-' . $data['id']);
            if ( empty($userdata) ){
                $userdata = get_userdata($data['id']);
                wp_cache_set('nebula_user_info', $userdata, 'user-id-' . $data['id']); //Store in object cache

            if ( !empty($data['datapoint']) ){
                $requested_data = $data['datapoint'];

                if ( !empty($userdata->$requested_data) ){
                    return $data['prepend'] . $userdata->$requested_data . $data['append'];
                } else {
                    return $data['fallback'];

            if ( !empty($userdata) ){
                return $userdata;

            return $data['fallback'];


This function can not be short-circuited with an override filter. Request one?