Server IP : 104.21.14.103 / Your IP : 18.119.192.110 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Newsletter/Scheduler/ |
Upload File : |
<?php declare(strict_types = 1); namespace MailPoet\Newsletter\Scheduler; if (!defined('ABSPATH')) exit; use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\ScheduledTaskSubscriberEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\InvalidStateException; use MailPoet\Tasks\Sending; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Doctrine\ORM\EntityManager; class AutomationEmailScheduler { /** @var EntityManager */ private $entityManager; /** @var WPFunctions */ private $wp; public function __construct( EntityManager $entityManager, WPFunctions $wp ) { $this->entityManager = $entityManager; $this->wp = $wp; } public function createSendingTask(NewsletterEntity $email, SubscriberEntity $subscriber, array $meta): ScheduledTaskEntity { if (!in_array($email->getType(), [NewsletterEntity::TYPE_AUTOMATION, NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL], true)) { throw InvalidStateException::create()->withMessage( // translators: %s is the type which was given. sprintf(__("Email with type 'automation' or 'automation_transactional' 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); $task->setMeta($meta); $this->entityManager->persist($task); $taskSubscriber = new ScheduledTaskSubscriberEntity($task, $subscriber); $this->entityManager->persist($taskSubscriber); $queue = new SendingQueueEntity(); $queue->setTask($task); $queue->setMeta($meta); $queue->setNewsletter($email); $queue->setCountToProcess(1); $queue->setCountTotal(1); $this->entityManager->persist($queue); $this->entityManager->flush(); return $task; } }