WC_Product_Collection_Block_Tracking::get_query_filters_usage_data
Parse the collection query filters from the query attributes.
Method of the class: WC_Product_Collection_Block_Tracking{}
No Hooks.
Returns
Array
. The filters data for tracking.
Usage
// private - for code of main (parent) class only $result = $this->get_query_filters_usage_data( $block );
- $block(array) (required)
- The parsed block.
WC_Product_Collection_Block_Tracking::get_query_filters_usage_data() WC Product Collection Block Tracking::get query filters usage data code WC 9.9.4
private function get_query_filters_usage_data( $block ) { if ( ! isset( $block['attrs'] ) ) { return array(); } $query_attrs = $block['attrs']['query'] ?? array(); $filters = array( 'inherit' => 'no', 'order-by' => 'no', 'on-sale' => 'no', 'stock-status' => 'no', 'handpicked' => 'no', 'keyword' => 'no', 'attributes' => 'no', 'category' => 'no', 'tag' => 'no', 'featured' => 'no', 'created' => 'no', 'price' => 'no', ); if ( ! empty( $query_attrs['inherit'] ) && true === $query_attrs['inherit'] ) { $filters['inherit'] = 'yes'; } if ( ( ! empty( $query_attrs['order'] ) && 'asc' !== $query_attrs['order'] ) || ( ! empty( $query_attrs['orderBy'] ) && 'title' !== $query_attrs['orderBy'] ) ) { $filters['order-by'] = 'yes'; } if ( ! empty( $query_attrs['woocommerceOnSale'] ) ) { $filters['on-sale'] = 'yes'; } if ( ! empty( $query_attrs['woocommerceStockStatus'] ) ) { $stock_statuses = wc_get_product_stock_status_options(); $default_values = 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) ? array_diff_key( $stock_statuses, array( ProductStockStatus::OUT_OF_STOCK => '' ) ) : $stock_statuses; $default_diff = array_diff( array_keys( $default_values ), $query_attrs['woocommerceStockStatus'] ); if ( ! empty( $default_diff ) ) { $filters['stock-status'] = 'yes'; } } if ( ! empty( $query_attrs['woocommerceAttributes'] ) ) { $filters['attributes'] = 'yes'; } if ( ! empty( $query_attrs['timeFrame'] ) ) { $filters['created'] = 'yes'; } if ( ! empty( $query_attrs['taxQuery'] ) ) { if ( ! empty( $query_attrs['taxQuery']['product_cat'] ) ) { $filters['category'] = 'yes'; } if ( ! empty( $query_attrs['taxQuery']['product_tag'] ) ) { $filters['tag'] = 'yes'; } } if ( ! empty( $query_attrs['woocommerceHandPickedProducts'] ) ) { $filters['handpicked'] = 'yes'; } if ( ! empty( $query_attrs['search'] ) ) { $filters['keyword'] = 'yes'; } if ( ! empty( $query_attrs['featured'] ) ) { $filters['featured'] = 'yes'; } if ( ! empty( $query_attrs['priceRange'] ) ) { $filters['price'] = 'yes'; } return $filters; }