BP_REST_Notifications_Endpoint::bp_rest_link_url_update( string $url, BP_Notifications_Notification $notification )
Update Link URL after request accept/reject.
Description
Parameters
- $url
-
(Required) Link URL for the notification.
- $notification
-
(Required) A notification object.
Return
(string)
Source
File: bp-notifications/classes/class-bp-rest-notifications-endpoint.php
public function bp_rest_link_url_update( $url, $notification ) {
$component_action = $notification->component_action;
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 ) ) {
$url = bp_loggedin_user_domain() . bp_get_friends_slug();
}
} else {
$url = bp_loggedin_user_domain() . bp_get_friends_slug();
}
}
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 ) ) {
$url = trailingslashit( bp_get_group_permalink( $group ) . 'members' );
} else {
$requests = groups_get_requests(
array(
'user_id' => $notification->secondary_item_id,
'item_id' => $notification->item_id,
)
);
if ( empty( $requests ) ) {
$url = trailingslashit( bp_get_group_permalink( $group ) . 'members' );
}
}
}
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 ) ) {
$url = bp_get_group_permalink( $group );
} else {
$invites = groups_get_invites(
array(
'user_id' => $notification->user_id,
'item_id' => $notification->item_id,
)
);
if ( empty( $invites ) ) {
$url = bp_get_group_permalink( $group );
}
}
}
break;
}
return $url;
}
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.