BP_Groups_Group::delete()
Delete the current group.
Description
Return
(bool) True on success, false on failure.
Source
File: bp-groups/classes/class-bp-groups-group.php
public function delete() {
global $wpdb;
// Delete groupmeta for the group.
groups_delete_groupmeta( $this->id );
// Fetch the user IDs of all the members of the group.
$user_ids = BP_Groups_Member::get_group_member_ids( $this->id );
$user_id_str = esc_sql( implode( ',', wp_parse_id_list( $user_ids ) ) );
// Modify group count usermeta for members.
$wpdb->query( "UPDATE {$wpdb->usermeta} SET meta_value = meta_value - 1 WHERE meta_key = 'total_group_count' AND user_id IN ( {$user_id_str} )" );
// Now delete all group member entries.
BP_Groups_Member::delete_all( $this->id );
/**
* Fires before the deletion of a group.
*
* @since BuddyPress 1.2.0
*
* @param BP_Groups_Group $this Current instance of the group item being deleted. Passed by reference.
* @param array $user_ids Array of user IDs that were members of the group.
*/
do_action_ref_array( 'bp_groups_delete_group', array( &$this, $user_ids ) );
wp_cache_delete( $this->id, 'bp_groups' );
$bp = buddypress();
// 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;
}
// delete group avatars
$upload_path = bp_core_avatar_upload_path();
system("rm -rf ".escapeshellarg( $upload_path . '/group-avatars/'. $this->id ));
// delete group avatars
$bp_attachments_uploads_dir = bp_attachments_uploads_dir_get();
$type_dir = trailingslashit( $bp_attachments_uploads_dir['basedir'] );
system("rm -rf ".escapeshellarg( $type_dir . 'groups/'. $this->id ) );
return true;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.6.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.