BP_REST_Group_Membership_Endpoint::prepare_item_for_response( BP_Groups_Member $group_member, WP_REST_Request $request )
Prepares group member data for return as an object.
Description
Parameters
- $group_member
-
(Required) Group member object.
- $request
-
(Required) Full details about the request.
Return
(WP_REST_Response)
Source
File: bp-groups/classes/class-bp-rest-group-membership-endpoint.php
public function prepare_item_for_response( $group_member, $request ) {
$user = bp_rest_get_user( $group_member->user_id );
$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
$member_data = $this->members_endpoint->user_data( $user, $context );
// Merge both info.
$data = array_merge(
$member_data,
array(
'is_mod' => (bool) $group_member->is_mod,
'is_admin' => (bool) $group_member->is_admin,
'is_banned' => (bool) $group_member->is_banned,
'is_confirmed' => (bool) $group_member->is_confirmed,
'date_modified' => bp_rest_prepare_date_response( $group_member->date_modified ),
'role' => '',
'plural_role' => '',
)
);
// BuddyBoss Platform support.
if ( function_exists( 'bp_get_user_group_role_title' ) && ! empty( $request['group_id'] ) ) {
$data['role'] = bp_get_user_group_role_title( $group_member->user_id, $request['group_id'] );
// BuddyPress support.
} elseif ( function_exists( 'bp_groups_get_group_roles' ) && ! empty( $request['group_id'] ) ) {
$group_role = bp_groups_get_group_roles();
if ( groups_is_user_admin( $group_member->user_id, $request['group_id'] ) ) {
$data['role'] = $group_role['admin']->name;
} elseif ( groups_is_user_mod( $group_member->user_id, $request['group_id'] ) ) {
$data['role'] = $group_role['mod']->name;
} elseif ( groups_is_user_member( $group_member->user_id, $request['group_id'] ) ) {
$data['role'] = $group_role['member']->name;
}
}
if ( function_exists( 'get_group_role_label' ) && ! empty( $request['group_id'] ) ) {
$data['plural_role'] = $this->groups_endpoint->bp_get_group_member_section_title( (int) $request['group_id'], (int) $group_member->user_id );
if ( empty( $data['plural_role'] ) ) {
$data['plural_role'] = $data['role'];
}
} else {
$data['plural_role'] = $data['role'];
}
$data = $this->add_additional_fields_to_object( $data, $request );
$data = $this->filter_response_by_context( $data, $context );
$response = rest_ensure_response( $data );
$response->add_links( $this->prepare_links( $user, $request ) );
/**
* Filter a group member value returned from the API.
*
* @param WP_REST_Response $response The response data.
* @param WP_REST_Request $request Request used to generate the response.
* @param BP_Groups_Member $group_member Group member object.
*
* @since 0.1.0
*/
return apply_filters( 'bp_rest_group_members_prepare_value', $response, $request, $group_member );
}
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.