Refactor initialization of the email editor

This changes how the editor is initialized. The integration initialization class
doesn't get the engine class anymore, but integration is initialized via
mailpoet_email_editor_initialized action triggered from the engine.

This allows multiple integrations to hook into the engine.
[MAILPOET-5540]
This commit is contained in:
Rostislav Wolny
2023-08-22 16:45:57 +02:00
committed by Jan Lysý
parent 2517023ad0
commit b70ad064c7
4 changed files with 15 additions and 9 deletions

View File

@@ -11,7 +11,8 @@ use MailPoet\Automation\Integrations\MailPoet\MailPoetIntegration;
use MailPoet\Automation\Integrations\WooCommerce\WooCommerceIntegration;
use MailPoet\Cron\CronTrigger;
use MailPoet\Cron\DaemonActionSchedulerRunner;
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as MailpoetEmailEditorIntegration;
use MailPoet\InvalidStateException;
use MailPoet\Migrator\Cli as MigratorCli;
use MailPoet\PostEditorBlocks\PostEditorBlock;
@@ -122,6 +123,9 @@ class Initializer {
/** @var EmailEditor */
private $emailEditor;
/** @var MailpoetEmailEditorIntegration */
private $mailpoetEmailEditorIntegration;
/** @var Url */
private $urlHelper;
@@ -160,6 +164,7 @@ class Initializer {
PersonalDataExporters $personalDataExporters,
DaemonActionSchedulerRunner $actionSchedulerRunner,
EmailEditor $emailEditor,
MailpoetEmailEditorIntegration $mailpoetEmailEditorIntegration,
Url $urlHelper
) {
$this->rendererFactory = $rendererFactory;
@@ -192,6 +197,7 @@ class Initializer {
$this->personalDataExporters = $personalDataExporters;
$this->actionSchedulerRunner = $actionSchedulerRunner;
$this->emailEditor = $emailEditor;
$this->mailpoetEmailEditorIntegration = $mailpoetEmailEditorIntegration;
$this->urlHelper = $urlHelper;
}
@@ -273,6 +279,11 @@ class Initializer {
'multisiteDropTables',
]);
$this->wpFunctions->addFilter('mailpoet_email_editor_initialized', [
$this->mailpoetEmailEditorIntegration,
'initialize',
]);
WPFunctions::get()->addAction(AutomationHooks::INITIALIZE, [
$this->automationMailPoetIntegration,
'register',