groups_create_group( array|string $args = '' )
Create a group.
Description
Parameters
- $args
-
(Optional) An array of arguments.
- 'group_id'
(int|bool) Pass a group ID to update an existing item, or 0 / false to create a new group. Default: 0. - 'creator_id'
(int) The user ID that creates the group. - 'name'
(string) The group name. - 'description'
(string) Optional. The group's description. - 'slug'
(string) The group slug. - 'status'
(string) The group's status. Accepts 'public', 'private' or 'hidden'. Defaults to 'public'. - 'parent_id'
(int) The ID of the parent group. Default: 0. - 'enable_forum'
(int) Optional. Whether the group has a forum enabled. If a bbPress forum is enabled for the group, set this to 1. Default: 0. - 'date_created'
(string) The GMT time, in Y-m-d h:i:s format, when the group was created. Defaults to the current time.
Default value: ''
- 'group_id'
Return
(int|bool) The ID of the group on success. False on error.
Source
File: bp-groups/bp-groups-functions.php
function groups_create_group( $args = '' ) { $args = bp_parse_args( $args, array( 'group_id' => 0, 'creator_id' => 0, 'name' => '', 'description' => '', 'slug' => '', 'status' => null, 'parent_id' => null, 'enable_forum' => null, 'date_created' => null ), 'groups_create_group' ); extract( $args, EXTR_SKIP ); // Pass an existing group ID. if ( ! empty( $group_id ) ) { $group = groups_get_group( $group_id ); $name = ! empty( $name ) ? $name : $group->name; $slug = ! empty( $slug ) ? $slug : $group->slug; $creator_id = ! empty( $creator_id ) ? $creator_id : $group->creator_id; $description = ! empty( $description ) ? $description : $group->description; $status = ! is_null( $status ) ? $status : $group->status; $parent_id = ! is_null( $parent_id ) ? $parent_id : $group->parent_id; $enable_forum = ! is_null( $enable_forum ) ? $enable_forum : $group->enable_forum; $date_created = ! is_null( $date_created ) ? $date_created : $group->date_created; // Groups need at least a name. if ( empty( $name ) ) { return false; } // Create a new group. } else { // Instantiate new group object. $group = new BP_Groups_Group; // Check for null values, reset to sensible defaults. $status = ! is_null( $status ) ? $status : 'public'; $parent_id = ! is_null( $parent_id ) ? $parent_id : 0; $enable_forum = ! is_null( $enable_forum ) ? $enable_forum : 0; $date_created = ! is_null( $date_created ) ? $date_created : bp_core_current_time(); } // Set creator ID. if ( $creator_id ) { $group->creator_id = (int) $creator_id; } elseif ( is_user_logged_in() ) { $group->creator_id = bp_loggedin_user_id(); } if ( ! $group->creator_id ) { return false; } // Validate status. if ( ! groups_is_valid_status( $status ) ) { return false; } // Set group name. $group->name = $name; $group->description = $description; $group->slug = $slug; $group->status = $status; $group->parent_id = $parent_id; $group->enable_forum = (int) $enable_forum; $group->date_created = $date_created; // Save group. if ( ! $group->save() ) { return false; } // If this is a new group, set up the creator as the first member and admin. if ( empty( $group_id ) ) { $member = new BP_Groups_Member; $member->group_id = $group->id; $member->user_id = $group->creator_id; $member->is_admin = 1; $member->user_title = __( 'Group Organizer', 'buddyboss' ); $member->is_confirmed = 1; $member->date_modified = bp_core_current_time(); $member->save(); /** * Fires after the creation of a new group and a group creator needs to be made. * * @since BuddyPress 1.5.0 * * @param int $id ID of the newly created group. * @param BP_Groups_Member $member Instance of the member who is assigned * as group creator. * @param BP_Groups_Group $group Instance of the group being created. */ do_action( 'groups_create_group', $group->id, $member, $group ); } else { /** * Fires after the update of a group. * * @since BuddyPress 1.5.0 * * @param int $id ID of the updated group. * @param BP_Groups_Group $group Instance of the group being updated. */ do_action( 'groups_update_group', $group->id, $group ); } /** * Fires after the creation or update of a group. * * @since BuddyPress 1.0.0 * * @param int $id ID of the newly created group. * @param BP_Groups_Group $group Instance of the group being updated. */ do_action( 'groups_created_group', $group->id, $group ); return $group->id; }
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.