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();
|
return $sendingTask->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function rescheduleAutomaticEmailSendingTask($newsletter, $task, $meta = false) {
|
private function rescheduleAutomaticEmailSendingTask($newsletter, ScheduledTask $task, $meta = false) {
|
||||||
|
$sendingTask = SendingTask::createFromScheduledTask($task);
|
||||||
if ($meta) {
|
if ($meta) {
|
||||||
$task->__set('meta', $meta);
|
$sendingTask->__set('meta', $meta);
|
||||||
}
|
}
|
||||||
// compute new 'scheduled_at' from now
|
// compute new 'scheduled_at' from now
|
||||||
$task->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
|
$sendingTask->scheduledAt = Scheduler::getScheduledTimeWithDelay($newsletter->afterTimeType, $newsletter->afterTimeNumber);
|
||||||
$task->save();
|
$sendingTask->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,6 +102,15 @@ class Sending {
|
|||||||
return $result;
|
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) {
|
public static function createFromQueue(SendingQueue $queue) {
|
||||||
$task = $queue->task()->findOne();
|
$task = $queue->task()->findOne();
|
||||||
if (!$task) {
|
if (!$task) {
|
||||||
|
@ -58,6 +58,12 @@ class SendingTest extends \MailPoetTest {
|
|||||||
expect($queue->taskId)->equals($this->task->id);
|
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() {
|
public function testItCanBeCreatedFromQueue() {
|
||||||
$sending = SendingTask::createFromQueue($this->queue);
|
$sending = SendingTask::createFromQueue($this->queue);
|
||||||
$task = $sending->task();
|
$task = $sending->task();
|
||||||
|
Reference in New Issue
Block a user