Automattic\WooCommerce\Blocks\BlockTypes
ProductFilterPrice::prepare_selected_filters
Prepare the active filter items.
Method of the class: ProductFilterPrice{}
No Hooks.
Returns
Array. Active filters items.
Usage
$ProductFilterPrice = new ProductFilterPrice(); $ProductFilterPrice->prepare_selected_filters( $items, $params );
- $items(array) (required)
- The active filter items.
- $params(array) (required)
- The query param parsed from the URL.
ProductFilterPrice::prepare_selected_filters() ProductFilterPrice::prepare selected filters code WC 10.6.2
public function prepare_selected_filters( $items, $params ) {
$min_price = intval( $params[ self::MIN_PRICE_QUERY_VAR ] ?? 0 );
$max_price = intval( $params[ self::MAX_PRICE_QUERY_VAR ] ?? 0 );
$formatted_min_price = $min_price ? html_entity_decode( wp_strip_all_tags( wc_price( $min_price, array( 'decimals' => 0 ) ) ) ) : null;
$formatted_max_price = $max_price ? html_entity_decode( wp_strip_all_tags( wc_price( $max_price, array( 'decimals' => 0 ) ) ) ) : null;
if ( ! $formatted_min_price && ! $formatted_max_price ) {
return $items;
}
$item = array(
'type' => 'price',
);
if ( $formatted_min_price && $formatted_max_price ) {
$item['activeLabel'] = sprintf(
/* translators: %1$s and %2$s are the formatted minimum and maximum prices respectively. */
__( 'Price: %1$s - %2$s', 'woocommerce' ),
$formatted_min_price,
$formatted_max_price
);
$item['value'] = "{$min_price}|{$max_price}";
}
if ( ! $formatted_min_price ) {
/* translators: %s is the formatted maximum price. */
$item['activeLabel'] = sprintf( __( 'Price: Up to %s', 'woocommerce' ), $formatted_max_price );
$item['value'] = "|{$max_price}";
}
if ( ! $formatted_max_price ) {
/* translators: %s is the formatted minimum price. */
$item['activeLabel'] = sprintf( __( 'Price: From %s', 'woocommerce' ), $formatted_min_price );
$item['value'] = "{$min_price}|";
}
$items[] = $item;
return $items;
}