LLMS_REST_Controller::prepare_collection_query_search_args( array $prepared, WP_REST_Request $request )
Format search query arguments to retrieve a collection of objects.
Parameters Parameters
- $prepared
-
(array) (Required) Array of collection arguments.
- $request
-
(WP_REST_Request) (Required) Request object.
Return Return
(array|WP_Error)
Source Source
File: libraries/lifterlms-rest/includes/abstracts/class-llms-rest-controller.php
$prepared = $this->map_params_to_query_args( $prepared, $registered, $request );
return $prepared;
}
/**
* Map schema to query arguments to retrieve a collection of objects.
*
* @since 1.0.0-beta.12
*
* @param array $prepared Array of collection arguments.
* @param array $registered Registered collection params.
* @param WP_REST_Request $request Full details about the request.
* @return array|WP_Error
*/
protected function map_params_to_query_args( $prepared, $registered, $request ) {
return $prepared;
}
/**
* Format search query arguments to retrieve a collection of objects.
*
* @since 1.0.0-beta.12
* @since 1.0.0-beta.21 Return an error if requesting a list ordered by 'relevance' without providing a search string.
*
* @param array $prepared Array of collection arguments.
* @param WP_REST_Request $request Request object.
* @return array|WP_Error
*/
protected function prepare_collection_query_search_args( $prepared, $request ) {
// Search?
if ( ! empty( $prepared['search'] ) ) {
if ( ! empty( $this->search_columns_mapping ) ) {
if ( empty( $prepared['search_columns'] ) ) {
return llms_rest_bad_request_error( __( 'You must provide a valid set of columns to search into.', 'lifterlms' ) );
}
// Filter search columns by context.
$search_columns = array_keys( $this->filter_response_by_context( array_flip( $prepared['search_columns'] ), $request['context'] ) );
// Check if one of more unallowed search columns have been provided as request query params (not merged with defaults).
if ( ! empty( $request->get_query_params()['search_columns'] ) ) {
$forbidden_columns = array_diff( $prepared['search_columns'], $search_columns );
if ( ! empty( $forbidden_columns ) ) {
return llms_rest_authorization_required_error(
sprintf(
// Translators: %1$s comma separated list of search columns.
__( 'You are not allowed to search into the provided column(s): %1$s', 'lifterlms' ),
implode( ',', $forbidden_columns )
)
);
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.21 | Return an error if requesting a list ordered by 'relevance' without providing a search string. |
| 1.0.0-beta.12 | Introduced. |