WP_REST_Users_Controller::prepare_item_for_response PHP Method

prepare_item_for_response() public method

Prepares a single user output for response.
Since: 4.7.0
public prepare_item_for_response ( WP_User $user, WP_REST_Request $request ) : WP_REST_Response
$user WP_User User object.
$request WP_REST_Request Request object.
return WP_REST_Response Response object.
    public function prepare_item_for_response($user, $request)
    {
        $data = array();
        $schema = $this->get_item_schema();
        if (!empty($schema['properties']['id'])) {
            $data['id'] = $user->ID;
        }
        if (!empty($schema['properties']['username'])) {
            $data['username'] = $user->user_login;
        }
        if (!empty($schema['properties']['name'])) {
            $data['name'] = $user->display_name;
        }
        if (!empty($schema['properties']['first_name'])) {
            $data['first_name'] = $user->first_name;
        }
        if (!empty($schema['properties']['last_name'])) {
            $data['last_name'] = $user->last_name;
        }
        if (!empty($schema['properties']['email'])) {
            $data['email'] = $user->user_email;
        }
        if (!empty($schema['properties']['url'])) {
            $data['url'] = $user->user_url;
        }
        if (!empty($schema['properties']['description'])) {
            $data['description'] = $user->description;
        }
        if (!empty($schema['properties']['link'])) {
            $data['link'] = get_author_posts_url($user->ID, $user->user_nicename);
        }
        if (!empty($schema['properties']['locale'])) {
            $data['locale'] = get_user_locale($user);
        }
        if (!empty($schema['properties']['nickname'])) {
            $data['nickname'] = $user->nickname;
        }
        if (!empty($schema['properties']['slug'])) {
            $data['slug'] = $user->user_nicename;
        }
        if (!empty($schema['properties']['roles'])) {
            // Defensively call array_values() to ensure an array is returned.
            $data['roles'] = array_values($user->roles);
        }
        if (!empty($schema['properties']['registered_date'])) {
            $data['registered_date'] = date('c', strtotime($user->user_registered));
        }
        if (!empty($schema['properties']['capabilities'])) {
            $data['capabilities'] = (object) $user->allcaps;
        }
        if (!empty($schema['properties']['extra_capabilities'])) {
            $data['extra_capabilities'] = (object) $user->caps;
        }
        if (!empty($schema['properties']['avatar_urls'])) {
            $data['avatar_urls'] = rest_get_avatar_urls($user->user_email);
        }
        if (!empty($schema['properties']['meta'])) {
            $data['meta'] = $this->meta->get_value($user->ID, $request);
        }
        $context = !empty($request['context']) ? $request['context'] : 'embed';
        $data = $this->add_additional_fields_to_object($data, $request);
        $data = $this->filter_response_by_context($data, $context);
        // Wrap the data in a response object.
        $response = rest_ensure_response($data);
        $response->add_links($this->prepare_links($user));
        /**
         * Filters user data returned from the REST API.
         *
         * @since 4.7.0
         *
         * @param WP_REST_Response $response The response object.
         * @param object           $user     User object used to create response.
         * @param WP_REST_Request  $request  Request object.
         */
        return apply_filters('rest_prepare_user', $response, $user, $request);
    }