Fix items not updating when rescheduling abandoned cart email [MAILPOET-2979]
This commit is contained in:
@ -96,12 +96,13 @@ class AutomaticEmailScheduler {
|
||||
return $sendingTask->save();
|
||||
}
|
||||
|
||||
private function rescheduleAutomaticEmailSendingTask($newsletter, $task, $meta = false) {
|
||||
private function rescheduleAutomaticEmailSendingTask($newsletter, ScheduledTask $task, $meta = false) {
|
||||
$sendingTask = SendingTask::createFromScheduledTask($task);
|
||||
if ($meta) {
|
||||
$task->__set('meta', $meta);
|
||||
$sendingTask->__set('meta', $meta);
|
||||
}
|
||||
// compute new 'scheduled_at' from now
|
||||
$task->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
|
||||
$task->save();
|
||||
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
|
||||
$sendingTask->save();
|
||||
}
|
||||
}
|
||||
|
@ -102,6 +102,15 @@ class Sending {
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function createFromScheduledTask(ScheduledTask $task) {
|
||||
$queue = SendingQueue::where('task_id', $task->id)->findOne();
|
||||
if (!$queue) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return self::create($task, $queue);
|
||||
}
|
||||
|
||||
public static function createFromQueue(SendingQueue $queue) {
|
||||
$task = $queue->task()->findOne();
|
||||
if (!$task) {
|
||||
|
@ -58,6 +58,12 @@ class SendingTest extends \MailPoetTest {
|
||||
expect($queue->taskId)->equals($this->task->id);
|
||||
}
|
||||
|
||||
public function testItCanBeCreatedFromScheduledTask() {
|
||||
$sending = SendingTask::createFromScheduledTask($this->task);
|
||||
$queue = $sending->queue();
|
||||
expect($queue->taskId)->equals($this->task->id);
|
||||
}
|
||||
|
||||
public function testItCanBeCreatedFromQueue() {
|
||||
$sending = SendingTask::createFromQueue($this->queue);
|
||||
$task = $sending->task();
|
||||
|
Reference in New Issue
Block a user