/** * Delete a pending group membership request. * * @param int $membership_id ID of the membership object. * @param int $user_id Optional. ID of the user who requested membership. * Provide this value along with $group_id to override * $membership_id. * @param int $group_id Optional. ID of the group to which membership is being * requested. Provide this value along with $user_id to * override $membership_id. * * @return bool True on success, false on failure. */ function groups_delete_membership_request($membership_id, $user_id = 0, $group_id = 0) { if (!empty($user_id) && !empty($group_id)) { $membership = new BP_Groups_Member($user_id, $group_id); } else { $membership = new BP_Groups_Member(false, false, $membership_id); } if (!BP_Groups_Member::delete_request($membership->user_id, $membership->group_id)) { return false; } return $membership; }
function groups_accept_invite($user_id, $group_id) { global $bp; if (groups_is_user_member($user_id, $group_id)) { return false; } $member = new BP_Groups_Member($user_id, $group_id); $member->accept_invite(); if (!$member->save()) { return false; } // Remove request to join if ($member->check_for_membership_request($user_id, $group_id)) { $member->delete_request($user_id, $group_id); } // Modify group meta groups_update_groupmeta($group_id, 'total_member_count', (int) groups_get_groupmeta($group_id, 'total_member_count') + 1); groups_update_groupmeta($group_id, 'last_activity', bp_core_current_time()); bp_core_delete_notifications_by_item_id($user_id, $group_id, $bp->groups->id, 'group_invite'); do_action('groups_accept_invite', $user_id, $group_id); return true; }
/** * Process the acceptance of a group invitation. * * Returns true if a user is already a member of the group. * * @param int $user_id * @param int $group_id * @return bool True when the user is a member of the group, otherwise false */ function groups_accept_invite($user_id, $group_id) { global $bp; // If the user is already a member (because BP at one point allowed two invitations to // slip through), delete all existing invitations/requests and return true if (groups_is_user_member($user_id, $group_id)) { if (groups_check_user_has_invite($user_id, $group_id)) { groups_delete_invite($user_id, $group_id); } if (groups_check_for_membership_request($user_id, $group_id)) { groups_delete_membership_request($user_id, $group_id); } return true; } $member = new BP_Groups_Member($user_id, $group_id); $member->accept_invite(); if (!$member->save()) { return false; } // Remove request to join if ($member->check_for_membership_request($user_id, $group_id)) { $member->delete_request($user_id, $group_id); } // Modify group meta groups_update_groupmeta($group_id, 'last_activity', bp_core_current_time()); bp_core_delete_notifications_by_item_id($user_id, $group_id, $bp->groups->id, 'group_invite'); do_action('groups_accept_invite', $user_id, $group_id); return true; }
function groups_accept_invite( $user_id, $group_id ) { global $bp; if ( groups_is_user_member( $user_id, $group_id ) ) return false; $member = new BP_Groups_Member( $user_id, $group_id ); $member->accept_invite(); if ( !$member->save() ) return false; /* Remove request to join */ if ( $member->check_for_membership_request( $user_id, $group_id ) ) $member->delete_request( $user_id, $group_id ); /* Modify group meta */ groups_update_groupmeta( $group_id, 'total_member_count', (int) groups_get_groupmeta( $group_id, 'total_member_count') + 1 ); groups_update_groupmeta( $group_id, 'last_activity', gmdate( "Y-m-d H:i:s" ) ); bp_core_delete_notifications_for_user_by_item_id( $user_id, $group_id, $bp->groups->id, 'group_invite' ); do_action( 'groups_accept_invite', $user_id, $group_id ); return true; }