Automattic\WooCommerce\Blocks\BlockTypes
ProductQuery::get_filter_by_taxonomies_query()
Return a query to filter products by taxonomies (product categories, product tags, etc.)
For example: User could provide "Product Categories" using "Filters" ToolsPanel available in Inspector Controls. We use this function to extract it's query from $tax_query.
For example, this is how the query for product categories will look like in $tax_query array: Array
( [taxonomy] => product_cat [terms] => Array ( [0] => 36 ) )
For product categories, taxonomy would be "product_tag"
Метод класса: ProductQuery{}
Хуков нет.
Возвращает
Массив
. Query to filter products by taxonomies.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_filter_by_taxonomies_query( $query ): array;
- $query(массив) (обязательный)
- WP_Query.
Код ProductQuery::get_filter_by_taxonomies_query() ProductQuery::get filter by taxonomies query WC 7.7.2
private function get_filter_by_taxonomies_query( $query ): array { if ( ! isset( $query['tax_query'] ) || ! is_array( $query['tax_query'] ) ) { return []; } $tax_query = $query['tax_query']; /** * Get an array of taxonomy names associated with the "product" post type because * we also want to include custom taxonomies associated with the "product" post type. */ $product_taxonomies = get_taxonomies( array( 'object_type' => array( 'product' ) ), 'names' ); $result = array_filter( $tax_query, function( $item ) use ( $product_taxonomies ) { return isset( $item['taxonomy'] ) && in_array( $item['taxonomy'], $product_taxonomies, true ); } ); return ! empty( $result ) ? [ 'tax_query' => $result ] : []; }