BP_Groups_Invitation_Manager::run_acceptance_action( string $type = 'invite', array $r )

This is where custom actions are added to run when an invitation or request is accepted.

Description

Parameters

$type

(Optional) Are we accepting an invitation or request?

Default value: 'invite'

$r

(Required) Parameters that describe the invitation being accepted.

Return

(bool) True on success, false on failure.

Source

File: bp-groups/classes/class-bp-groups-invitation-manager.php

70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
public function run_acceptance_action( $type = 'invite', $r  ) {
    // If the user is already a member (because BP at one point allowed two invitations to
    // slip through), return early.
    if ( groups_is_user_member( $r['user_id'], $r['item_id'] ) ) {
        return true;
    }
 
    // Create the new membership
    $member = new BP_Groups_Member( $r['user_id'], $r['item_id'] );
 
    if ( 'request' === $type ) {
        $member->accept_request();
    } else {
        $member->accept_invite();
    }
 
    if ( ! $member->save() ) {
        return false;
    }
 
    if ( 'request' === $type ) {
        /**
         * Fires after a group membership request has been accepted.
         *
         * @since BuddyPress 1.0.0
         *
         * @param int  $user_id  ID of the user who accepted membership.
         * @param int  $group_id ID of the group that was accepted membership to.
         * @param bool $value    If membership was accepted.
         */
        do_action( 'groups_membership_accepted', $r['user_id'], $r['item_id'], true );
    } else {
        // Get an inviter_id from the invitation.
        $invites = groups_get_invites( $r );
        $inviter_id = 0;
        if ( $invites ) {
            $inviter_id = current( $invites )->inviter_id;
        }
 
        /**
         * Fires after a user has accepted a group invite.
         *
         * @since BuddyPress 1.0.0
         * @since BuddyPress 2.8.0 The $inviter_id arg was added.
         *
         * @param int $user_id    ID of the user who accepted the group invite.
         * @param int $group_id   ID of the group being accepted to.
         * @param int $inviter_id ID of the user who invited this user to the group.
         */
        do_action( 'groups_accept_invite', $r['user_id'], $r['item_id'], $inviter_id );
    }
 
    // Modify group meta.
    groups_update_groupmeta( $r['item_id'], 'last_activity', bp_core_current_time() );
 
    return true;
}

Changelog

Changelog
Version Description
BuddyBoss 1.3.5 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.