Skip to Content
Menu

get_user_info()

Conveniently get user metadata in a single function.

PHP February 10, 2018

Usage

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

Parameters

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

$options
(Optional) (Array)
Default: None

Parameter Notes

$options include:

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

Request or provide clarification »

Examples

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

PHP
echo 'https://gearside.com/' . 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.

Was this page helpful? Yes No


    A feedback message is required to submit this form.


    Please check that you have entered a valid email address.

    Enter your email address if you would like a response.

    Thank you for your feedback!

    Source File

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

    No Hooks

    This function does not have any filters or actions available. Request one?
    PHP
            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'];
            }
    

    Override

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