- Saves welcome emails with high priority
- Fixes welcome emails not being sent to WP users - Updates unit tests
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
@@ -74,7 +74,7 @@ class WP {
|
||||
Scheduler::scheduleWPUserWelcomeNotification(
|
||||
$subscriber->id,
|
||||
(array)$wp_user,
|
||||
$old_wp_user_data
|
||||
(array)$old_wp_user_data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -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'));
|
||||
|
||||
|
Reference in New Issue
Block a user