bp_include_group_by_context( object|bool $group = false, int|bool $user_id = false, string $context = 'normal' )

Determine whether a group should be included in results sets for a user in a specific context.

Description

Parameters

$group

(object|bool) (Optional) BP_Groups_Group object to check.

Default value: false

$user_id

(int|bool) (Optional) ID of a user to check group visibility for.

Default value: false

$context

(string) (Optional) 'normal' filters hidden groups only that the user doesn't belong to. 'activity' includes only groups for which the user should see the activity streams. 'exclude_hidden' filters all hidden groups out (for directories).

Default value: 'normal'

Return

(bool) True if group meets context requirements.

Source

File: bp-groups/bp-groups-template.php

function bp_include_group_by_context( $group = false, $user_id = false, $context = 'normal' ) {
	$include = false;
	if ( ! isset( $group->id ) ) {
		return $include;
	}

	if ( current_user_can( 'bp_moderate' ) ) {
		$include = true;
	}

	/*
	 * 'exclude_hidden' is useful on directories, where hidden groups
	 * are excluded by BP.
	 */
	if ( 'exclude_hidden' == $context ) {
		if ( 'hidden' != $group->status ) {
			$include = true;
		}
		/*
		 * 'activity' includes only groups for which the user can view the activity streams.
		 */
	} elseif ( 'activity' == $context ) {
		// For activity stream inclusion, require public status or membership.
		if ( 'public' == $group->status || groups_is_user_member( $user_id, $group->id ) ) {
			$include = true;
		}
		/*
		 * 'mygroups' is useful on user-specific directories, where only groups the
		 * user belongs to are returned, and the group status is irrelevant.
		 */
	} elseif ( 'mygroups' == $context ) {
		if ( groups_is_user_member( $user_id, $group->id ) ) {
			$include = true;
		}
	} elseif ( 'normal' == $context ) {
		if ( 'hidden' != $group->status || groups_is_user_member( $user_id, $group->id ) ) {
			$include = true;
		}
	}

	/**
	 * Filters whether this group should be included for this user and context combination.
	 *
	 * @since BuddyBoss 1.0.0
	 *
	 * @param bool            $include Whether to include this group.
	 * @param BP_Groups_Group $group   The group object in question.
	 * @param int             $user_id ID of user to check.
	 * @param string          $user_id Current context.
	 */
	return apply_filters( 'bp_include_group_by_context', $include, $group, $user_id, $context );
}

Changelog

Changelog
Version Description
BuddyBoss 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.