BP_REST_Members_Endpoint::user_data( WP_User $user, string $context = 'view' )
Method to facilitate fetching of user data.
Description
This was abstracted to be used in other BuddyPress endpoints.
Parameters
- $user
-
(Required) User object.
- $context
-
(Optional) The context of the request. Defaults to 'view'.
Default value: 'view'
Return
(array)
Source
File: bp-members/classes/class-bp-rest-members-endpoint.php
public function user_data( $user, $context = 'view' ) { $data = array( 'id' => $user->ID, 'name' => $user->display_name, 'user_login' => $user->user_login, 'link' => bp_core_get_user_domain( $user->ID, $user->user_nicename, $user->user_login ), 'member_types' => bp_get_member_type( $user->ID, false ), 'roles' => array(), 'capabilities' => array(), 'extra_capabilities' => array(), 'registered_date' => bp_rest_prepare_date_response( get_userdata( $user->ID )->user_registered ), 'profile_name' => bp_core_get_user_displayname( $user->ID ), 'last_activity' => $this->bp_rest_get_member_last_active( $user->ID, array( 'relative' => false ) ), 'xprofile' => $this->xprofile_data( $user->ID ), 'followers' => count( $this->rest_bp_get_follower_ids( array( 'user_id' => $user->ID ) ) ), 'following' => count( $this->rest_bp_get_following_ids( array( 'user_id' => $user->ID ) ) ), ); $data['friendship_status'] = ( ( bp_is_active( 'friends' ) && function_exists( 'friends_check_friendship_status' ) ) ? friends_check_friendship_status( get_current_user_id(), $user->ID ) : '' ); $data['friendship_id'] = ( ( bp_is_active( 'friends' ) && function_exists( 'friends_get_friendship_id' ) ) ? friends_get_friendship_id( get_current_user_id(), $user->ID ) : '' ); $data['is_following'] = (bool) ( function_exists( 'bp_is_following' ) ? bp_is_following( array( 'leader_id' => $user->ID, 'follower_id' => get_current_user_id(), ) ) : '0' ); if ( 'edit' === $context ) { $data['registered_date'] = bp_rest_prepare_date_response( $user->data->user_registered ); $data['roles'] = (array) array_values( $user->roles ); $data['capabilities'] = (array) array_keys( $user->allcaps ); $data['extra_capabilities'] = (array) array_keys( $user->caps ); } // The name used for that user in @-mentions. if ( bp_is_active( 'activity' ) ) { $data['mention_name'] = bp_activity_get_user_mentionname( $user->ID ); } // Get item schema. $schema = $this->get_item_schema(); // Avatars. if ( ! empty( $schema['properties']['avatar_urls'] ) ) { $data['avatar_urls'] = array( 'full' => bp_core_fetch_avatar( array( 'item_id' => $user->ID, 'html' => false, 'type' => 'full', ) ), 'thumb' => bp_core_fetch_avatar( array( 'item_id' => $user->ID, 'html' => false, ) ), ); } // Cover Image. $data['cover_url'] = ( empty( bp_disable_cover_image_uploads() ) ? bp_attachments_get_attachment( 'url', array( 'object_dir' => 'members', 'item_id' => $user->ID, ) ) : false ); // Fallback. if ( false === $data['member_types'] ) { $data['member_types'] = array(); } if ( function_exists( 'bp_member_type_enable_disable' ) && bp_member_type_enable_disable() === false ) { $data['member_types'] = array(); } if ( ! empty( $data['member_types'] ) ) { $member_types = array(); foreach ( $data['member_types'] as $name ) { $member_types[ $name ] = bp_get_member_type_object( $name ); } $data['member_types'] = $member_types; } return $data; }
Changelog
Version | Description |
---|---|
0.1.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.