Automattic\WooCommerce\StoreApi\Routes\V1
ProductCollectionData::get_route_response()
Get a collection of posts and add the post title filter option to \WP_Query.
Метод класса: ProductCollectionData{}
Хуков нет.
Возвращает
\WP_REST_Response
.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->get_route_response( $request );
- $request(\WP_REST_Request) (обязательный)
- Request object.
Код ProductCollectionData::get_route_response() ProductCollectionData::get route response WC 8.1.1
protected function get_route_response( \WP_REST_Request $request ) { $data = [ 'min_price' => null, 'max_price' => null, 'attribute_counts' => null, 'stock_status_counts' => null, 'rating_counts' => null, ]; $filters = new ProductQueryFilters(); if ( ! empty( $request['calculate_price_range'] ) ) { $filter_request = clone $request; $filter_request->set_param( 'min_price', null ); $filter_request->set_param( 'max_price', null ); $price_results = $filters->get_filtered_price( $filter_request ); $data['min_price'] = $price_results->min_price; $data['max_price'] = $price_results->max_price; } if ( ! empty( $request['calculate_stock_status_counts'] ) ) { $filter_request = clone $request; $counts = $filters->get_stock_status_counts( $filter_request ); $data['stock_status_counts'] = []; foreach ( $counts as $key => $value ) { $data['stock_status_counts'][] = (object) [ 'status' => $key, 'count' => $value, ]; } } if ( ! empty( $request['calculate_attribute_counts'] ) ) { foreach ( $request['calculate_attribute_counts'] as $attributes_to_count ) { if ( ! isset( $attributes_to_count['taxonomy'] ) ) { continue; } $counts = $filters->get_attribute_counts( $request, $attributes_to_count['taxonomy'] ); foreach ( $counts as $key => $value ) { $data['attribute_counts'][] = (object) [ 'term' => $key, 'count' => $value, ]; } } } if ( ! empty( $request['calculate_rating_counts'] ) ) { $filter_request = clone $request; $counts = $filters->get_rating_counts( $filter_request ); $data['rating_counts'] = []; foreach ( $counts as $key => $value ) { $data['rating_counts'][] = (object) [ 'rating' => $key, 'count' => $value, ]; } } return rest_ensure_response( $this->schema->get_item_response( $data ) ); }