diff --git a/lib/Newsletter/Scheduler/Scheduler.php b/lib/Newsletter/Scheduler/Scheduler.php index 250ff30538..9876226579 100644 --- a/lib/Newsletter/Scheduler/Scheduler.php +++ b/lib/Newsletter/Scheduler/Scheduler.php @@ -53,10 +53,10 @@ class Scheduler { if(empty($newsletters)) return false; foreach($newsletters as $newsletter) { if($newsletter->event === 'user') { - if($old_user_data) { + if(!empty($old_user_data['roles'])) { // do not schedule welcome newsletter if roles have not changed - $old_role = (array)$old_user_data->roles; - $new_role = (array)$wp_user->roles; + $old_role = $old_user_data['roles']; + $new_role = $wp_user['roles']; if($newsletter->role === self::WORDPRESS_ALL_ROLES || !array_diff($old_role, $new_role) ) { @@ -64,7 +64,7 @@ class Scheduler { } } if($newsletter->role === self::WORDPRESS_ALL_ROLES || - in_array($newsletter->role, (array)$wp_user->roles) + in_array($newsletter->role, $wp_user['roles']) ) { self::createWelcomeNotificationQueue($newsletter, $subscriber_id); } @@ -99,6 +99,7 @@ class Scheduler { $scheduled_at = $current_time; } $queue->status = SendingQueue::STATUS_SCHEDULED; + $queue->priority = SendingQueue::PRIORITY_HIGH; $queue->scheduled_at = $scheduled_at; return $queue->save(); } diff --git a/lib/Segments/WP.php b/lib/Segments/WP.php index c1e882b6f9..e0e01b4600 100644 --- a/lib/Segments/WP.php +++ b/lib/Segments/WP.php @@ -74,7 +74,7 @@ class WP { Scheduler::scheduleWPUserWelcomeNotification( $subscriber->id, (array)$wp_user, - $old_wp_user_data + (array)$old_wp_user_data ); } } diff --git a/tests/unit/Newsletter/Scheduler/SchedulerTest.php b/tests/unit/Newsletter/Scheduler/SchedulerTest.php index ea4d1b3962..d9745aac8a 100644 --- a/tests/unit/Newsletter/Scheduler/SchedulerTest.php +++ b/tests/unit/Newsletter/Scheduler/SchedulerTest.php @@ -54,6 +54,7 @@ class NewsletterSchedulerTest extends MailPoetTest { expect($queue->newsletter_id)->equals($newsletter->id); expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED); expect($queue->scheduled_at)->equals(Scheduler::getNextRunDate('* 5 * * *')); + expect($queue->priority)->equals(SendingQueue::PRIORITY_MEDIUM); // duplicate queue record should not be created Scheduler::createPostNotificationQueue($newsletter); @@ -73,6 +74,7 @@ class NewsletterSchedulerTest extends MailPoetTest { ->findOne(); $current_time = Carbon::createFromTimestamp(current_time('timestamp')); expect($queue->id)->greaterOrEquals(1); + expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH); expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i')) ->equals($current_time->addHours(2)->format('Y-m-d H:i')); $this->_after(); @@ -84,6 +86,7 @@ class NewsletterSchedulerTest extends MailPoetTest { $queue = SendingQueue::where('newsletter_id', 1) ->findOne(); expect($queue->id)->greaterOrEquals(1); + expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH); expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i')) ->equals($current_time->addDays(2)->format('Y-m-d H:i')); $this->_after(); @@ -95,6 +98,7 @@ class NewsletterSchedulerTest extends MailPoetTest { $queue = SendingQueue::where('newsletter_id', 1) ->findOne(); expect($queue->id)->greaterOrEquals(1); + expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH); expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i')) ->equals($current_time->addWeeks(2)->format('Y-m-d H:i')); $this->_after(); @@ -106,6 +110,7 @@ class NewsletterSchedulerTest extends MailPoetTest { $queue = SendingQueue::where('newsletter_id', 1) ->findOne(); expect($queue->id)->greaterOrEquals(1); + expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH); expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i')) ->equals($current_time->format('Y-m-d H:i')); } @@ -221,8 +226,8 @@ class NewsletterSchedulerTest extends MailPoetTest { ); Scheduler::scheduleWPUserWelcomeNotification( $subscriber_id = 10, - $wp_user = (object)array('roles' => array('editor')), - $old_user_data = (object)array('roles' => array('editor')) + $wp_user = array('roles' => array('editor')), + $old_user_data = array('roles' => array('editor')) ); // queue is not created @@ -245,7 +250,7 @@ class NewsletterSchedulerTest extends MailPoetTest { ); Scheduler::scheduleWPUserWelcomeNotification( $subscriber_id = 10, - $wp_user = (object)array('roles' => array('administrator')) + $wp_user = array('roles' => array('administrator')) ); // queue is not created @@ -268,7 +273,7 @@ class NewsletterSchedulerTest extends MailPoetTest { ); Scheduler::scheduleWPUserWelcomeNotification( $subscriber_id = 10, - $wp_user = (object)array('roles' => array('administrator')) + $wp_user = array('roles' => array('administrator')) ); $current_time = Carbon::createFromTimestamp(current_time('timestamp')); @@ -293,7 +298,7 @@ class NewsletterSchedulerTest extends MailPoetTest { ); Scheduler::scheduleWPUserWelcomeNotification( $subscriber_id = 10, - $wp_user = (object)array('roles' => array('administrator')) + $wp_user = array('roles' => array('administrator')) ); $current_time = Carbon::createFromTimestamp(current_time('timestamp'));