MailPoet\EmailEditor\Engine\Templates
Templates_Registry{}
Registry for email templates.
Hooks from the class
Usage
$Templates_Registry = new Templates_Registry(); // use class methods
Methods
- public get_all()
- public get_by_name( string $name )
- public get_by_slug( string $slug )
- public initialize()
- public register( Template $template )
Templates_Registry{} Templates Registry{} code WC 9.8.1
class Templates_Registry { /** * List of registered templates. * * @var Template[] */ private $templates = array(); /** * Initialize the template registry. * This method should be called only once. * * @return void */ public function initialize(): void { apply_filters( 'mailpoet_email_editor_register_templates', $this ); } /** * Register a template instance in the registry. * * @param Template $template The template to register. * @return void */ public function register( Template $template ): void { // The function was added in WordPress 6.7. We can remove this check after we drop support for WordPress 6.6. if ( ! function_exists( 'register_block_template' ) ) { return; } if ( ! \WP_Block_Templates_Registry::get_instance()->is_registered( $template->get_name() ) ) { // skip registration if the template was already registered. register_block_template( $template->get_name(), array( 'title' => $template->get_title(), 'description' => $template->get_description(), 'content' => $template->get_content(), 'post_types' => $template->get_post_types(), ) ); $this->templates[ $template->get_name() ] = $template; } } /** * Retrieve a template by its name. * Example: get_by_name( 'mailpoet//email-general' ) will return the instance of Template with identical name. * * @param string $name The name of the template. * @return Template|null The template object or null if not found. */ public function get_by_name( string $name ): ?Template { return $this->templates[ $name ] ?? null; } /** * Retrieve a template by its slug. * Example: get_by_slug( 'email-general' ) will return the instance of Template with identical slug. * * @param string $slug The slug of the template. * @return Template|null The template object or null if not found. */ public function get_by_slug( string $slug ): ?Template { foreach ( $this->templates as $template ) { if ( $template->get_slug() === $slug ) { return $template; } } return null; } /** * Retrieve all registered templates. * * @return array List of all registered templates. */ public function get_all() { return $this->templates; } }