BP_REST_Group_Settings_Endpoint::get_settings_fields( integer $group_id )
Get Group Settings.
Description
Parameters
- $group_id
-
(Required) Group ID.
Return
(mixed|void)
Source
File: bp-groups/classes/class-bp-rest-group-settings-endpoint.php
protected function get_settings_fields( $group_id ) { $fields = array(); buddypress()->groups->current_group = groups_get_group( $group_id ); $fields[] = array( 'label' => esc_html__( 'Privacy Options', 'buddyboss' ), 'name' => 'group-status', 'description' => '', 'field' => 'radio', 'value' => bp_get_new_group_status(), 'options' => array( array( 'label' => esc_html__( 'This is a public group', 'buddyboss' ), 'value' => 'public', 'description' => '<ul id="public-group-description">' . '<li>' . esc_html__( 'Any site member can join this group.', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'Group content and activity will be visible to any site member.', 'buddyboss' ) . '</li>' . '</ul>', 'is_default_option' => 'public' === bp_get_new_group_status() || ! bp_get_new_group_status(), ), array( 'label' => esc_html__( 'This is a private group', 'buddyboss' ), 'value' => 'private', 'description' => '<ul id="public-group-description">' . '<li>' . esc_html__( 'Only people who request membership and are accepted can join the group.', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ) . '</li>' . '</ul>', 'is_default_option' => 'private' === bp_get_new_group_status(), ), array( 'label' => esc_html__( 'This is a hidden group', 'buddyboss' ), 'value' => 'hidden', 'description' => '<ul id="public-group-description">' . '<li>' . esc_html__( 'Only people who are invited can join the group.', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'This group will not be listed in the groups directory or search results', 'buddyboss' ) . '</li>' . '<li>' . esc_html__( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ) . '</li>' . '</ul>', 'is_default_option' => 'private' === bp_get_new_group_status(), ), ), ); $fields[] = array( 'label' => esc_html__( 'Group Invitations', 'buddyboss' ), 'name' => 'group-invite-status', 'description' => esc_html__( 'Which members of this group are allowed to invite others?', 'buddyboss' ), 'field' => 'radio', 'value' => bp_group_get_invite_status( $group_id ), 'options' => array( array( 'label' => esc_html__( 'All group members', 'buddyboss' ), 'value' => 'members', 'description' => '', 'is_default_option' => 'members' === bp_group_get_invite_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers and Moderators only', 'buddyboss' ), 'value' => 'mods', 'description' => '', 'is_default_option' => 'mods' === bp_group_get_invite_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers only', 'buddyboss' ), 'value' => 'admins', 'description' => '', 'is_default_option' => 'admins' === bp_group_get_invite_status( $group_id ), ), ), ); $fields[] = array( 'label' => esc_html__( 'Activity Feeds', 'buddyboss' ), 'name' => 'group-activity-feed-status', 'description' => esc_html__( 'Which members of this group are allowed to post into the activity feed?', 'buddyboss' ), 'field' => 'radio', 'value' => bp_group_get_activity_feed_status( $group_id ), 'options' => array( array( 'label' => esc_html__( 'All group members', 'buddyboss' ), 'value' => 'members', 'description' => '', 'is_default_option' => 'members' === bp_group_get_activity_feed_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers and Moderators only', 'buddyboss' ), 'value' => 'mods', 'description' => '', 'is_default_option' => 'mods' === bp_group_get_activity_feed_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers only', 'buddyboss' ), 'value' => 'admins', 'description' => '', 'is_default_option' => 'admins' === bp_group_get_activity_feed_status( $group_id ), ), ), ); if ( bp_is_active( 'media' ) && bp_is_group_media_support_enabled() ) { $fields[] = array( 'label' => esc_html__( 'Group Photos', 'buddyboss' ), 'name' => 'group-media-status', 'description' => esc_html__( 'Which members of this group are allowed to manage photos?', 'buddyboss' ), 'field' => 'radio', 'value' => bp_group_get_media_status( $group_id ), 'options' => array( array( 'label' => esc_html__( 'All group members', 'buddyboss' ), 'value' => 'members', 'description' => '', 'is_default_option' => 'members' === bp_group_get_media_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers and Moderators only', 'buddyboss' ), 'value' => 'mods', 'description' => '', 'is_default_option' => 'mods' === bp_group_get_media_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers only', 'buddyboss' ), 'value' => 'admins', 'description' => '', 'is_default_option' => 'admins' === bp_group_get_media_status( $group_id ), ), ), ); } if ( bp_is_active( 'media' ) && bp_is_group_media_support_enabled() ) { $fields[] = array( 'label' => esc_html__( 'Group Albums', 'buddyboss' ), 'name' => 'group-album-status', 'description' => esc_html__( 'Which members of this group are allowed to manage albums?', 'buddyboss' ), 'field' => 'radio', 'value' => bp_group_get_album_status( $group_id ), 'options' => array( array( 'label' => esc_html__( 'All group members', 'buddyboss' ), 'value' => 'members', 'description' => '', 'is_default_option' => 'members' === bp_group_get_album_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers and Moderators only', 'buddyboss' ), 'value' => 'mods', 'description' => '', 'is_default_option' => 'mods' === bp_group_get_album_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers only', 'buddyboss' ), 'value' => 'admins', 'description' => '', 'is_default_option' => 'admins' === bp_group_get_album_status( $group_id ), ), ), ); } if ( bp_is_active( 'messages' ) && function_exists( 'bp_disable_group_messages' ) && true === bp_disable_group_messages() ) { $fields[] = array( 'label' => esc_html__( 'Group Messages', 'buddyboss' ), 'name' => 'group-message-status', 'description' => esc_html__( 'Which members of this group are allowed to send group messages?', 'buddyboss' ), 'field' => 'radio', 'value' => bp_group_get_message_status( $group_id ), 'options' => array( array( 'label' => esc_html__( 'All group members', 'buddyboss' ), 'value' => 'members', 'description' => '', 'is_default_option' => 'members' === bp_group_get_message_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers and Moderators only', 'buddyboss' ), 'value' => 'mods', 'description' => '', 'is_default_option' => 'mods' === bp_group_get_message_status( $group_id ), ), array( 'label' => esc_html__( 'Organizers only', 'buddyboss' ), 'value' => 'admins', 'description' => '', 'is_default_option' => 'admins' === bp_group_get_message_status( $group_id ), ), ), ); } // Group Types. $group_types = bp_groups_get_group_types( array( 'show_in_create_screen' => true ), 'objects' ); // Hide Group Types if none is selected in Users > Profile Type > E.g. (Students) > Allowed Group Types meta box. if ( function_exists( 'bp_restrict_group_creation' ) && function_exists( 'bp_member_type_enable_disable' ) && false === bp_restrict_group_creation() && true === bp_member_type_enable_disable() ) { $get_all_registered_member_types = bp_get_active_member_types(); if ( isset( $get_all_registered_member_types ) && ! empty( $get_all_registered_member_types ) ) { $current_user_member_type = bp_get_member_type( bp_loggedin_user_id() ); if ( '' !== $current_user_member_type ) { $member_type_post_id = bp_member_type_post_by_type( $current_user_member_type ); $include_group_type = get_post_meta( $member_type_post_id, '_bp_member_type_enabled_group_type_create', true ); if ( isset( $include_group_type ) && ! empty( $include_group_type ) && 'none' === $include_group_type[0] ) { $group_types = ''; } } } } if ( $group_types ) { $group_type_field = array( 'label' => esc_html__( 'Group Type', 'buddyboss' ), 'name' => 'group-types', 'description' => esc_html__( 'What type of group is this? (optional)', 'buddyboss' ), 'field' => 'select', 'value' => '', 'options' => array(), ); $group_hierarchies['options'][] = array( 'label' => __( 'Select Group Type', 'buddyboss' ), 'value' => '', 'description' => '', 'is_default_option' => '', ); foreach ( $group_types as $type ) { if ( function_exists( 'bp_restrict_group_creation' ) && function_exists( 'bp_member_type_enable_disable' ) && false === bp_restrict_group_creation() && true === bp_member_type_enable_disable() ) { $get_all_registered_member_types = bp_get_active_member_types(); if ( isset( $get_all_registered_member_types ) && ! empty( $get_all_registered_member_types ) ) { $current_user_member_type = bp_get_member_type( bp_loggedin_user_id() ); if ( '' !== $current_user_member_type ) { $member_type_post_id = bp_member_type_post_by_type( $current_user_member_type ); $include_group_type = get_post_meta( $member_type_post_id, '_bp_member_type_enabled_group_type_create', true ); if ( isset( $include_group_type ) && ! empty( $include_group_type ) ) { if ( in_array( $type->name, $include_group_type, true ) ) { $group_type_field['options'][] = array( 'label' => $type->labels['singular_name'], 'value' => $type->name, 'description' => '', 'is_default_option' => ( ( ( true === bp_groups_has_group_type( $group_id, $type->name ) ) ? $type->name : '' ) === $type->name ), ); } } else { $group_type_field['options'][] = array( 'label' => $type->labels['singular_name'], 'value' => $type->name, 'description' => '', 'is_default_option' => ( ( ( true === bp_groups_has_group_type( $group_id, $type->name ) ) ? $type->name : '' ) === $type->name ), ); } } else { $group_type_field['options'][] = array( 'label' => $type->labels['singular_name'], 'value' => $type->name, 'description' => '', 'is_default_option' => ( ( ( true === bp_groups_has_group_type( $group_id, $type->name ) ) ? $type->name : '' ) === $type->name ), ); } } else { $group_type_field['options'][] = array( 'label' => $type->labels['singular_name'], 'value' => $type->name, 'description' => '', 'is_default_option' => ( ( ( true === bp_groups_has_group_type( $group_id, $type->name ) ) ? $type->name : '' ) === $type->name ), ); } } else { $group_type_field['options'][] = array( 'label' => $type->labels['singular_name'], 'value' => $type->name, 'description' => '', 'is_default_option' => ( ( ( true === bp_groups_has_group_type( $group_id, $type->name ) ) ? $type->name : '' ) === $type->name ), ); } } $fields[] = $group_type_field; } // --Group Types. if ( function_exists( 'bp_enable_group_hierarchies' ) && bp_enable_group_hierarchies() ) { $current_parent_group_id = bp_get_parent_group_id(); $possible_parent_groups = bp_get_possible_parent_groups(); $group_hierarchies = array( 'label' => esc_html__( 'Group Parent', 'buddyboss' ), 'name' => 'bp-groups-parent', 'description' => esc_html__( 'Which group should be the parent of this group? (optional)', 'buddyboss' ), 'field' => 'select', 'value' => $current_parent_group_id, 'options' => array(), ); if ( $possible_parent_groups ) { $group_hierarchies['options'][] = array( 'label' => __( 'Select Parent', 'buddyboss' ), 'value' => 0, 'description' => '', 'is_default_option' => empty( $current_parent_group_id ) || 0 === $current_parent_group_id, ); foreach ( $possible_parent_groups as $possible_parent_group ) { $group_hierarchies['options'][] = array( 'label' => $possible_parent_group->name, 'value' => $possible_parent_group->id, 'description' => '', 'is_default_option' => ( $current_parent_group_id === $possible_parent_group->id ), ); } } $fields[] = $group_hierarchies; } return apply_filters( 'bp_rest_group_settings', $fields, $group_id ); }
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.