Add meta when sending new subscriber notifications
[MAILPOET-2333]
This commit is contained in:
committed by
Jack Kitterhing
parent
eebe6e828f
commit
3dcde4170e
@ -24,6 +24,10 @@ class MetaInfo {
|
|||||||
return $this->makeMetaInfo('confirmation', $subscriber->status, $subscriber->source);
|
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) {
|
private function makeMetaInfo($email_type, $subscriber_status, $subscriber_source) {
|
||||||
return [
|
return [
|
||||||
'email_type' => $email_type,
|
'email_type' => $email_type,
|
||||||
|
@ -3,6 +3,7 @@ namespace MailPoet\Subscribers;
|
|||||||
|
|
||||||
use MailPoet\Config\Renderer;
|
use MailPoet\Config\Renderer;
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Models\Segment;
|
use MailPoet\Models\Segment;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@ -21,6 +22,9 @@ class NewSubscriberNotificationMailer {
|
|||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
|
/** @var MetaInfo */
|
||||||
|
private $mailerMetaInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \MailPoet\Mailer\Mailer|null $mailer
|
* @param \MailPoet\Mailer\Mailer|null $mailer
|
||||||
* @param Renderer|null $renderer
|
* @param Renderer|null $renderer
|
||||||
@ -35,6 +39,7 @@ class NewSubscriberNotificationMailer {
|
|||||||
}
|
}
|
||||||
$this->mailer = $mailer;
|
$this->mailer = $mailer;
|
||||||
$this->settings = new SettingsController();
|
$this->settings = new SettingsController();
|
||||||
|
$this->mailerMetaInfo = new MetaInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +54,10 @@ class NewSubscriberNotificationMailer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
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) {
|
} catch (\Exception $e) {
|
||||||
if (WP_DEBUG) {
|
if (WP_DEBUG) {
|
||||||
throw $e;
|
throw $e;
|
||||||
|
@ -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() {
|
function _after() {
|
||||||
Subscriber::deleteMany();
|
Subscriber::deleteMany();
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ class NewSubscriberNotificationMailerTest extends \MailPoetTest {
|
|||||||
|
|
||||||
$mailer = Stub::makeEmpty(Mailer::class, [
|
$mailer = Stub::makeEmpty(Mailer::class, [
|
||||||
'send' =>
|
'send' =>
|
||||||
Expected::once(function($newsletter, $subscriber) {
|
Expected::once(function($newsletter, $subscriber, $extra_params) {
|
||||||
expect($subscriber)->equals('a@b.c');
|
expect($subscriber)->equals('a@b.c');
|
||||||
expect($newsletter)->hasKey('subject');
|
expect($newsletter)->hasKey('subject');
|
||||||
expect($newsletter)->hasKey('body');
|
expect($newsletter)->hasKey('body');
|
||||||
@ -76,6 +76,11 @@ class NewSubscriberNotificationMailerTest extends \MailPoetTest {
|
|||||||
expect($newsletter['body'])->count(2);
|
expect($newsletter['body'])->count(2);
|
||||||
expect($newsletter['body']['text'])->contains('subscriber@example.com');
|
expect($newsletter['body']['text'])->contains('subscriber@example.com');
|
||||||
expect($newsletter['body']['html'])->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);
|
], $this);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user