Automattic\WooCommerce\Blocks\Utils
BlockTemplateUtils::has_block_including_patterns()
Determines whether the provided $blocks contains any of the $block_names, or if they contain a pattern that contains any of the $block_names.
Method of the class: BlockTemplateUtils{}
No Hooks.
Return
true|false
. Whether the content contains the specified block.
Usage
$result = BlockTemplateUtils::has_block_including_patterns( $block_names, $blocks );
- $block_names(string[]) (required)
- Full block types to look for.
- $blocks(WP_Block[]) (required)
- Array of block objects.
BlockTemplateUtils::has_block_including_patterns() BlockTemplateUtils::has block including patterns code WC 9.6.1
public static function has_block_including_patterns( $block_names, $blocks ) { $flattened_blocks = self::flatten_blocks( $blocks ); foreach ( $flattened_blocks as &$block ) { if ( isset( $block['blockName'] ) && in_array( $block['blockName'], $block_names, true ) ) { return true; } if ( 'core/pattern' === $block['blockName'] && isset( $block['attrs']['slug'] ) ) { $registry = WP_Block_Patterns_Registry::get_instance(); $pattern = $registry->get_registered( $block['attrs']['slug'] ); $pattern_blocks = parse_blocks( $pattern['content'] ); if ( self::has_block_including_patterns( $block_names, $pattern_blocks ) ) { return true; } } } return false; }