BP_Groups_Member_Suggestions::get_suggestions()
Find and return a list of username suggestions that match the query.
Description
Return
(array|WP_Error) Array of results. If there were problems, returns a WP_Error object.
Source
File: bp-groups/classes/class-bp-groups-member-suggestions.php
public function get_suggestions() { $user_query = array( 'count_total' => '', // Prevents total count. 'type' => 'alphabetical', 'group_role' => array( 'admin', 'member', 'mod' ), 'page' => 1, 'per_page' => $this->args['limit'], 'search_terms' => $this->args['term'], 'search_wildcard' => 'right', ); // Only return matches of friends of this user. if ( $this->args['only_friends'] && is_user_logged_in() ) { $user_query['user_id'] = get_current_user_id(); } // Positive Group IDs will restrict the search to members in that group. if ( $this->args['group_id'] > 0 ) { $user_query['group_id'] = $this->args['group_id']; // Negative Group IDs will restrict the search to members in every other group. } else { $group_query = array( 'count_total' => '', // Prevents total count. 'type' => 'alphabetical', 'group_id' => absint( $this->args['group_id'] ), 'group_role' => array( 'admin', 'member', 'mod' ), 'page' => 1, ); $group_users = new BP_Group_Member_Query( $group_query ); if ( $group_users->results ) { $user_query['exclude'] = wp_list_pluck( $group_users->results, 'ID' ); } else { $user_query['include'] = array( 0 ); } } /** * Filters the arguments for the user query for the Suggestion API. * * @since BuddyPress 2.1.0 * * @param array $user_query Array of arguments for the query. * @param BP_Groups_Member_Suggestions $this Instance of the current suggestion class. */ $user_query = apply_filters( 'bp_groups_member_suggestions_query_args', $user_query, $this ); if ( is_wp_error( $user_query ) ) { return $user_query; } if ( isset( $user_query['group_id'] ) ) { $user_query = new BP_Group_Member_Query( $user_query ); } else { $user_query = new BP_User_Query( $user_query ); } $results = array(); foreach ( $user_query->results as $user ) { $result = new stdClass(); $result->ID = $user->user_nicename; $result->image = bp_core_fetch_avatar( array( 'html' => false, 'item_id' => $user->ID ) ); $result->name = bp_core_get_user_displayname( $user->ID ); $result->user_id = $user->ID; $results[] = $result; } /** * Filters the results of the member suggestions user query. * * @since BuddyPress 2.1.0 * * @param array $results Array of member suggestions. * @param BP_Groups_Member_Suggestions $this Instance of the current suggestion class. */ return apply_filters( 'bp_groups_member_suggestions_get_suggestions', $results, $this ); }
Changelog
Version | Description |
---|---|
BuddyPress 2.1.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.