groups_edit_group_settings( int $group_id, bool $enable_forum, string $status, string|bool $invite_status = false, int|bool $parent_id = false )
Edit the base details for a group.
Description Description
These are the settings that appear on the Settings page of the group’s Admin section (privacy settings, "enable forum", invitation status).
Parameters Parameters
- $group_id
-
(Required) ID of the group.
- $enable_forum
-
(Required) Whether to enable a forum for the group.
- $status
-
(Required) Group status. 'public', 'private', 'hidden'.
- $invite_status
-
(Optional) Who is allowed to send invitations to the group. 'members', 'mods', or 'admins'.
Default value: false
- $parent_id
-
(Optional) Parent group ID.
Default value: false
Return Return
(bool) True on success, false on failure.
Source Source
File: bp-groups/bp-groups-functions.php
function groups_edit_group_settings( $group_id, $enable_forum, $status, $invite_status = false, $parent_id = false ) {
$group = groups_get_group( $group_id );
$group->enable_forum = $enable_forum;
/**
* Before we potentially switch the group status, if it has been changed to public
* from private and there are outstanding membership requests, auto-accept those requests.
*/
if ( 'private' == $group->status && 'public' == $status )
groups_accept_all_pending_membership_requests( $group->id );
// Now update the status.
$group->status = $status;
// Update the parent ID if necessary.
if ( false !== $parent_id ) {
$group->parent_id = $parent_id;
}
if ( !$group->save() )
return false;
// Set the invite status.
if ( $invite_status )
groups_update_groupmeta( $group->id, 'invite_status', $invite_status );
groups_update_groupmeta( $group->id, 'last_activity', bp_core_current_time() );
/**
* Fires after the update of a groups settings.
*
* @since 1.0.0
*
* @param int $id ID of the group that was updated.
*/
do_action( 'groups_settings_updated', $group->id );
return true;
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |