Automattic\WooCommerce\StoreApi\Utilities
ProductQueryFilters::get_taxonomy_counts
Get taxonomy counts for the current products.
Метод класса: ProductQueryFilters{}
Хуков нет.
Возвращает
array. termId=>count pairs.
Использование
$ProductQueryFilters = new ProductQueryFilters(); $ProductQueryFilters->get_taxonomy_counts( $request, $taxonomies );
- $request(WP_REST_Request) (обязательный)
- The request object.
- $taxonomies(массив)
- Taxonomies to count.
По умолчанию:[]
Код ProductQueryFilters::get_taxonomy_counts() ProductQueryFilters::get taxonomy counts WC 11.2.2
public function get_taxonomy_counts( $request, $taxonomies = [] ) {
// Remove paging and sorting params from the request.
$request->set_param( 'page', null );
$request->set_param( 'per_page', null );
$request->set_param( 'order', null );
$request->set_param( 'orderby', null );
// Convert request to query_vars for FilterData.
$product_query = new ProductQuery();
$query_vars = $product_query->prepare_objects_query( $request );
// Use FilterData with ProductQuery as QueryClausesGenerator.
$container = wc_get_container();
$filter_data_provider = $container->get( \Automattic\WooCommerce\Internal\ProductFilters\FilterDataProvider::class );
$filter_data = $filter_data_provider->with( $product_query );
$all_counts = array();
// Get counts for each taxonomy individually.
foreach ( $taxonomies as $taxonomy ) {
$counts = $filter_data->get_taxonomy_counts( $query_vars, $taxonomy );
$all_counts = $all_counts + $counts; // Use + operator to preserve keys.
}
return $all_counts;
}