Automattic\WooCommerce\Blocks\Utils

BlockTemplateUtils::flatten_blocks()public staticWC 1.0

Returns an array containing the references of the passed blocks and their inner blocks.

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

Хуков нет.

Возвращает

Массив. block references to the passed blocks and their inner blocks.

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

$result = BlockTemplateUtils::flatten_blocks( $blocks );
$blocks(массив) (обязательный) (передается по ссылке — &)
array of blocks.

Код BlockTemplateUtils::flatten_blocks() WC 8.7.0

public static function flatten_blocks( &$blocks ) {
	$all_blocks = array();
	$queue      = array();
	foreach ( $blocks as &$block ) {
		$queue[] = &$block;
	}
	$queue_count = count( $queue );

	while ( $queue_count > 0 ) {
		$block = &$queue[0];
		array_shift( $queue );
		$all_blocks[] = &$block;

		if ( ! empty( $block['innerBlocks'] ) ) {
			foreach ( $block['innerBlocks'] as &$inner_block ) {
				$queue[] = &$inner_block;
			}
		}

		$queue_count = count( $queue );
	}

	return $all_blocks;
}