BP_REST_Members_Endpoint::rest_bp_ps_search( array $request )
Returns BuddyBoss Profile Search results.
Description
Parameters
- $request
-
(Required) Array of filter's data.
Return
(array)
Source
File: bp-members/classes/class-bp-rest-members-endpoint.php
public function rest_bp_ps_search( $request ) { $results = array( 'users' => array( 0 ), 'validated' => true, ); $fields = bp_ps_parse_request( $request ); $copied_arr = array(); foreach ( $fields as $f ) { if ( ! isset( $f->filter ) ) { continue; } if ( ! is_callable( $f->search ) ) { continue; } $f = apply_filters( 'bp_ps_field_before_query', $f ); $found = call_user_func( $f->search, $f ); $found = apply_filters( 'bp_ps_field_search_results', $found, $f ); $copied_arr = $found; if ( isset( $copied_arr ) && ! empty( $copied_arr ) ) { foreach ( $copied_arr as $key => $user ) { $field_visibility = xprofile_get_field_visibility_level( intval( $f->id ), intval( $user ) ); if ( 'adminsonly' === $field_visibility && ! current_user_can( 'administrator' ) ) { $key = array_search( $user, $found, true ); if ( false !== $key ) { unset( $found[ $key ] ); } } if ( 'friends' === $field_visibility && ! current_user_can( 'administrator' ) && false === friends_check_friendship( intval( $user ), get_current_user_id() ) ) { $key = array_search( $user, $found, true ); if ( false !== $key ) { unset( $found[ $key ] ); } } } } $match_all = apply_filters( 'bp_ps_match_all', true ); if ( $match_all ) { $users = isset( $users ) ? array_intersect( $users, $found ) : $found; if ( count( $users ) === 0 ) { return $results; } } else { $users = isset( $users ) ? array_merge( $users, $found ) : $found; } } if ( isset( $users ) ) { $results['users'] = $users; } else { $results['validated'] = false; } return $results; }
Changelog
Version | Description |
---|---|
0.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.