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.