Send an email notification on new subscriber

[MAILPOET-1522]
This commit is contained in:
Pavel Dohnal
2018-10-11 09:09:25 +02:00
parent fbe2f72706
commit 4249c7a2cb
13 changed files with 315 additions and 16 deletions

View File

@@ -7,6 +7,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Subscribers\RequiredCustomFieldValidator;
use MailPoet\Subscribers\SendNewSubscriberNotification;
use MailPoet\Subscribers\Source;
use MailPoet\Tasks\Sending;
@@ -145,6 +146,7 @@ class API {
function addSubscriber(array $subscriber, $segments = array(), $options = array()) {
$send_confirmation_email = (isset($options['send_confirmation_email']) && $options['send_confirmation_email'] === false) ? false : true;
$schedule_welcome_email = (isset($options['schedule_welcome_email']) && $options['schedule_welcome_email'] === false) ? false : true;
$skip_subscriber_notification = (isset($options['skip_subscriber_notification']) && $options['skip_subscriber_notification'] === true) ? true : false;
// throw exception when subscriber email is missing
if(empty($subscriber['email'])) {
@@ -203,6 +205,10 @@ class API {
if($schedule_welcome_email && $new_subscriber->status === Subscriber::STATUS_SUBSCRIBED) {
$this->_scheduleWelcomeNotification($new_subscriber, $segments);
}
if(!$skip_subscriber_notification) {
$this->sendSubscriberNotification($new_subscriber, $segments);
}
}
return $new_subscriber->withCustomFields()->withSubscriptions()->asArray();
}
@@ -264,4 +270,9 @@ class API {
}
return $result;
}
private function sendSubscriberNotification(Subscriber $subscriber, array $segments) {
$sender = new SendNewSubscriberNotification();
$sender->send($subscriber, $segments);
}
}