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.