diff --git a/mailpoet/lib/Automation/Engine/Control/RootStep.php b/mailpoet/lib/Automation/Engine/Control/RootStep.php index 2c1a33d9eb..cff0af4bd3 100644 --- a/mailpoet/lib/Automation/Engine/Control/RootStep.php +++ b/mailpoet/lib/Automation/Engine/Control/RootStep.php @@ -17,4 +17,8 @@ class RootStep implements Step { public function getArgsSchema(): ObjectSchema { return new ObjectSchema(); } + + public function getSubjectKeys(): array { + return []; + } } diff --git a/mailpoet/lib/Automation/Engine/Workflows/Step.php b/mailpoet/lib/Automation/Engine/Workflows/Step.php index 483570a3f7..6de9fd81d4 100644 --- a/mailpoet/lib/Automation/Engine/Workflows/Step.php +++ b/mailpoet/lib/Automation/Engine/Workflows/Step.php @@ -10,4 +10,7 @@ interface Step { public function getName(): string; public function getArgsSchema(): ObjectSchema; + + /** @return string[] */ + public function getSubjectKeys(): array; } diff --git a/mailpoet/lib/Automation/Integrations/Core/Actions/DelayAction.php b/mailpoet/lib/Automation/Integrations/Core/Actions/DelayAction.php index 074e8b65f9..0a0dbbea56 100644 --- a/mailpoet/lib/Automation/Integrations/Core/Actions/DelayAction.php +++ b/mailpoet/lib/Automation/Integrations/Core/Actions/DelayAction.php @@ -36,6 +36,10 @@ class DelayAction implements Action { ]); } + public function getSubjectKeys(): array { + return []; + } + public function run(Workflow $workflow, WorkflowRun $workflowRun, Step $step): void { $nextStep = $step->getNextSteps()[0] ?? null; $this->actionScheduler->schedule(time() + $this->calculateSeconds($step), Hooks::WORKFLOW_STEP, [ diff --git a/mailpoet/lib/Automation/Integrations/MailPoet/Actions/SendEmailAction.php b/mailpoet/lib/Automation/Integrations/MailPoet/Actions/SendEmailAction.php index 176a4b2e4f..aa51b4819a 100644 --- a/mailpoet/lib/Automation/Integrations/MailPoet/Actions/SendEmailAction.php +++ b/mailpoet/lib/Automation/Integrations/MailPoet/Actions/SendEmailAction.php @@ -72,6 +72,13 @@ class SendEmailAction implements Action { ]); } + public function getSubjectKeys(): array { + return [ + 'mailpoet:segment', + 'mailpoet:subscriber', + ]; + } + public function isValid(array $subjects, Step $step, Workflow $workflow): bool { try { $this->getEmailForStep($step); diff --git a/mailpoet/lib/Automation/Integrations/MailPoet/Triggers/SomeoneSubscribesTrigger.php b/mailpoet/lib/Automation/Integrations/MailPoet/Triggers/SomeoneSubscribesTrigger.php index 95c26b04be..3d168bba24 100644 --- a/mailpoet/lib/Automation/Integrations/MailPoet/Triggers/SomeoneSubscribesTrigger.php +++ b/mailpoet/lib/Automation/Integrations/MailPoet/Triggers/SomeoneSubscribesTrigger.php @@ -39,6 +39,13 @@ class SomeoneSubscribesTrigger implements Trigger { ]); } + public function getSubjectKeys(): array { + return [ + SubscriberSubject::KEY, + SegmentSubject::KEY, + ]; + } + public function registerHooks(): void { $this->wp->addAction('mailpoet_segment_subscribed', [$this, 'handleSubscription'], 10, 2); } diff --git a/mailpoet/tests/integration/Automation/Engine/Data/WorkflowRunLogTest.php b/mailpoet/tests/integration/Automation/Engine/Data/WorkflowRunLogTest.php index 98411c2702..d2695e69c1 100644 --- a/mailpoet/tests/integration/Automation/Engine/Data/WorkflowRunLogTest.php +++ b/mailpoet/tests/integration/Automation/Engine/Data/WorkflowRunLogTest.php @@ -285,6 +285,11 @@ class TestAction implements Action { $this->callback = $callback; } + + public function getSubjectKeys(): array { + return []; + } + public function isValid(array $subjects, Step $step, Workflow $workflow): bool { return true; }