->sendEmailAction = $sendEmailAction; $this->automationEditorLoadingHooks = $automationEditorLoadingHooks; $this->createAutomationRunHook = $createAutomationRunHook; $this->templatesFactory = $templatesFactory; $this->registerAnalytics = $registerAnalytics; } public function register(Registry $registry): void { $registry->addContextFactory('mailpoet', function () { return $this->contextFactory->getContextData(); }); $registry->addSubject($this->segmentSubject); $registry->addSubject($this->subscriberSubject); $registry->addSubject($this->emailLinkSubject); $registry->addTrigger($this->someoneSubscribesTrigger); $registry->addTrigger($this->userRegistrationTrigger); $registry->addAction($this->sendEmailAction); $registry->addSubjectTransformer($this->orderToSubscriberTransformer); $registry->addSubjectTransformer($this->orderToSegmentTransformer); $registry->addSubjectTransformer($this->subscriberToWordPressUserTransformer); $registry->addSubjectTransformer($this->commentToSubscriberTransformer); foreach ($this->templatesFactory->createTemplates() as $template) { $registry->addTemplate($template); } // sync step args (subject, preheader, etc.) to email settings $registry->onBeforeAutomationStepSave( [$this->sendEmailAction, 'saveEmailSettings'], $this->sendEmailAction->getKey() ); $this->automationEditorLoadingHooks->init(); $this->createAutomationRunHook->init(); $this->registerAnalytics->register(); } }