entityManager = $entityManager; $this->wp = $wp; } public function createSendingTask(NewsletterEntity $email, SubscriberEntity $subscriber): ScheduledTaskEntity { if ($email->getType() !== NewsletterEntity::TYPE_AUTOMATION) { throw InvalidStateException::create()->withMessage( // translators: %s is the type which was given. sprintf(__("Email with type 'automation' expected, '%s' given.", 'mailpoet'), $email->getType()) ); } $task = new ScheduledTaskEntity(); $task->setType(Sending::TASK_TYPE); $task->setStatus(ScheduledTaskEntity::STATUS_SCHEDULED); $task->setScheduledAt(Carbon::createFromTimestamp($this->wp->currentTime('timestamp'))); $task->setPriority(ScheduledTaskEntity::PRIORITY_MEDIUM); $this->entityManager->persist($task); $taskSubscriber = new ScheduledTaskSubscriberEntity($task, $subscriber); $this->entityManager->persist($taskSubscriber); $queue = new SendingQueueEntity(); $queue->setTask($task); $queue->setNewsletter($email); $queue->setCountToProcess(1); $queue->setCountTotal(1); $this->entityManager->persist($queue); $this->entityManager->flush(); return $task; } }