diff --git a/mailpoet/lib/Cron/Workers/SendingQueue/SendingQueue.php b/mailpoet/lib/Cron/Workers/SendingQueue/SendingQueue.php index c85da43e12..592ee5bb26 100644 --- a/mailpoet/lib/Cron/Workers/SendingQueue/SendingQueue.php +++ b/mailpoet/lib/Cron/Workers/SendingQueue/SendingQueue.php @@ -187,11 +187,6 @@ class SendingQueue { return; } - $isTransactional = in_array($newsletter->getType(), [ - NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL, - NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL, - ]); - // configure mailer $this->mailerTask->configureMailer($newsletter); // get newsletter segments @@ -272,7 +267,7 @@ class SendingQueue { ->setParameter('subscriberIds', $subscribersToProcessIds) ->andWhere('s.deletedAt IS NULL'); - if ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL) { + if ($newsletter->isTransactional()) { $queryBuilder->andWhere('s.status != :bouncedStatus') ->setParameter('bouncedStatus', SubscriberEntity::STATUS_BOUNCED); } else { @@ -323,7 +318,7 @@ class SendingQueue { $foundSubscribers, $timer ); - if (!$isTransactional) { + if (!$newsletter->isTransactional()) { $this->entityManager->wrapInTransaction(function() use ($foundSubscribersIds) { $now = Carbon::createFromTimestamp((int)current_time('timestamp')); $this->subscribersRepository->bulkUpdateLastSendingAt($foundSubscribersIds, $now); diff --git a/mailpoet/lib/Entities/NewsletterEntity.php b/mailpoet/lib/Entities/NewsletterEntity.php index e647d003ee..8e2ece02ee 100644 --- a/mailpoet/lib/Entities/NewsletterEntity.php +++ b/mailpoet/lib/Entities/NewsletterEntity.php @@ -608,4 +608,11 @@ class NewsletterEntity { $campaignName = $this->getCampaignName(); return $campaignName ?: $this->getSubject(); } + + public function isTransactional(): bool { + return in_array($this->getType(), [ + NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL, + NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL, + ]); + } } diff --git a/mailpoet/tests/integration/Entities/NewsletterEntityTest.php b/mailpoet/tests/integration/Entities/NewsletterEntityTest.php index ba435bd785..b64259bf77 100644 --- a/mailpoet/tests/integration/Entities/NewsletterEntityTest.php +++ b/mailpoet/tests/integration/Entities/NewsletterEntityTest.php @@ -220,6 +220,16 @@ class NewsletterEntityTest extends \MailPoetTest { verify($notificationHistoryNewsletter->getFilterSegmentId())->equals(2); } + public function testIsTransactional(): void { + $newsletter = $this->createNewsletter(); + $this->assertFalse($newsletter->isTransactional()); + + $newsletter->setType(NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL); + $this->assertTrue($newsletter->isTransactional()); + $newsletter->setType(NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL); + $this->assertTrue($newsletter->isTransactional()); + } + private function createNewsletter(string $type = NewsletterEntity::TYPE_STANDARD): NewsletterEntity { $newsletter = new NewsletterEntity(); $newsletter->setType($type);