Automattic\WooCommerce\Blocks\BlockTypes

ProductQuery::get_product_attributes_query()privateWC 1.0

Return the tax_query for the requested attributes

Method of the class: ProductQuery{}

No Hooks.

Return

Array.

Usage

// private - for code of main (parent) class only
$result = $this->get_product_attributes_query( $attributes );
$attributes(array)
Attributes and their terms.
Default: array()

ProductQuery::get_product_attributes_query() code WC 9.5.1

private function get_product_attributes_query( $attributes = array() ) {
	$grouped_attributes = array_reduce(
		$attributes,
		function ( $carry, $item ) {
			$taxonomy = sanitize_title( $item['taxonomy'] );

			if ( ! key_exists( $taxonomy, $carry ) ) {
				$carry[ $taxonomy ] = array(
					'field'    => 'term_id',
					'operator' => 'IN',
					'taxonomy' => $taxonomy,
					'terms'    => array( $item['termId'] ),
				);
			} else {
				$carry[ $taxonomy ]['terms'][] = $item['termId'];
			}

			return $carry;
		},
		array()
	);

	return array(
		'tax_query' => array_values( $grouped_attributes ),
	);
}