Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'group_id'

Viewing 25 results - 1 through 25 (of 567 total)
  • Author
    Search Results
  • #335623
    GyziieDK
    Participant

    Found the solution with the following code:

    Restrict in single group

    function restrict_activity_posting_for_specific_group( $can_post, $user_id, $group_id ) {
        // The ID of the group you want to restrict posting in (replace with the actual group ID)
        $restricted_group_id = 123;  // Example group ID
    
        // Only apply the restriction to the specific group
        if ( $group_id == $restricted_group_id ) {
            // Check if the user is an admin or moderator
            if ( !bp_group_is_admin( $user_id, $group_id ) && !bp_group_is_mod( $user_id, $group_id ) ) {
                return false;  // Don't allow posting
            }
        }
    
        // If not the restricted group, or the user is admin/mod, allow posting
        return $can_post;
    }
    add_filter( 'bp_activity_can_post', 'restrict_activity_posting_for_specific_group', 10, 3 );

    Restrict in multiple groups

    function restrict_activity_posting_for_specific_groups( $can_post, $user_id, $group_id ) {
        // The IDs of the groups you want to restrict posting in (replace with actual group IDs)
        $restricted_group_ids = array( 123, 456, 789 );  // Example group IDs
    
        // Check if the group ID is in the restricted group IDs array
        if ( in_array( $group_id, $restricted_group_ids ) ) {
            // Only apply the restriction if the user is not an admin or moderator
            if ( !bp_group_is_admin( $user_id, $group_id ) && !bp_group_is_mod( $user_id, $group_id ) ) {
                return false;  // Don't allow posting
            }
        }
    
        // If not in the restricted groups or the user is an admin/mod, allow posting
        return $can_post;
    }
    add_filter( 'bp_activity_can_post', 'restrict_activity_posting_for_specific_groups', 10, 3 );
    #332900
    Varun Dubey
    Participant

    @puresaian To mention all group members simultaneously, you must implement a custom solution. This could be a special shortcode or command that automatically translates into individual mentions for all group members when used by the admin.

    
    /**
     * Handles the custom mention "@everyone" within BuddyPress groups.
     * When @everyone is used in a group's post or comment, it replaces it with mentions of all group members.
     */
    function wbcom_custom_everyone_mention_handler( $content ) {
        // Check if BuddyPress is loaded and @everyone is used in the content
        if ( function_exists( 'groups_get_current_group' ) && strpos( $content, '@everyone' ) !== false ) {
            // Get the current group details
            $group = groups_get_current_group();
    
            // Proceed only if we are in a group context
            if ( $group ) {
                // Fetch all members of the group
                $group_members = groups_get_group_members( array( 'group_id' => $group->id ) );
                $mentions = array();
    
                // Loop through each member to build the mentions array
                foreach ( $group_members['members'] as $member ) {
                    $mentions[] = '@' . $member->user_nicename; // Prepares the mention syntax for each member
                }
    
                // Replace @everyone in the content with the individual member mentions
                $content = str_replace('@everyone', implode(' ', $mentions), $content);
            }
        }
    
        // Return the modified (or unmodified, if no changes were made) content
        return $content;
    }
    
    // Add filters to apply the custom mention handler in different BuddyPress content types
    add_filter( 'the_content', 'wbcom_custom_everyone_mention_handler' ); // For regular WordPress content
    add_filter( 'bp_activity_new_update_content', 'wbcom_custom_everyone_mention_handler' ); // For new BuddyPress activity updates
    add_filter( 'bp_activity_comment_content', 'wbcom_custom_everyone_mention_handler' ); // For comments on BuddyPress activities
    
    

    It’s not a tested code; it’s just giving implementation directions.

    #332632

    In reply to: BuddyPress 12.0.0

    tdakanalis
    Participant

    Hi,

    I’ve developed a plugin that extends the BP_Group_Extension class to enhance BuddyPress Groups’ functionality. Inside the class constructor, I aim to access the settings of the respective group to verify if the extension has been activated through that group’s settings.

    Before BuddyPress version 12, I could simply access the $bp->groups->current_group->id to retrieve the current group’s ID. However, after upgrading to version 12, accessing $bp->groups->current_group returns just 0. How can I now retrieve the group ID from within the constructor in version 12? Here is a sample code demonstrating what I am trying to do:

    
    class MyExtension extends BP_Group_Extension {
      function __construct() {
            global $bp;
            $group_id = $bp->groups->current_group->id;
      }
    }
    
    function register_group_extension() {
        bp_register_group_extension( 'MyExtension' );
    }
    
    add_action( 'bp_init', 'register_group_extension' );
    
    Kahnu Charan Swain
    Participant

    I have created a new group with the below code.

    // Define the group details.
    $group_args = array(
      'creator_id'    => get_current_user_id(), // The ID of the user who creates the group.
      'name'          => 'My New Group', // Replace this with the desired group name.
      'description'   => 'This is a sample group created by code.', // Replace this with the group description.
      'status'        => 'public', // You can set the status to 'public', 'private', or 'hidden'.
    );
    
    // Create the group.
    $group_id = groups_create_group( $group_args );
    
    if ( ! is_wp_error( $group_id ) ) {
      echo 'Group created successfully. Group ID: ' . $group_id;
    } else {
      echo 'Failed to create group: ' . $group_id->get_error_message();
    }
    

    I want to update the created group status from “public” to “hidden” but I cannot find the proper hook/function.

    nobody
    Participant

    I tried using this code :

    add_action( ‘groups_join_group’, ‘venutius_group_join_filter’, 10, 2 );

    function venutius_group_join_filter( $group_id, $user_id ) {
    global $bp;

    if ( current_user_can( ‘manage_options’ ) ) {
    return;
    }

    $membership_total = count( BP_Groups_Member::get_membership_ids_for_user( $user_id ) );

    if ( $membership_total >= 2 ) {
    groups_leave_group( $group_id, $user_id )
    }
    }

    But, getting alerts syntax error, unexpected token “}”
    Can you help me ? @venutius

    Mathieu Viet
    Moderator

    Hi try to replace:
    if( bp_current_user_can( 'bp_moderate' ) || groups_is_user_mod( bp_loggedin_user_id(), $group_id ) )

    With:
    if( bp_current_user_can( 'bp_moderate' ) || groups_is_user_mod( bp_loggedin_user_id(), $group_id ) || groups_is_user_admin( bp_loggedin_user_id(), $group_id ) )

    mewtwo9519
    Participant

    Found this.

    <?php
    function majecdad_group_mod_delete( $can_delete, $activity ) {
    	
       if( $activity->component == 'groups' ) {
    	
    	$group_id = $activity->item_id; 
    		
    	if( bp_current_user_can( 'bp_moderate' ) || groups_is_user_mod( bp_loggedin_user_id(), $group_id ) )
    	    $can_delete = true;
    	
       }
    
       return $can_delete;
    }
    add_filter('bp_activity_user_can_delete', 'majecdad_group_mod_delete', 21, 2 );
    ?>

    This code works great but only for moderators (not for admins) and only activity posts in a group and not the comments.

    Can anyone please help me with a code like this for bp-custom.php but that gives both admins and mods the “power” to delete activity posts and also comments in the groups they are admin/mod?

    Thank you

    #328174

    In reply to: remove group privacy

    edensan
    Participant

    okay here is the php code for every privacy set to public:

    <?php
    /**
     * BP Nouveau Group's edit settings template.
     *
     * This template can be overridden by copying it to yourtheme/buddypress/groups/single/admin/group-settings.php.
     *
     * @since   BuddyPress 3.0.0
     * @version 1.0.0
     */
    ?>
    
    <?php if ( bp_is_group_create() ) : ?>
    
    	<h3 class="bp-screen-title creation-step-name">
    		<?php esc_html_e( 'Select Group Settings', 'buddyboss' ); ?>
    	</h3>
    
    <?php else : ?>
    
    	<h2 class="bp-screen-title">
    		<?php esc_html_e( 'Change Group Settings', 'buddyboss' ); ?>
    	</h2>
    
    <?php endif; ?>
    
    <div class="group-settings-selections">
    
    	<fieldset class="radio group-status-type">
    		<legend><?php esc_html_e( 'Privacy Options', 'buddyboss' ); ?></legend>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-public" class="bs-styled-radio" value="public"
    			<?php
    			if ( 'public' === bp_get_new_group_status() || ! bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="public-group-description" />
    			<label for="group-status-public"><?php esc_html_e( 'This is a public group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="public-group-description">
    			<li><?php esc_html_e( 'Any site member can join this group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will be visible to any site member.', 'buddyboss' ); ?></li>
    		</ul>
    <?php
    /** DIT UITGEVINKT DOOR EDWIN
    	<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-private" class="bs-styled-radio" value="private"
    			<?php
    			if ( 'private' === bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="private-group-description" />
    			<label for="group-status-private"><?php esc_html_e( 'This is a private group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="private-group-description">
    			<li><?php esc_html_e( 'Only people who request membership and are accepted can join the group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ); ?></li>
    		</ul>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-hidden" class="bs-styled-radio" value="hidden"
    			<?php
    			if ( 'hidden' === bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="hidden-group-description" />
    			<label for="group-status-hidden"><?php esc_html_e( 'This is a hidden group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="hidden-group-description">
    			<li><?php esc_html_e( 'Only people who are invited can join the group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will not be listed in the groups directory or search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ); ?></li>
    		</ul>
    DIT UITGEVINKT DOOR EDWIN
    
    */
    ?>
    	</fieldset>
    
    	<fieldset class="radio group-invitations">
    		<legend><?php esc_html_e( 'Group Invitations', 'buddyboss' ); ?></legend>
    
    		<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to invite others?', 'buddyboss' ); ?></p>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> />
    			<label for="group-invite-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    		</div>
    <?php
    /**
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> />
    			<label for="group-invite-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    		</div>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> />
    			<label for="group-invite-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    		</div>
    */
    ?>	
    
    </fieldset>
    
    	<fieldset class="radio group-post-form">
    		<legend><?php esc_html_e( 'Activity Feeds', 'buddyboss' ); ?></legend>
    
    		<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to post into the activity feed?', 'buddyboss' ); ?></p>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_activity_feed_status_setting( 'members' ); ?> />
    			<label for="group-activity-feed-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    		</div>
    <?php
    /**
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_activity_feed_status_setting( 'mods' ); ?> />
    			<label for="group-activity-feed-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    		</div>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_activity_feed_status_setting( 'admins' ); ?> />
    			<label for="group-activity-feed-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    		</div>
    */
    ?>
    
    	</fieldset>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_media_support_enabled() ) : ?>
    
    		<fieldset class="radio group-media">
    			<legend><?php esc_html_e( 'Group Photos', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload photos?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_media_status_setting( 'members' ); ?> />
    				<label for="group-media-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    
    <?php
    /**			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_media_status_setting( 'mods' ); ?> />
    				<label for="group-media-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_media_status_setting( 'admins' ); ?> />
    				<label for="group-media-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    			*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_albums_support_enabled() ) : ?>
    
    		<fieldset class="radio group-albums">
    			<legend><?php esc_html_e( 'Group Albums', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to create albums?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_albums_status_setting( 'members' ); ?> />
    				<label for="group-albums-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**	
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_albums_status_setting( 'mods' ); ?> />
    				<label for="group-albums-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_albums_status_setting( 'admins' ); ?> />
    				<label for="group-albums-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    						*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_document_support_enabled() ) : ?>
    
    		<fieldset class="radio group-document">
    			<legend><?php esc_html_e( 'Group Documents', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload documents?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_document_status_setting( 'members' ); ?> />
    				<label for="group-document-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**	
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_document_status_setting( 'mods' ); ?> />
    				<label for="group-document-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_document_status_setting( 'admins' ); ?> />
    				<label for="group-document-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    	
    	*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'video' ) && bp_is_group_video_support_enabled() ) : ?>
    
    		<fieldset class="radio group-video">
    			<legend><?php esc_html_e( 'Group Videos', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload videos?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_video_status_setting( 'members' ); ?> />
    				<label for="group-video-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_video_status_setting( 'mods' ); ?> />
    				<label for="group-video-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_video_status_setting( 'admins' ); ?> />
    				<label for="group-video-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    				*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'messages' ) && true === bp_disable_group_messages() ) : ?>
    
    		<fieldset class="radio group-messages">
    			<legend><?php esc_html_e( 'Group Messages', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to send group messages?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input checked type="radio" name="group-message-status" id="group-messages-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_messages_status_setting( 'members' ); ?> />
    				<label for="group-messages-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-message-status" id="group-messages-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_messages_status_setting( 'mods' ); ?> />
    				<label for="group-messages-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-message-status" id="group-messages-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_messages_status_setting( 'admins' ); ?> />
    				<label for="group-messages-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    			
    			*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php
    	$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 ( 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 = '';
    				}
    			}
    		}
    	}
    
    	// Group type selection
    	if ( $group_types ) :
    		?>
    
    		<fieldset class="group-create-types">
    			<legend><?php esc_html_e( 'Group Type', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'What type of group is this? (optional)', 'buddyboss' ); ?></p>
    			<select id="bp-groups-type" name="group-types[]" autocomplete="off">
    				<option value="" <?php selected( '', '' ); ?>><?php _e( 'Select Group Type', 'buddyboss' ); ?></option>
    			<?php foreach ( $group_types as $type ) : ?>
    				<?php
    				if ( 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 ) ) {
    									?>
    									<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    									<?php
    								}
    							} else {
    								?>
    								<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    								<?php
    							}
    						} else {
    							?>
    							<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    							<?php
    						}
    					} else {
    						?>
    						<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    						<?php
    					}
    				} else {
    					?>
    					<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    					<?php
    				}
    				?>
    
    			<?php endforeach; ?>
    			</select>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php
    	if ( bp_enable_group_hierarchies() ) :
    		$current_parent_group_id = bp_get_parent_group_id();
    		$possible_parent_groups  = bp_get_possible_parent_groups();
    		?>
    
    		<fieldset class="select group-parent">
    			<legend><?php esc_html_e( 'Group Parent', 'buddyboss' ); ?></legend>
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which group should be the parent of this group? (optional)', 'buddyboss' ); ?></p>
    			<select id="bp-groups-parent" name="bp-groups-parent" autocomplete="off">
    				<option value="0" <?php selected( 0, $current_parent_group_id ); ?>><?php _e( 'Select Parent', 'buddyboss' ); ?></option>
    				<?php
    				if ( $possible_parent_groups ) {
    
    					foreach ( $possible_parent_groups as $possible_parent_group ) {
    						?>
    						<option value="<?php echo $possible_parent_group->id; ?>" <?php selected( $current_parent_group_id, $possible_parent_group->id ); ?>><?php echo esc_html( $possible_parent_group->name ); ?></option>
    						<?php
    					}
    				}
    				?>
    			</select>
    		</fieldset>
    	<?php endif; ?>
    
    </div><!-- // .group-settings-selections -->
    

    greetz Edwin

    #328170

    In reply to: remove group privacy

    edensan
    Participant

    okay i find this setting in:
    \bp-nouveau\buddypress\groups\single\admin\group-settings.php

    <?php
    /**
     * BP Nouveau Group's edit settings template.
     *
     * This template can be overridden by copying it to yourtheme/buddypress/groups/single/admin/group-settings.php.
     *
     * @since   BuddyPress 3.0.0
     * @version 1.0.0
     */
    ?>
    
    <?php if ( bp_is_group_create() ) : ?>
    
    	<h3 class="bp-screen-title creation-step-name">
    		<?php esc_html_e( 'Select Group Settings', 'buddyboss' ); ?>
    	</h3>
    
    <?php else : ?>
    
    	<h2 class="bp-screen-title">
    		<?php esc_html_e( 'Change Group Settings', 'buddyboss' ); ?>
    	</h2>
    
    <?php endif; ?>
    
    <div class="group-settings-selections">
    
    	<fieldset class="radio group-status-type">
    		<legend><?php esc_html_e( 'Privacy Options', 'buddyboss' ); ?></legend>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-public" class="bs-styled-radio" value="public"
    			<?php
    			if ( 'public' === bp_get_new_group_status() || ! bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="public-group-description" />
    			<label for="group-status-public"><?php esc_html_e( 'This is a public group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="public-group-description">
    			<li><?php esc_html_e( 'Any site member can join this group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will be visible to any site member.', 'buddyboss' ); ?></li>
    		</ul>
    <?php
    /** DIT UITGEVINKT DOOR EDWIN
    	<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-private" class="bs-styled-radio" value="private"
    			<?php
    			if ( 'private' === bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="private-group-description" />
    			<label for="group-status-private"><?php esc_html_e( 'This is a private group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="private-group-description">
    			<li><?php esc_html_e( 'Only people who request membership and are accepted can join the group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will be listed in the groups directory and in search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ); ?></li>
    		</ul>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-status" id="group-status-hidden" class="bs-styled-radio" value="hidden"
    			<?php
    			if ( 'hidden' === bp_get_new_group_status() ) {
    				?>
    				 checked="checked"<?php } ?> aria-describedby="hidden-group-description" />
    			<label for="group-status-hidden"><?php esc_html_e( 'This is a hidden group', 'buddyboss' ); ?></label>
    		</div>
    
    		<ul id="hidden-group-description">
    			<li><?php esc_html_e( 'Only people who are invited can join the group.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'This group will not be listed in the groups directory or search results.', 'buddyboss' ); ?></li>
    			<li><?php esc_html_e( 'Group content and activity will only be visible to members of the group.', 'buddyboss' ); ?></li>
    		</ul>
    DIT UITGEVINKT DOOR EDWIN
    
    */
    ?>
    	</fieldset>
    
    	<fieldset class="radio group-invitations">
    		<legend><?php esc_html_e( 'Group Invitations', 'buddyboss' ); ?></legend>
    
    		<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to invite others?', 'buddyboss' ); ?></p>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> />
    			<label for="group-invite-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    		</div>
    <?php
    /**
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> />
    			<label for="group-invite-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    		</div>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-invite-status" id="group-invite-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> />
    			<label for="group-invite-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    		</div>
    */
    ?>	
    
    </fieldset>
    
    	<fieldset class="radio group-post-form">
    		<legend><?php esc_html_e( 'Activity Feeds', 'buddyboss' ); ?></legend>
    
    		<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to post into the activity feed?', 'buddyboss' ); ?></p>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_activity_feed_status_setting( 'members' ); ?> />
    			<label for="group-activity-feed-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    		</div>
    <?php
    /**
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_activity_feed_status_setting( 'mods' ); ?> />
    			<label for="group-activity-feed-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    		</div>
    
    		<div class="bp-radio-wrap">
    			<input type="radio" name="group-activity-feed-status" id="group-activity-feed-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_activity_feed_status_setting( 'admins' ); ?> />
    			<label for="group-activity-feed-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    		</div>
    */
    ?>
    
    	</fieldset>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_media_support_enabled() ) : ?>
    
    		<fieldset class="radio group-media">
    			<legend><?php esc_html_e( 'Group Photos', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload photos?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_media_status_setting( 'members' ); ?> />
    				<label for="group-media-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    
    <?php
    /**			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_media_status_setting( 'mods' ); ?> />
    				<label for="group-media-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-media-status" id="group-media-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_media_status_setting( 'admins' ); ?> />
    				<label for="group-media-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    			*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_albums_support_enabled() ) : ?>
    
    		<fieldset class="radio group-albums">
    			<legend><?php esc_html_e( 'Group Albums', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to create albums?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_albums_status_setting( 'members' ); ?> />
    				<label for="group-albums-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**	
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_albums_status_setting( 'mods' ); ?> />
    				<label for="group-albums-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-album-status" id="group-albums-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_albums_status_setting( 'admins' ); ?> />
    				<label for="group-albums-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    						*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'media' ) && bp_is_group_document_support_enabled() ) : ?>
    
    		<fieldset class="radio group-document">
    			<legend><?php esc_html_e( 'Group Documents', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload documents?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_document_status_setting( 'members' ); ?> />
    				<label for="group-document-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**	
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_document_status_setting( 'mods' ); ?> />
    				<label for="group-document-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-document-status" id="group-document-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_document_status_setting( 'admins' ); ?> />
    				<label for="group-document-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    	
    	*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'video' ) && bp_is_group_video_support_enabled() ) : ?>
    
    		<fieldset class="radio group-video">
    			<legend><?php esc_html_e( 'Group Videos', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to upload videos?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_video_status_setting( 'members' ); ?> />
    				<label for="group-video-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_video_status_setting( 'mods' ); ?> />
    				<label for="group-video-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-video-status" id="group-video-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_video_status_setting( 'admins' ); ?> />
    				<label for="group-video-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    				*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php if ( bp_is_active( 'messages' ) && true === bp_disable_group_messages() ) : ?>
    
    		<fieldset class="radio group-messages">
    			<legend><?php esc_html_e( 'Group Messages', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which members of this group are allowed to send group messages?', 'buddyboss' ); ?></p>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-message-status" id="group-messages-status-members" class="bs-styled-radio" value="members"<?php bp_group_show_messages_status_setting( 'members' ); ?> />
    				<label for="group-messages-status-members"><?php esc_html_e( 'All group members', 'buddyboss' ); ?></label>
    			</div>
    <?php
    /**
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-message-status" id="group-messages-status-mods" class="bs-styled-radio" value="mods"<?php bp_group_show_messages_status_setting( 'mods' ); ?> />
    				<label for="group-messages-status-mods"><?php esc_html_e( 'Organizers and Moderators only', 'buddyboss' ); ?></label>
    			</div>
    
    			<div class="bp-radio-wrap">
    				<input type="radio" name="group-message-status" id="group-messages-status-admins" class="bs-styled-radio" value="admins"<?php bp_group_show_messages_status_setting( 'admins' ); ?> />
    				<label for="group-messages-status-admins"><?php esc_html_e( 'Organizers only', 'buddyboss' ); ?></label>
    			</div>
    			
    			*/
    ?>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php
    	$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 ( 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 = '';
    				}
    			}
    		}
    	}
    
    	// Group type selection
    	if ( $group_types ) :
    		?>
    
    		<fieldset class="group-create-types">
    			<legend><?php esc_html_e( 'Group Type', 'buddyboss' ); ?></legend>
    
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'What type of group is this? (optional)', 'buddyboss' ); ?></p>
    			<select id="bp-groups-type" name="group-types[]" autocomplete="off">
    				<option value="" <?php selected( '', '' ); ?>><?php _e( 'Select Group Type', 'buddyboss' ); ?></option>
    			<?php foreach ( $group_types as $type ) : ?>
    				<?php
    				if ( 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 ) ) {
    									?>
    									<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    									<?php
    								}
    							} else {
    								?>
    								<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    								<?php
    							}
    						} else {
    							?>
    							<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    							<?php
    						}
    					} else {
    						?>
    						<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    						<?php
    					}
    				} else {
    					?>
    					<option for="<?php printf( 'group-type-%s', $type->name ); ?>" value="<?php echo esc_attr( $type->name ); ?>" <?php selected( ( true === bp_groups_has_group_type( bp_get_current_group_id(), $type->name ) ) ? $type->name : '', $type->name ); ?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
    					<?php
    				}
    				?>
    
    			<?php endforeach; ?>
    			</select>
    		</fieldset>
    
    	<?php endif; ?>
    
    	<?php
    	if ( bp_enable_group_hierarchies() ) :
    		$current_parent_group_id = bp_get_parent_group_id();
    		$possible_parent_groups  = bp_get_possible_parent_groups();
    		?>
    
    		<fieldset class="select group-parent">
    			<legend><?php esc_html_e( 'Group Parent', 'buddyboss' ); ?></legend>
    			<p class="group-setting-label" tabindex="0"><?php esc_html_e( 'Which group should be the parent of this group? (optional)', 'buddyboss' ); ?></p>
    			<select id="bp-groups-parent" name="bp-groups-parent" autocomplete="off">
    				<option value="0" <?php selected( 0, $current_parent_group_id ); ?>><?php _e( 'Select Parent', 'buddyboss' ); ?></option>
    				<?php
    				if ( $possible_parent_groups ) {
    
    					foreach ( $possible_parent_groups as $possible_parent_group ) {
    						?>
    						<option value="<?php echo $possible_parent_group->id; ?>" <?php selected( $current_parent_group_id, $possible_parent_group->id ); ?>><?php echo esc_html( $possible_parent_group->name ); ?></option>
    						<?php
    					}
    				}
    				?>
    			</select>
    		</fieldset>
    	<?php endif; ?>
    
    </div><!-- // .group-settings-selections -->
    

    so i commented everything out what i dont want.
    only thing is how can i select by default the last option?
    mabe someone can help me point in right direction?

    greetz Edwin

    #328034

    In reply to: Get group ID from slug

    seandkendle
    Participant

    What about: BP_Groups_Group::group_exists( $group_slug )?

    
    	 /**
    	 * Get whether a group exists for a given slug.
    	 *
    	 * @since BuddyPress 1.6.0
    	 *
    	 * @param string      $slug       Slug to check.
    	 * @param string|bool $table_name Deprecated.
    	 * @return int|null Group ID if found; null if not.
    	 */
    	public static function group_exists( $slug, $table_name = false ) {
    		global $wpdb;
    
    		if ( empty( $slug ) ) {
    			return false;
    		}
    
    		$args = array(
    			'slug'              => $slug,
    			'per_page'          => 1,
    			'page'              => 1,
    			'update_meta_cache' => false,
    			'show_hidden'       => true,
    		);
    
    		$groups = self::get( $args );
    
    		$group_id = null;
    		if ( $groups['groups'] ) {
    			$group_id = current( $groups['groups'] )->id;
    		}
    
    		return $group_id;
    	}

    class-bp-groups-group.php line 715

    CGC studio
    Participant

    WordPress v 6.1.1
    BuddyPress v 11.0.0

    Theme Onecommunity (latest version 3.7.8) (https://themeforest.net/item/onecommunity-buddypress-theme/3713046?gclid=CjwKCAiAqt-dBhBcEiwATw-ggL19B1O2bH4PjCwmpFyse_KZ7o4KEGnurStZcFrqDBd1d-3rDApwZxoC22cQAvD_BwE)
    My frontend test Site: https://staging-rezodenthodenthcom-staging.kinsta.cloud/

    Hi there!

    1/ After updating my hosted site from php 7.4 to 8.0 (Kinsta hosting), buddypress causes the following critical syntax error !

    2023/01/06 13:48:41 [error] 43493#43493: *668 FastCGI sent in stderr: “PHP message: PHP Parse error: syntax error, unexpected token “;”, expecting “)” in /www/rezodenthodenthcom_528 /public/wp-content/themes/onecommunity/buddypress/groups/single/group-header.php on line 29

    The site (front and backend) is still visible but the groups are not displayed anymore in groups single page
    Could you please be kind enough to help solving this first problem?

    2/ I usually use a child theme with two small custom codes that worked fine in php 7.4 but with php 8.0, I have a new FTAL error. So it appears that this function somehow is not working correctly with the child theme enabled: call_user_func_array()
    From that stack trace in the Fatal error, it is referencing BuddyPress with it:
    #2 /www/rezodenthodenthcom_528/public/wp-content/plugins/buddypress/bp-core/bp-core-dependency.php(407): do_action(‘bp_widgets_init’)

    As far as I know, our custom codes were very limited in 2 templates :

    Template 1: group-sidebar.php  :
    WE CHANGED THIS CODE:
    $group_id = bp_get_current_group_id();
    echo do_shortcode( ‘[rtmedia_gallery context=”group” per_page=”6″ context_id=”5″ context_id=”‘ . $group_id . ‘”]’ );
    BY THAT ONE:
    if ( bp_group_is_visible() ) :
    $group_id = bp_get_current_group_id();
    echo do_shortcode( ‘[rtmedia_gallery context=”group” per_page=”6″ context_id=”5″ context_id=”‘ . $group_id . ‘”]’ );
    endif;

    Template 2: group-sidebar.php (for customiszation image ads in widget column) with this code:
    <div class=”bp-sidebar-details”>
    <div class=”bp-sidebar-details-category first”><?php _e(‘Advertisement’, ‘onecommunity’); ?></div>
    <div class=”col-1-ads”>
    [widget id=”media_gallery-3″]
    </div>

    I don’t understand what could interfere in php 8.0 environment!
    What do you think about it? and could you help me to solve this second issue?

    Thank you for your appreciated help ; )

    C. GARCIA

    #327421
    ottomam
    Participant

    I want to set the group ID to “group name slug” by default.

    Is there a good way to override the function “groups_create_group()” in “bp-groups/bp-groups-functions.php”?

    I would like to specify an id for the slug as shown below, but do not want to modify the core file. It would be helpful if I could override it in “bp-custom.php”.

    
    $args = bp_parse_args(
    	$args,
    	array(
    		'group_id'     => 0,
    		'creator_id'   => 0,
    		'name'         => '',
    		'description'  => '',
    		'slug'         => bp_get_current_group_id(),
    		'status'       => null,
    		'parent_id'    => null,
    		'enable_forum' => null,
    		'date_created' => null,
    	),
    	'groups_create_group'
    );
    
    #326371
    restorm
    Participant

    Many thanks for the quick response. I’m not a developer so please excuse two clueless questions:
    1) Do these snippets work on their own, or does your User Roles plugin need to be activated?
    2) Do I insert both of the above snippets in the child theme, like this?
    add_filter( ‘bp_get_group_join_button’, ‘venutius_restrict_group_join’, 10, 2 );

    function venutius_restrict_group_join( $button, $group ) {
    global $bp;
    if ( current_user_can( ‘manage_options’ ) || $group->is_member ) {
    return $button;
    }

    $membership_total = count( BP_Groups_Member::get_membership_ids_for_user( $bp->loggedin_user->id ) );

    if ( $membership_total >= 1 ) {
    return false;
    }

    return $button;
    }
    add_action( ‘groups_join_group’, ‘venutius_group_join_filter’, 10, 2 );

    function venutius_group_join_filter( $group_id, $user_id ) {
    global $bp;

    if ( current_user_can( ‘manage_options’ ) ) {
    return;
    }

    $membership_total = count( BP_Groups_Member::get_membership_ids_for_user( $user_id ) );

    if ( $membership_total >= 4 ) {
    groups_leave_group( $group_id, $user_id )
    }

    }

    #325014
    Anonymous User 16480907
    Inactive

    @andrew_long15

    use this code.

    /**
    * Removes send invite tab according to Group Invitations setting.
    *
    * @since 2.2.0
    */
    function remove_send_invite_tab() {
    if ( ! bp_is_group() || ( bp_is_current_action( ‘admin’ ) && bp_action_variable( 0 ) ) || is_super_admin() ) {
    return;
    }

    // Add the admin subnav slug you want to hide in the following array.
    $hide_tabs = array(
    ‘send-invites’ => 1,
    );

    $parent_nav_slug = bp_get_current_group_slug();
    $current_group_id = bp_get_current_group_id();
    $invite_status = groups_get_groupmeta( $current_group_id, ‘invite_status’, true );
    if ( ‘admins’ === $invite_status || ‘mods’ === $invite_status ) {
    // Remove the nav items.
    foreach ( array_keys( $hide_tabs ) as $tab ) {
    bp_core_remove_subnav_item( $parent_nav_slug, $tab, ‘groups’ );
    }
    }

    // You may want to be sure the user can’t access.
    if ( ! empty( $hide_tabs[ bp_action_variable( 0 ) ] ) ) {
    bp_core_add_message( ‘No tienes suficientes permisos para acceder.’, ‘error’ );
    bp_core_redirect( bp_get_group_permalink( groups_get_current_group() ) );
    }
    }
    add_action( ‘bp_actions’, ‘remove_send_invite_tab’, 9 );

    #324369
    fullmetalworkshop
    Participant

    I’m getting an admin-ajax 403 error when clicking the Join Group button. It seems to be the switch case in the functions. It seems to be completely ignored somehow. Logging within any of the cases returns nothing at all. Also a quick note… it’s not every group. It’s only on random ones

    function bp_legacy_theme_ajax_joinleave_group() {
    
    	if ( ! bp_is_post_request() ) {
    		return;
    	}
    
    	// Cast gid as integer.
    	$group_id = (int) $_POST['gid'];
    
    	if ( groups_is_user_banned( bp_loggedin_user_id(), $group_id ) )
    		return;
    
    	if ( ! $group = groups_get_group( $group_id ) )
    		return;
    
    	// Client doesn't distinguish between different request types, so we infer from user status.
    	if ( groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) {
    		$request_type = 'leave_group';
    	} elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) {
    		$request_type = 'accept_invite';
    	} elseif ( 'private' === $group->status ) {
    		$request_type = 'request_membership';
    	} else {
    		$request_type = 'join_group';
    	}
    
    	// NOTE: WHY IS THIS BROKEN?!!?
    	switch ( $request_type ) {
    		case 'join_group' :
    			if ( ! bp_current_user_can( 'groups_join_group', array( 'group_id' => $group->id ) ) ) {
    				esc_html_e( 'Error joining group', 'buddypress' );
    			}
    
    			check_ajax_referer( 'groups_join_group' );
    
    			if ( ! groups_join_group( $group->id ) ) {
    				_e( 'Error joining group', 'buddypress' );
    			} else {
    				echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    			}
    		break;
    
    		case 'accept_invite' :
    			if ( ! bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) ) {
    				esc_html_e( 'Error accepting invitation', 'buddypress' );
    			}
    
    			check_ajax_referer( 'groups_accept_invite' );
    			if ( ! groups_accept_invite( bp_loggedin_user_id(), $group->id ) ) {
    				_e( 'Error requesting membership', 'buddypress' );
    			} else {
    				echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    			}
    		break;
    
    		case 'request_membership' :
    			check_ajax_referer( 'groups_request_membership' );
    
    			if ( ! groups_send_membership_request( [ 'user_id' => bp_loggedin_user_id(), 'group_id' => $group->id ] ) ) {
    				_e( 'Error requesting membership', 'buddypress' );
    			} else {
    				echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button disabled pending membership-requested" rel="membership-requested" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>';
    			}
    		break;
    
    		case 'leave_group' :
    			check_ajax_referer( 'groups_leave_group' );
    
    			if ( ! groups_leave_group( $group->id ) ) {
    				_e( 'Error leaving group', 'buddypress' );
    			} elseif ( 'public' === $group->status ) {
    				echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button join-group btn" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
    			} else {
    				echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button request-membership" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';
    			}
    		break;
    	}
    
    	exit;
    }
    #324294
    tazar64
    Participant

    Hi

    How can I find the meta names of the extra fields on the extended profile? I create extra fields but I don’t know their names, just id and group_id.
    I need meta names so I can use other plugins for registration, for example, or for PODS.
    By the way, PODS doesn’t seem to see the extended profile fields anywhere…

    #324238
    maustingraphics82
    Participant

    I think the issue is within this part of the code but posted everything in the message above.

    // Create a new user
    		$new_user_id = wp_insert_user( $userdata );
    
    		// GFCommon::log_debug( __METHOD__ . '(): form => ' . print_r( $birthdate, true ) );
    
    		if ( ! is_wp_error( $new_user_id ) ) {
    			groups_join_group( $group_id, $new_user_id );
    
    			// Make the user displayed as a staff on a clubhouse page
    			if ( $role === 'staff' ) {
    				$group_ids =  groups_get_user_groups( $new_user_id );
    				$group = groups_get_group( array( 'group_id' => $group_ids['groups'][0]) );
    				$group_id = $group->id;
    				groups_promote_member( $new_user_id, $group_id, 'admin' );
    			} else {
    				groups_demote_member( $new_user_id, $group_id );
    			}
    
    			if ( ! empty( $notification ) ) {
    				tml_send_new_user_notifications( $new_user_id, 'both' );
    			}
    
    			if ( ! empty( $birthdate ) ) {
    				$date = DateTime::createFromFormat('Y-m-d', $birthdate);
    				$date = $date->format('Ymd');
    
    				update_field('user_birthdate', $date, 'user_' . $new_user_id);
    			}
    		}
    maustingraphics82
    Participant

    I use gravity forms to create a new user from a groups tab and assign them to a group, based on the group that the group admin is adding them from. This was working just fine in BuddyPress version 8.0 but since upgrading to 10 it is no longer working. What am I missing?

    /**
     *  Add member form handler. This form is currently located under the Group Information tab
     */
    add_action( 'gform_after_submission', 'add_member_gform_handle', 10, 2 );
    function add_member_gform_handle( $entry, $form ) {
    	if ( $form['title'] === 'Add Member' ) {
    		$fields     = $form['fields'];
    		$first_name = rgar( $entry, '1' );
    		$last_name  = rgar( $entry, '2' );
    		$login      = rgar( $entry, '3' );
    		$password   = rgar( $entry, '4' );
    		$email 	    = rgar( $entry, '5' );
    		$group_id   = rgar( $entry, '6' );
    		$role       = rgar( $entry, '11' );
    		$notification = rgar( $entry, '9.1' );
    		$birthdate = rgar( $entry, '10' );
    
    		$userdata = array(
    			'user_login' => $login,
    			'user_pass' => $password,
    		);
    
    		if ( ! empty( $first_name ) ) {
    			$userdata['first_name'] = $first_name;
    		}
    		if ( ! empty( $last_name ) ) {
    			$userdata['last_name'] = $last_name;
    		}
    		if ( ! empty( $email ) ) {
    			$userdata['user_email'] = $email;
    		}
    		if ( ! empty( $role ) ) {
    			$userdata['role'] = $role;
    		}
    
    		// Create a new user
    		$new_user_id = wp_insert_user( $userdata );
    
    		// GFCommon::log_debug( __METHOD__ . '(): form => ' . print_r( $birthdate, true ) );
    
    		if ( ! is_wp_error( $new_user_id ) ) {
    			groups_join_group( $group_id, $new_user_id );
    
    			// Make the user displayed as a staff on a clubhouse page
    			if ( $role === 'staff' ) {
    				$group_ids =  groups_get_user_groups( $new_user_id );
    				$group = groups_get_group( array( 'group_id' => $group_ids['groups'][0]) );
    				$group_id = $group->id;
    				groups_promote_member( $new_user_id, $group_id, 'admin' );
    			} else {
    				groups_demote_member( $new_user_id, $group_id );
    			}
    
    			if ( ! empty( $notification ) ) {
    				tml_send_new_user_notifications( $new_user_id, 'both' );
    			}
    
    			if ( ! empty( $birthdate ) ) {
    				$date = DateTime::createFromFormat('Y-m-d', $birthdate);
    				$date = $date->format('Ymd');
    
    				update_field('user_birthdate', $date, 'user_' . $new_user_id);
    			}
    		}
    
    		// Delete form entry
    		// GFAPI::delete_entry( $entry['id'] );
    	}
    }
    
    /**
     * Add Member form validation
     */
    add_filter( "gform_validation_$clubnet_add_member_form_id", 'add_member_form_validation' );
    function add_member_form_validation( $validation_result ) {
    	$form = $validation_result['form'];
    	$login = rgpost( 'input_3' );
    	$email = rgpost( 'input_5' );
    	$send_notificaton = rgpost( 'input_9_1' );
     
        if ( ! empty( $login ) && get_user_by( 'login', $login ) ) {
            $validation_result['is_valid'] = false;
     
            //finding Field with ID and marking it as failed validation
            foreach( $form['fields'] as &$field ) {
                if ( $field->id == '3' ) {
                    $field->failed_validation = true;
                    $field->validation_message = 'The user with this login already exists.';
                    break;
                }
            } // foreach
        }
    
    	if ( ! empty( $email ) && get_user_by( 'email', $email ) ) {
            $validation_result['is_valid'] = false;
     
            //finding Field with ID and marking it as failed validation
            foreach( $form['fields'] as &$field ) {
                if ( $field->id == '5' ) {
                    $field->failed_validation = true;
                    $field->validation_message = 'The user with this email already exists.';
                    break;
                }
            } // foreach
        }
    
    	// GFCommon::log_debug( 'VALIDATION' . __METHOD__ . '(): form => ' . print_r( 'Empty', true ) );
    	// Email is required if we requested to send a email about user's account
    	if ( ! empty( $send_notificaton ) && empty( $email ) ) {
    		$validation_result['is_valid'] = false;
            //finding Field with ID and marking it as failed validation
            foreach( $form['fields'] as &$field ) {
    			if ( $field->id == '5' ) {
                    $field->failed_validation = true;
                    $field->validation_message = 'Email is required since you requested to send an email.';
                    break;
                }
            } // foreach
    	}
     
        //Assign modified $form object back to the validation result
        $validation_result['form'] = $form;
        return $validation_result;
    }
    
    /**
     * Role field
     */
    add_action( 'init', 'clubnet_add_role_field' );
    function clubnet_add_role_field( $form ) {
    	global $wp_roles;
    	global $clubnet_add_member_form_id;
    
        $all_roles = $wp_roles->roles;
        // $editable_roles = apply_filters('editable_roles', $all_roles);
    	// $roles_to_skip = array( 'administrator' );
    	$editable_roles = $all_roles;
    	$roles_to_display = array( 'mentor', 'member', 'youth_leader', 'alumni', 'staff' );
    	$choices = array();
    
    	foreach ( $editable_roles as $role => $role_data ) {
    		if ( ! in_array( $role, $roles_to_display ) ) {
    			continue;
    		}
    
    		$choice = array(
    			'text' => $role_data['name'],
    			'value' => $role
    		);
    
    		array_push( $choices, $choice );
    	}
    
    	// Reorder to make member role first
    	usort( $choices, function( $choice ) {
    		if ( $choice['text'] === 'Member' ) {
    			return -1;
    		}
    
    		return 1;
    	} );
    
    	$form = GFAPI::get_form( $clubnet_add_member_form_id );
    	
    	if ( ! $form ) {
    		return;
    	}
    
    	$label = 'User Role';
    	$field_idx = -1;
    	$field_id = -1;
    
    	foreach ($form['fields'] as $idx => $field) {
    		if ( $field->label === $label ) {
    			$field_idx = $idx;
    			$field_id  = $field->id;
    		}
    	}
    
    	if ( $field_idx === -1 ) {
    		$field_id = GFFormsModel::get_next_field_id( $form['fields'] );
    	}
    
    	$props = array( 
    		'id' => $field_id,
    		'label' => $label,
    		'type' => 'select',
    		'choices' => $choices,
    	); 
    
    	if ( $field_idx === -1 ) {
    		$field = GF_Fields::create( $props );
    		$form['fields'][] = $field;
    		GFAPI::update_form( $form );
    	} else if ( $form['fields'][$field_idx]->choices !== $choices ) {
    		$field = GF_Fields::create( $props );
    		$form['fields'][$field_idx] = $field;
    		GFAPI::update_form( $form );
    	}
    }
    
    #323912

    In reply to: Get group ID from slug

    resortstylebeanbags
    Participant

    I don’t know why, but I have found a solution. As ‘check_slug’ worked, I just took the code from that function, amended it to return the group id instead of the slug, and included it in my function – which worked. Be good to understand why none of the other functions worked though?

    
    function ofc_add_registrant_to_group($registration, $old_STS_ID, $new_STS_ID, $context) {
      
       global $wpdb;
     
       $user_id = get_current_user_id();
    
       if (! $registration instanceof EE_Registration ) {
            // No EE_Registration, get out
            return;
        }
       
        $event_id = $registration->event_ID();
        $subgroups = get_field('event_sub_group', $event_id);
    
        $slug = $subgroups[0]->post_name;
    
        // These two lines made the difference
        $bp = buddypress();
        $group_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name} WHERE slug = %s", $slug ) ); 
    
        if ( ! groups_is_user_member($user_id, $group_id )) {
           groups_join_group($group_id, $user_id);
        }
    }
    add_action('AHEE__EE_Registration__set_status__to_approved', 'ofc_add_registrant_to_group', 10, 4); 
    
    #323909

    In reply to: Get group ID from slug

    resortstylebeanbags
    Participant

    I have set up an Advanced Custom Field that is linked to the event, and the admin sets the group that the user should be added to on registration for the event. The field is called event_sub_group and it returns a WP_Post object. From that, I can get the slug of the group in the post_name. I was then trying to get the group ID using the slug, so I can add the user to the group. This is my current code.

    /Add user to buddyboss group when they register for an event
    function ofc_add_registrant_to_group($registration, $old_STS_ID, $new_STS_ID, $context) {
      
       global $bp, $wpdb;
    
       $user_id = get_current_user_id();
    
       if (! $registration instanceof EE_Registration ) {
            // No EE_Registration, get out
            return;
        }
       
        $event_id = $registration->event_ID();
        $subgroups = get_field('event_sub_group', $event_id);
        $slug = $subgroups[0]->post_name;
        
        $group_id = BP_Groups_Group::group_exists( $slug );
                 
       if ( ! groups_is_user_member($user_id, $group_id )) {
            $bp->groups->current_group = groups_get_group(array('group_id' => $group_id));
            groups_join_group($group_id, $user_id);
        }
    }
    add_action('AHEE__EE_Registration__set_status__to_approved', 'ofc_add_registrant_to_group', 10, 4); 

    BP_Groups_Group::group_exists( $slug ) returns nothing. If I use BP_Groups_Group::check_slug( $slug ) – it returns the correct slug name as expected.

    #323894
    resortstylebeanbags
    Participant

    I am trying to add a user to a group when they register to an event with event espresso. My code fires when a user successfully registers to the event. I can get the slug (which I assume is the post_name), but I just can’t seem to get the group id from that slug.

    I have tried multiple different ways, but I’m not overly experienced, so would really appreciate some help.

    $slug is successfully set to a string ‘capital-football-c-license-2022’

    Have tried:
    $group_id = BP_Groups_Group::get_id_from_slug($slug); //$group_id is empty
    $group = groups_get_group(array(‘slug’ => $slug)); //$group is empty

    I know the slug is correct as it matches the ‘slug’ field in BP_GROUPS in my database.

    Any help appreciated!

    #323498
    Thomas Maier
    Participant

    The following code works for me:

    function automatic_group_membership( $user_id ) {
       if( ! $user_id ) { 
    	   return false;
       }
     
       groups_invite_user( array( 'user_id' => $user_id, 'group_id' => $group_id ) );
    }
    add_action( 'bp_core_activated_user', 'automatic_group_membership' );
    add_action( 'user_register', 'automatic_group_membership' );

    You need to replace $group_id with the ID of the group you want to assign users to.
    I have not tested the code when inviting members as a non-admin. That might be a limitation. There is an optional is_confirmed argument that can be submitted with groups_invite_users. Maybe, setting it to true helps in such cases.

    #323416
    Mohd Umar
    Participant

    Try this,

    $activity = new BP_Activity_Activity( $activity_id );
    if ( is_object( $activity ) && 'activity_update' === $activity->type && 'groups' === $activity->component ) {
    	$group_id = $activity->item_id;
    }
    #323388
    Mohd Umar
    Participant

    Try this,

    $activity = new BP_Activity_Activity( $activity_id );
    if ( is_object( $activity ) && 'activity_update' === $activity->type && 'groups' === $activity->component ) {
    	$group_id = $activity->item_id;
    }
    #322401
    wackao
    Participant

    Contact me for custom plugin on this. You have to register a group meta and then from meta capture the data and then decide on this hook whether the user should join the group or not.

    do_action( ‘groups_join_group’, $group_id, $user_id );

Viewing 25 results - 1 through 25 (of 567 total)
Skip to toolbar