Automattic\WooCommerce\Blocks\BlockTypes

ProductDetails::inject_parsed_accordion_blocksprivateWC 1.0

Inject parsed accordion blocks.

Method of the class: ProductDetails{}

No Hooks.

Returns

Array. Parsed block.

Usage

// private - for code of main (parent) class only
$result = $this->inject_parsed_accordion_blocks( $parsed_block, $accordion_blocks );
$parsed_block(array) (required)
Parsed block.
$accordion_blocks(array) (required)
Accordion blocks.

ProductDetails::inject_parsed_accordion_blocks() code WC 10.7.0

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