BP_REST_Notifications_Endpoint::bp_rest_get_notification_actions( BP_Notifications_Notification $notification )
Action to perform.
Description
Parameters
- $notification
-
(Required) A notification object.
Return
(array|string)
Source
File: bp-notifications/classes/class-bp-rest-notifications-endpoint.php
public function bp_rest_get_notification_actions( $notification ) { $component_action = $notification->component_action; $data = array( 'status' => '', 'accept' => array(), 'reject' => array(), ); switch ( $component_action ) { case 'friendship_accepted': case 'membership_request_accepted': case 'membership_request_rejected': case 'member_promoted_to_admin': case 'member_promoted_to_mod': break; case 'friendship_request': if ( ! empty( $notification->secondary_item_id ) && bp_is_active( 'friends' ) && class_exists( 'BP_Friends_Friendship' ) ) { $friendship = new BP_Friends_Friendship( $notification->secondary_item_id ); if ( $friendship->id === $notification->secondary_item_id ) { if ( ! empty( $friendship->is_confirmed ) ) { $data['status'] = __( 'Accepted', 'buddyboss' ); } else { $data['status'] = __( 'Pending', 'buddyboss' ); $data['accept']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->friends->id . '/' . $friendship->id ); $data['accept']['method'] = 'PATCH'; $data['accept']['link_url'] = bp_loggedin_user_domain() . bp_get_friends_slug(); $data['reject']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->friends->id . '/' . $friendship->id ); $data['reject']['method'] = 'DELETE'; $data['reject']['link_url'] = bp_loggedin_user_domain() . bp_get_friends_slug(); } } else { $data['status'] = __( 'Rejected', 'buddyboss' ); } } break; case 'new_membership_request': if ( ! empty( $notification->secondary_item_id ) && bp_is_active( 'groups' ) && function_exists( 'groups_get_requests' ) ) { $group = groups_get_group( $notification->item_id ); $is_member = groups_is_user_member( $notification->secondary_item_id, $notification->item_id ); if ( ! empty( $is_member ) ) { $data['status'] = __( 'Accepted', 'buddyboss' ); } else { $requests = groups_get_requests( array( 'user_id' => $notification->secondary_item_id, 'item_id' => $notification->item_id, ) ); if ( ! empty( $requests ) ) { $current_request = current( $requests ); if ( ! empty( $current_request->accepted ) ) { $data['status'] = __( 'Accepted', 'buddyboss' ); } else { $data['status'] = __( 'Pending', 'buddyboss' ); $data['accept']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->groups->id . '/membership-requests/' . $current_request->id ); $data['accept']['method'] = 'PATCH'; $data['accept']['link_url'] = trailingslashit( bp_get_group_permalink( $group ) . 'members' ); $data['reject']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->groups->id . '/membership-requests/' . $current_request->id ); $data['reject']['method'] = 'DELETE'; $data['reject']['link_url'] = trailingslashit( bp_get_group_permalink( $group ) . 'members' ); } } else { $data['status'] = __( 'Rejected', 'buddyboss' ); } } } break; case 'group_invite': if ( bp_is_active( 'groups' ) && function_exists( 'groups_get_invites' ) ) { $group = groups_get_group( $notification->item_id ); $is_member = groups_is_user_member( $notification->user_id, $notification->item_id ); if ( ! empty( $is_member ) ) { $data['status'] = __( 'Accepted', 'buddyboss' ); } else { $invites = groups_get_invites( array( 'user_id' => $notification->user_id, 'item_id' => $notification->item_id, ) ); if ( ! empty( $invites ) ) { $current_invites = current( $invites ); if ( ! empty( $current_invites->accepted ) ) { $data['status'] = __( 'Accepted', 'buddyboss' ); } else { $data['status'] = __( 'Pending', 'buddyboss' ); $data['accept']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->groups->id . '/invites/' . $current_invites->id ); $data['accept']['method'] = 'PATCH'; $data['accept']['link_url'] = bp_get_group_permalink( $group ); $data['reject']['endpoint'] = rest_url( $this->namespace . '/' . buddypress()->groups->id . '/invites/' . $current_invites->id ); $data['reject']['method'] = 'DELETE'; $data['reject']['link_url'] = bp_get_group_permalink( $group ); } } else { $data['status'] = __( 'Rejected', 'buddyboss' ); } } } break; } if ( array( 'status' => '', 'accept' => array(), 'reject' => array(), ) === $data ) { return ''; } return $data; }
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.