- 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;
|
if(empty($newsletters)) return false;
|
||||||
foreach($newsletters as $newsletter) {
|
foreach($newsletters as $newsletter) {
|
||||||
if($newsletter->event === 'user') {
|
if($newsletter->event === 'user') {
|
||||||
if($old_user_data) {
|
if(!empty($old_user_data['roles'])) {
|
||||||
// do not schedule welcome newsletter if roles have not changed
|
// do not schedule welcome newsletter if roles have not changed
|
||||||
$old_role = (array)$old_user_data->roles;
|
$old_role = $old_user_data['roles'];
|
||||||
$new_role = (array)$wp_user->roles;
|
$new_role = $wp_user['roles'];
|
||||||
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
||||||
!array_diff($old_role, $new_role)
|
!array_diff($old_role, $new_role)
|
||||||
) {
|
) {
|
||||||
@@ -64,7 +64,7 @@ class Scheduler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
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);
|
self::createWelcomeNotificationQueue($newsletter, $subscriber_id);
|
||||||
}
|
}
|
||||||
@@ -99,6 +99,7 @@ class Scheduler {
|
|||||||
$scheduled_at = $current_time;
|
$scheduled_at = $current_time;
|
||||||
}
|
}
|
||||||
$queue->status = SendingQueue::STATUS_SCHEDULED;
|
$queue->status = SendingQueue::STATUS_SCHEDULED;
|
||||||
|
$queue->priority = SendingQueue::PRIORITY_HIGH;
|
||||||
$queue->scheduled_at = $scheduled_at;
|
$queue->scheduled_at = $scheduled_at;
|
||||||
return $queue->save();
|
return $queue->save();
|
||||||
}
|
}
|
||||||
|
@@ -74,7 +74,7 @@ class WP {
|
|||||||
Scheduler::scheduleWPUserWelcomeNotification(
|
Scheduler::scheduleWPUserWelcomeNotification(
|
||||||
$subscriber->id,
|
$subscriber->id,
|
||||||
(array)$wp_user,
|
(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->newsletter_id)->equals($newsletter->id);
|
||||||
expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED);
|
expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED);
|
||||||
expect($queue->scheduled_at)->equals(Scheduler::getNextRunDate('* 5 * * *'));
|
expect($queue->scheduled_at)->equals(Scheduler::getNextRunDate('* 5 * * *'));
|
||||||
|
expect($queue->priority)->equals(SendingQueue::PRIORITY_MEDIUM);
|
||||||
|
|
||||||
// duplicate queue record should not be created
|
// duplicate queue record should not be created
|
||||||
Scheduler::createPostNotificationQueue($newsletter);
|
Scheduler::createPostNotificationQueue($newsletter);
|
||||||
@@ -73,6 +74,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
->findOne();
|
->findOne();
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
||||||
expect($queue->id)->greaterOrEquals(1);
|
expect($queue->id)->greaterOrEquals(1);
|
||||||
|
expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH);
|
||||||
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
||||||
->equals($current_time->addHours(2)->format('Y-m-d H:i'));
|
->equals($current_time->addHours(2)->format('Y-m-d H:i'));
|
||||||
$this->_after();
|
$this->_after();
|
||||||
@@ -84,6 +86,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
$queue = SendingQueue::where('newsletter_id', 1)
|
$queue = SendingQueue::where('newsletter_id', 1)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect($queue->id)->greaterOrEquals(1);
|
expect($queue->id)->greaterOrEquals(1);
|
||||||
|
expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH);
|
||||||
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
||||||
->equals($current_time->addDays(2)->format('Y-m-d H:i'));
|
->equals($current_time->addDays(2)->format('Y-m-d H:i'));
|
||||||
$this->_after();
|
$this->_after();
|
||||||
@@ -95,6 +98,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
$queue = SendingQueue::where('newsletter_id', 1)
|
$queue = SendingQueue::where('newsletter_id', 1)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect($queue->id)->greaterOrEquals(1);
|
expect($queue->id)->greaterOrEquals(1);
|
||||||
|
expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH);
|
||||||
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
||||||
->equals($current_time->addWeeks(2)->format('Y-m-d H:i'));
|
->equals($current_time->addWeeks(2)->format('Y-m-d H:i'));
|
||||||
$this->_after();
|
$this->_after();
|
||||||
@@ -106,6 +110,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
$queue = SendingQueue::where('newsletter_id', 1)
|
$queue = SendingQueue::where('newsletter_id', 1)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect($queue->id)->greaterOrEquals(1);
|
expect($queue->id)->greaterOrEquals(1);
|
||||||
|
expect($queue->priority)->equals(SendingQueue::PRIORITY_HIGH);
|
||||||
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
expect(Carbon::parse($queue->scheduled_at)->format('Y-m-d H:i'))
|
||||||
->equals($current_time->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(
|
Scheduler::scheduleWPUserWelcomeNotification(
|
||||||
$subscriber_id = 10,
|
$subscriber_id = 10,
|
||||||
$wp_user = (object)array('roles' => array('editor')),
|
$wp_user = array('roles' => array('editor')),
|
||||||
$old_user_data = (object)array('roles' => array('editor'))
|
$old_user_data = array('roles' => array('editor'))
|
||||||
);
|
);
|
||||||
|
|
||||||
// queue is not created
|
// queue is not created
|
||||||
@@ -245,7 +250,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
);
|
);
|
||||||
Scheduler::scheduleWPUserWelcomeNotification(
|
Scheduler::scheduleWPUserWelcomeNotification(
|
||||||
$subscriber_id = 10,
|
$subscriber_id = 10,
|
||||||
$wp_user = (object)array('roles' => array('administrator'))
|
$wp_user = array('roles' => array('administrator'))
|
||||||
);
|
);
|
||||||
|
|
||||||
// queue is not created
|
// queue is not created
|
||||||
@@ -268,7 +273,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
);
|
);
|
||||||
Scheduler::scheduleWPUserWelcomeNotification(
|
Scheduler::scheduleWPUserWelcomeNotification(
|
||||||
$subscriber_id = 10,
|
$subscriber_id = 10,
|
||||||
$wp_user = (object)array('roles' => array('administrator'))
|
$wp_user = array('roles' => array('administrator'))
|
||||||
);
|
);
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
||||||
|
|
||||||
@@ -293,7 +298,7 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
);
|
);
|
||||||
Scheduler::scheduleWPUserWelcomeNotification(
|
Scheduler::scheduleWPUserWelcomeNotification(
|
||||||
$subscriber_id = 10,
|
$subscriber_id = 10,
|
||||||
$wp_user = (object)array('roles' => array('administrator'))
|
$wp_user = array('roles' => array('administrator'))
|
||||||
);
|
);
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user