Change segments handling for notification newsletters

This commit is contained in:
Tautvidas Sipavičius
2016-05-18 21:27:58 +03:00
parent 5a03eb9a17
commit 08a8ca4969
3 changed files with 10 additions and 7 deletions

View File

@ -192,10 +192,6 @@ class Populator {
array(
'name' => 'schedule',
'newsletter_type' => 'notification',
),
array(
'name' => 'segments',
'newsletter_type' => 'notification',
)
);
}

View File

@ -66,12 +66,15 @@ class Scheduler {
}
function processPostNotificationNewsletter($newsletter, $queue) {
$segments = unserialize($newsletter->segments);
$segments = $newsletter->segments()->findArray();
if(empty($segments)) {
$queue->delete();
return;
}
$subscribers = Subscriber::getSubscribedInSegments($segments)
$segment_ids = array_map(function($segment) {
return $segment['id'];
}, $segments);
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)
->findArray();
$subscribers = Helpers::arrayColumn($subscribers, 'subscriber_id');
$subscribers = array_unique($subscribers);

View File

@ -88,7 +88,11 @@ class SendingQueue {
$message = __('The newsletter has been scheduled.');
} else {
$subscribers = Subscriber::getSubscribedInSegments($data['segments'])
$segments = $newsletter->segments()->findArray();
$segment_ids = array_map(function($segment) {
return $segment['id'];
}, $segments);
$subscribers = Subscriber::getSubscribedInSegments($segment_ids)
->findArray();
$subscribers = Helpers::arrayColumn($subscribers, 'subscriber_id');
$subscribers = array_unique($subscribers);