woocommerce_pre_product_filter_data
Allows offloading the filter data to external services like Elasticsearch.
Usage
add_filter( 'woocommerce_pre_product_filter_data', 'wp_kama_woocommerce_pre_product_filter_data_filter', 10, 4 );
/**
* Function for `woocommerce_pre_product_filter_data` filter-hook.
*
* @param array $results The results for current query.
* @param string $filter_type The type of filter. Accepts price|stock|rating|attribute.
* @param array $query_vars The query arguments to calculate the filter data.
* @param array $extra Some filter types require extra arguments for calculation, like attribute.
*
* @return array
*/
function wp_kama_woocommerce_pre_product_filter_data_filter( $results, $filter_type, $query_vars, $extra ){
// filter...
return $results;
}
- $results(array)
- The results for current query.
- $filter_type(string)
- The type of filter. Accepts price|stock|rating|attribute.
- $query_vars(array)
- The query arguments to calculate the filter data.
- $extra(array)
- Some filter types require extra arguments for calculation, like attribute.
Changelog
| Since 9.9.0 | Introduced. |
Where the hook is called
woocommerce_pre_product_filter_data
woocommerce_pre_product_filter_data
woocommerce_pre_product_filter_data
woocommerce_pre_product_filter_data
woocommerce_pre_product_filter_data
woocommerce/src/Internal/ProductFilters/FilterData.php 64
$pre_filter_counts = apply_filters( 'woocommerce_pre_product_filter_data', null, 'price', $query_vars, array() );
woocommerce/src/Internal/ProductFilters/FilterData.php 129
$pre_filter_counts = apply_filters( 'woocommerce_pre_product_filter_data', null, 'stock', $query_vars, array() ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingSinceComment
woocommerce/src/Internal/ProductFilters/FilterData.php 190
$pre_filter_counts = apply_filters( 'woocommerce_pre_product_filter_data', null, 'rating', $query_vars, array() ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingSinceComment
woocommerce/src/Internal/ProductFilters/FilterData.php 250
$pre_filter_counts = apply_filters( 'woocommerce_pre_product_filter_data', null, 'attribute', $query_vars, array( 'taxonomy' => $attribute_to_count ) ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingSinceComment
woocommerce/src/Internal/ProductFilters/FilterData.php 317
$pre_filter_counts = apply_filters( 'woocommerce_pre_product_filter_data', null, 'taxonomy', $query_vars, array( 'taxonomy' => $taxonomy_to_count ) );