diff --git a/lib/Mailer/MetaInfo.php b/lib/Mailer/MetaInfo.php index f40c7287d4..1fbd791a77 100644 --- a/lib/Mailer/MetaInfo.php +++ b/lib/Mailer/MetaInfo.php @@ -24,6 +24,10 @@ class MetaInfo { return $this->makeMetaInfo('confirmation', $subscriber->status, $subscriber->source); } + function getNewSubscriberNotificationMetaInfo() { + return $this->makeMetaInfo('new_subscriber_notification', 'unknown', 'administrator'); + } + private function makeMetaInfo($email_type, $subscriber_status, $subscriber_source) { return [ 'email_type' => $email_type, diff --git a/lib/Subscribers/NewSubscriberNotificationMailer.php b/lib/Subscribers/NewSubscriberNotificationMailer.php index cdbdb0dfdb..0293954208 100644 --- a/lib/Subscribers/NewSubscriberNotificationMailer.php +++ b/lib/Subscribers/NewSubscriberNotificationMailer.php @@ -3,6 +3,7 @@ namespace MailPoet\Subscribers; use MailPoet\Config\Renderer; use MailPoet\Mailer\Mailer; +use MailPoet\Mailer\MetaInfo; use MailPoet\Models\Segment; use MailPoet\Models\Subscriber; use MailPoet\Settings\SettingsController; @@ -21,6 +22,9 @@ class NewSubscriberNotificationMailer { /** @var SettingsController */ private $settings; + /** @var MetaInfo */ + private $mailerMetaInfo; + /** * @param \MailPoet\Mailer\Mailer|null $mailer * @param Renderer|null $renderer @@ -35,6 +39,7 @@ class NewSubscriberNotificationMailer { } $this->mailer = $mailer; $this->settings = new SettingsController(); + $this->mailerMetaInfo = new MetaInfo(); } /** @@ -49,7 +54,10 @@ class NewSubscriberNotificationMailer { return; } try { - $this->getMailer()->send($this->constructNewsletter($subscriber, $segments), $settings['address']); + $extra_params = [ + 'meta' => $this->mailerMetaInfo->getNewSubscriberNotificationMetaInfo(), + ]; + $this->getMailer()->send($this->constructNewsletter($subscriber, $segments), $settings['address'], $extra_params); } catch (\Exception $e) { if (WP_DEBUG) { throw $e; diff --git a/tests/integration/Mailer/MetaInfoTest.php b/tests/integration/Mailer/MetaInfoTest.php index 917b14057d..2819d38289 100644 --- a/tests/integration/Mailer/MetaInfoTest.php +++ b/tests/integration/Mailer/MetaInfoTest.php @@ -59,6 +59,14 @@ class MetaInfoTest extends \MailPoetTest { ]); } + function testItGetsMetaInfoForNewSubscriberNotifications() { + expect($this->meta->getNewSubscriberNotificationMetaInfo())->equals([ + 'email_type' => 'new_subscriber_notification', + 'subscriber_status' => 'unknown', + 'subscriber_source' => 'administrator', + ]); + } + function _after() { Subscriber::deleteMany(); } diff --git a/tests/integration/Subscribers/NewSubscriberNotificationMailerTest.php b/tests/integration/Subscribers/NewSubscriberNotificationMailerTest.php index c38dbc9ec3..6da849c321 100644 --- a/tests/integration/Subscribers/NewSubscriberNotificationMailerTest.php +++ b/tests/integration/Subscribers/NewSubscriberNotificationMailerTest.php @@ -65,7 +65,7 @@ class NewSubscriberNotificationMailerTest extends \MailPoetTest { $mailer = Stub::makeEmpty(Mailer::class, [ 'send' => - Expected::once(function($newsletter, $subscriber) { + Expected::once(function($newsletter, $subscriber, $extra_params) { expect($subscriber)->equals('a@b.c'); expect($newsletter)->hasKey('subject'); expect($newsletter)->hasKey('body'); @@ -76,6 +76,11 @@ class NewSubscriberNotificationMailerTest extends \MailPoetTest { expect($newsletter['body'])->count(2); expect($newsletter['body']['text'])->contains('subscriber@example.com'); expect($newsletter['body']['html'])->contains('subscriber@example.com'); + expect($extra_params['meta'])->equals([ + 'email_type' => 'new_subscriber_notification', + 'subscriber_status' => 'unknown', + 'subscriber_source' => 'administrator', + ]); }), ], $this);