diff --git a/lib/Config/Populator.php b/lib/Config/Populator.php index 47729ee726..be4782e318 100644 --- a/lib/Config/Populator.php +++ b/lib/Config/Populator.php @@ -192,10 +192,6 @@ class Populator { array( 'name' => 'schedule', 'newsletter_type' => 'notification', - ), - array( - 'name' => 'segments', - 'newsletter_type' => 'notification', ) ); } diff --git a/lib/Cron/Workers/Scheduler.php b/lib/Cron/Workers/Scheduler.php index 8dea67246d..114e0535ea 100644 --- a/lib/Cron/Workers/Scheduler.php +++ b/lib/Cron/Workers/Scheduler.php @@ -68,7 +68,7 @@ class Scheduler { function processPostNotificationNewsletter($newsletter, $queue) { $immediate_interval = \MailPoet\Newsletter\Scheduler\Scheduler::INTERVAL_IMMEDIATELY; - $segments = unserialize($newsletter->segments); + $segments = $newsletter->segments()->findArray(); if(empty($segments) && $newsletter->intervalType === $immediate_interval) { $queue->delete(); return; @@ -76,7 +76,10 @@ class Scheduler { self::updateQueueNextRunDate($queue, $newsletter); 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); diff --git a/lib/Router/SendingQueue.php b/lib/Router/SendingQueue.php index 13837ede49..eefe9fd046 100644 --- a/lib/Router/SendingQueue.php +++ b/lib/Router/SendingQueue.php @@ -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);