groups_notification_group_invites( BP_Groups_Group $group, BP_Groups_Member $member, int $inviter_user_id )
Notify a member they have been invited to a group.
Description
Parameters
- $group
-
(Required) Group object.
- $member
-
(Required) Member object.
- $inviter_user_id
-
(Required) ID of the user who sent the invite.
Source
File: bp-groups/bp-groups-notifications.php
function groups_notification_group_invites( &$group, &$member, $inviter_user_id ) {
// Bail if member has already been invited.
if ( ! empty( $member->invite_sent ) ) {
return;
}
// @todo $inviter_ud may be used for caching, test without it
$inviter_ud = bp_core_get_core_userdata( $inviter_user_id );
$invited_user_id = $member->user_id;
// Trigger a BuddyPress Notification.
if ( bp_is_active( 'notifications' ) ) {
bp_notifications_add_notification( array(
'user_id' => $invited_user_id,
'item_id' => $group->id,
'component_name' => buddypress()->groups->id,
'component_action' => 'group_invite',
) );
}
// Bail if member opted out of receiving this email.
if ( 'no' === bp_get_user_meta( $invited_user_id, 'notification_groups_invite', true ) ) {
return;
}
$invited_link = bp_core_get_user_domain( $invited_user_id ) . bp_get_groups_slug();
$unsubscribe_args = array(
'user_id' => $invited_user_id,
'notification_type' => 'groups-invitation',
);
$args = array(
'tokens' => array(
'group' => $group,
'group.url' => bp_get_group_permalink( $group ),
'group.name' => $group->name,
'inviter.name' => bp_core_get_userlink( $inviter_user_id, true, false, true ),
'inviter.url' => bp_core_get_user_domain( $inviter_user_id ),
'inviter.id' => $inviter_user_id,
'invites.url' => esc_url( $invited_link . '/invites/' ),
'invites.message' => bp_groups_get_invite_messsage_for_user( $invited_user_id, $group->id ),
'unsubscribe' => esc_url( bp_email_get_unsubscribe_link( $unsubscribe_args ) ),
),
);
bp_send_email( 'groups-invitation', (int) $invited_user_id, $args );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.0.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.