bp_get_possible_parent_groups( int|bool $group_id = false, int|bool $user_id = false )
Get an array of possible parent group ids for a specific group and user.
Description
To be a candidate for group parenthood, the group cannot be a descendent of this group, and the user must be allowed to create child groups in that group.
Parameters
- $group_id
-
(Optional) ID of the group.
Default value: false
- $user_id
-
(Optional) ID of a user to check group visibility for.
Default value: false
Return
(array) Array of group objects.
Source
File: bp-groups/bp-groups-template.php
2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 | function bp_get_possible_parent_groups( $group_id = false, $user_id = false ) { /* * Passing a group id of 0 would find all top-level groups, which could be * intentional. We only try to find the current group when the $group_id is false. */ if ( false === $group_id ) { $group_id = bp_get_current_group_id(); if ( ! $group_id ) { // If we can't resolve the group_id, don't proceed with a zero value. return array (); } } if ( false === $user_id ) { $user_id = bp_loggedin_user_id(); if ( ! $user_id ) { // If we can't resolve the user_id, don't proceed with a zero value. return array (); } } // First, get a list of descendants (don't pass a user id--we want them all). $descendants = bp_get_descendent_groups( $group_id ); $exclude_ids = wp_list_pluck( $descendants , 'id' ); // Also exclude the current group. $exclude_ids [] = $group_id ; $args = []; $args = bp_parse_args( $args , array ( 'orderby' => 'name' , 'order' => 'ASC' , 'populate_extras' => false, 'exclude' => $exclude_ids , // Exclude descendants and this group. 'show_hidden' => true, 'per_page' => false, // Do not limit the number returned. 'page' => false, // Do not limit the number returned. 'user_id' => $user_id , // get loggedin users groups ), 'get_possible_parent_groups' ); $possible_parents = groups_get_groups( $args ); return $possible_parents [ 'groups' ]; } |
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.