Automattic\WooCommerce\EmailEditor\Engine\Renderer\ContentRenderer
Blocks_Registry{}
Class Blocks_Registry
Хуков нет.
Использование
$Blocks_Registry = new Blocks_Registry(); // use class methods
Методы
- public add_block_renderer( string $block_name, Block_Renderer $renderer )
- public add_fallback_renderer( Block_Renderer $renderer )
- public get_block_renderer( string $block_name )
- public get_fallback_renderer()
- public has_block_renderer( string $block_name )
- public remove_all_block_renderers()
- private remove_block_renderer( string $block_name )
Код Blocks_Registry{} Blocks Registry{} WC 10.0.2
class Blocks_Registry { /** * Fallback renderer. * * @var ?Block_Renderer $fallback_renderer */ private $fallback_renderer = null; /** * Array of block renderers. * * @var Block_Renderer[] $block_renderers_map */ private array $block_renderers_map = array(); /** * Adds block renderer to the registry. * * @param string $block_name Block name. * @param Block_Renderer $renderer Block renderer. */ public function add_block_renderer( string $block_name, Block_Renderer $renderer ): void { $this->block_renderers_map[ $block_name ] = $renderer; } /** * Adds fallback renderer to the registry. * * @param Block_Renderer $renderer Fallback renderer. */ public function add_fallback_renderer( Block_Renderer $renderer ): void { $this->fallback_renderer = $renderer; } /** * Checks if block renderer is registered. * * @param string $block_name Block name. * @return bool */ public function has_block_renderer( string $block_name ): bool { return isset( $this->block_renderers_map[ $block_name ] ); } /** * Returns block renderer by block name. * * @param string $block_name Block name. * @return Block_Renderer|null */ public function get_block_renderer( string $block_name ): ?Block_Renderer { return $this->block_renderers_map[ $block_name ] ?? null; } /** * Returns fallback renderer. * * @return Block_Renderer|null */ public function get_fallback_renderer(): ?Block_Renderer { return $this->fallback_renderer; } /** * Removes all block renderers from the registry. */ public function remove_all_block_renderers(): void { foreach ( array_keys( $this->block_renderers_map ) as $block_name ) { $this->remove_block_renderer( $block_name ); } } /** * Removes block renderer from the registry. * * @param string $block_name Block name. */ private function remove_block_renderer( string $block_name ): void { unset( $this->block_renderers_map[ $block_name ] ); } }