groups_edit_group_settings( int $group_id, bool $enable_forum, string $status, string|bool $invite_status = false, string|bool $activity_feed_status = false, int|bool $parent_id = false, string|bool $media_status = false, $document_status = false, string|bool $album_status = false, $message_status = false )
Edit the base details for a group.
Description
These are the settings that appear on the Settings page of the group’s Admin section (privacy settings, "enable forum", invitation status).
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
- $activity_feed_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
- $media_status
-
(Optional) Who is allowed to manage media to the group. 'members', 'mods', or 'admins'.
Default value: false
- $album_status
-
(Optional) Who is allowed to manage albums if media is enabled with album support. to the group. 'members', 'mods', or 'admins'.
Default value: false
Return
(bool) True on success, false on failure.
Source
File: bp-groups/bp-groups-functions.php
function groups_edit_group_settings( $group_id, $enable_forum, $status, $invite_status = false, $activity_feed_status = false, $parent_id = false, $media_status = false, $album_status = 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 );
// Set the activity feed status.
if ( $activity_feed_status )
groups_update_groupmeta( $group->id, 'activity_feed_status', $activity_feed_status );
// Set the media status.
if ( $media_status )
groups_update_groupmeta( $group->id, 'media_status', $media_status );
// Set the album status.
if ( $album_status )
groups_update_groupmeta( $group->id, 'album_status', $album_status );
groups_update_groupmeta( $group->id, 'last_activity', bp_core_current_time() );
/**
* Fires after the update of a groups settings.
*
* @since BuddyPress 1.0.0
*
* @param int $id ID of the group that was updated.
*/
do_action( 'groups_settings_updated', $group->id );
return true;
}
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.