HEX
Server: Apache
System: Linux srv674466.hstgr.cloud 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jan 7 17:08:27 EST 2025 x86_64
User: rialindia (1055)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/rialindia/public_html/wp-content/plugins/popup-maker/classes/Utils/Blocks.php
<?php
/**
 * Block utilities.
 *
 * @since       1.14
 * @package     PUM
 * @copyright   Copyright (c) 2020, Code Atlantic LLC
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class PUM_Utils_Blocks
 */
class PUM_Utils_Blocks {

	/**
	 * Find blocks with matching name in given list of blocks.
	 *
	 * Recursively searches through WordPress block structures, including nested blocks
	 * within core/columns and core/column containers.
	 *
	 * @param array<string, mixed>[] $blocks Array of WordPress block structures.
	 * @param string                 $search_name Block name to look for (supports wildcards like 'pum/*').
	 *
	 * @return array<string, mixed>[] Array of matching WordPress blocks.
	 */
	public static function find_blocks( $blocks, $search_name = 'pum/*' ) {
		$found_blocks = [];

		foreach ( $blocks as $block ) {
			if ( in_array( $block['blockName'], [ 'core/columns', 'core/column' ], true ) ) {
				$found_blocks = array_merge( $found_blocks, self::find_blocks( $block['innerBlocks'], $search_name ) );
			}

			if ( $search_name === $block['blockName'] ) {
				$found_blocks[] = $block;
			}
		}

		return $found_blocks;
	}
}