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( array(
'name' => 'schedule', 'name' => 'schedule',
'newsletter_type' => 'notification', 'newsletter_type' => 'notification',
),
array(
'name' => 'segments',
'newsletter_type' => 'notification',
) )
); );
} }

View File

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

View File

@ -88,7 +88,11 @@ class SendingQueue {
$message = __('The newsletter has been scheduled.'); $message = __('The newsletter has been scheduled.');
} else { } 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(); ->findArray();
$subscribers = Helpers::arrayColumn($subscribers, 'subscriber_id'); $subscribers = Helpers::arrayColumn($subscribers, 'subscriber_id');
$subscribers = array_unique($subscribers); $subscribers = array_unique($subscribers);