Automattic\WooCommerce\Blocks\BlockTypes

ProductDetails::inject_parsed_accordion_blocksprivateWC 1.0

Inject parsed accordion blocks.

Метод класса: ProductDetails{}

Хуков нет.

Возвращает

Массив. Parsed block.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->inject_parsed_accordion_blocks( $parsed_block, $accordion_blocks );
$parsed_block(массив) (обязательный)
Parsed block.
$accordion_blocks(массив) (обязательный)
Accordion blocks.

Код ProductDetails::inject_parsed_accordion_blocks() WC 10.9.1

private function inject_parsed_accordion_blocks( $parsed_block, $accordion_blocks ) {
	if ( 'core/accordion' === $parsed_block['blockName'] || 'woocommerce/accordion-group' === $parsed_block['blockName'] ) {
		$parsed_block['innerBlocks']  = array_merge( $parsed_block['innerBlocks'], $accordion_blocks );
		$parsed_block['innerBlocks']  = array_values( array_filter( $parsed_block['innerBlocks'] ) );
		$opening_tag                  = reset( $parsed_block['innerContent'] );
		$closing_tag                  = end( $parsed_block['innerContent'] );
		$parsed_block['innerContent'] = array_merge(
			array( $opening_tag ),
			array_fill( 0, count( $parsed_block['innerBlocks'] ), null ),
			array( $closing_tag )
		);
		return $parsed_block;
	}

	foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) {
		$parsed_block['innerBlocks'][ $key ] = $this->inject_parsed_accordion_blocks( $inner_block, $accordion_blocks );
	}

	return $parsed_block;
}