Automattic\WooCommerce\Blocks\BlockTypes

ProductFilterPrice::prepare_selected_filterspublicWC 1.0

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() code WC 9.9.4

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;
}