Automattic\WooCommerce\Blocks\BlockTypes

ProductFilterStatus::prepare_selected_filterspublicWC 1.0

Prepare the active filter items.

Method of the class: ProductFilterStatus{}

No Hooks.

Returns

Array. Active filters items.

Usage

$ProductFilterStatus = new ProductFilterStatus();
$ProductFilterStatus->prepare_selected_filters( $items, $params );
$items(array) (required)
The active filter items.
$params(array) (required)
The query param parsed from the URL.

ProductFilterStatus::prepare_selected_filters() code WC 10.7.0

public function prepare_selected_filters( $items, $params ) {
	$status_options = array_merge(
		wc_get_product_stock_status_options(),
		// On sale and Featured status are declared here.
		array()
	);

	if ( empty( $params[ self::STOCK_STATUS_QUERY_VAR ] ) ) {
		return $items;
	}

	$active_statuses = array_filter(
		array_map( 'trim', explode( ',', $params[ self::STOCK_STATUS_QUERY_VAR ] ) ),
		function ( $status ) use ( $status_options ) {
			return array_key_exists( $status, $status_options );
		}
	);

	if ( empty( $active_statuses ) ) {
		return $items;
	}

	foreach ( $active_statuses as $status ) {
		$items[] = array(
			'type'        => 'status',
			'value'       => $status,
			// translators: %s: status.
			'activeLabel' => sprintf( __( 'Status: %s', 'woocommerce' ), $status_options[ $status ] ),
		);
	}

	return $items;
}