function delete()
 {
     global $wpdb, $bp;
     // Delete groupmeta for the group
     groups_delete_groupmeta($this->id);
     // Modify group count usermeta for members
     for ($i = 0; $i < count($this->user_dataset); $i++) {
         $user = $this->user_dataset[$i];
         $total_count = get_usermeta($user->user_id, 'total_group_count');
         if ($total_count != '') {
             update_usermeta($user->user_id, 'total_group_count', (int) $total_count - 1);
         }
         // Now delete the group member record
         BP_Groups_Member::delete($user->user_id, $this->id, false);
     }
     // Delete the wire posts for this group if the wire is installed
     if (function_exists('bp_wire_install')) {
         BP_Wire_Post::delete_all_for_item($this->id, $bp->groups->table_name_wire);
     }
     // Finally remove the group entry from the DB
     if (!$wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name} WHERE id = %d", $this->id))) {
         return false;
     }
     return true;
 }
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($membership->user_id, $membership->group_id)) {
        return false;
    }
    return $membership;
}
Example #3
0
function groups_reject_membership_request($membership_id)
{
    /* Check the nonce first. */
    if (!check_admin_referer('groups_reject_membership_request')) {
        return false;
    }
    $membership = new BP_Groups_Member(false, false, $membership_id);
    if (!BP_Groups_Member::delete($membership->user_id, $membership->group_id)) {
        return false;
    }
    // Send a notification to the user.
    require_once BP_PLUGIN_DIR . '/bp-groups/bp-groups-notifications.php';
    groups_notification_membership_request_completed($membership->user_id, $membership->group_id, false);
    do_action('groups_membership_rejected', $membership->user_id, $membership->group_id);
    return true;
}
Example #4
0
function groups_delete_membership_request( $membership_id, $user_id = false, $group_id = false ) {
	if ( $user_id && $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( $membership->user_id, $membership->group_id ) )
		return false;

	return $membership;
}
/**
 * Remove a user from a group.
 *
 * @since 1.0.0
 *
 * @param int $group_id ID of the group.
 * @param int $user_id  Optional. ID of the user. Defaults to the currently
 *                      logged-in user.
 * @return bool True on success, false on failure.
 */
function groups_leave_group($group_id, $user_id = 0)
{
    if (empty($user_id)) {
        $user_id = bp_loggedin_user_id();
    }
    // Don't let single admins leave the group.
    if (count(groups_get_group_admins($group_id)) < 2) {
        if (groups_is_user_admin($user_id, $group_id)) {
            bp_core_add_message(__('As the only admin, you cannot leave the group.', 'buddypress'), 'error');
            return false;
        }
    }
    if (!BP_Groups_Member::delete($user_id, $group_id)) {
        return false;
    }
    bp_core_add_message(__('You successfully left the group.', 'buddypress'));
    /**
     * Fires after a user leaves a group.
     *
     * @since 1.0.0
     *
     * @param int $group_id ID of the group.
     * @param int $user_id  ID of the user leaving the group.
     */
    do_action('groups_leave_group', $group_id, $user_id);
    return true;
}