diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Shortcodes.php b/lib/Cron/Workers/SendingQueue/Tasks/Shortcodes.php index ac71cfc30a..c0594c8664 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Shortcodes.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Shortcodes.php @@ -6,6 +6,7 @@ use MailPoet\DI\ContainerWrapper; use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\SubscriberEntity; +use MailPoet\Models\Newsletter; use MailPoet\Models\SendingQueue; use MailPoet\Models\Subscriber; use MailPoet\Newsletter\NewslettersRepository; @@ -13,8 +14,16 @@ use MailPoet\Newsletter\Sending\SendingQueuesRepository; use MailPoet\Newsletter\Shortcodes\Shortcodes as NewsletterShortcodes; use MailPoet\Subscribers\SubscribersRepository; use MailPoet\Tasks\Sending; +use stdClass; class Shortcodes { + /** + * @param string $content + * @param string|null $contentSource + * @param stdClass|Newsletter|null $newsletter + * @param Subscriber|null $subscriber + * @param Sending|SendingQueue|null $queue + */ public static function process($content, $contentSource = null, $newsletter = null, $subscriber = null, $queue = null) { /** @var NewsletterShortcodes $shortcodes */ $shortcodes = ContainerWrapper::getInstance()->get(NewsletterShortcodes::class); @@ -35,7 +44,7 @@ class Shortcodes { } else { $shortcodes->setQueue(null); } - if ($newsletter instanceof \MailPoet\Models\Newsletter && $newsletter->id) { + if (($newsletter instanceof Newsletter || $newsletter instanceof stdClass) && $newsletter->id) { $newsletter = $newsletterRepository->findOneById($newsletter->id); } if ($newsletter instanceof NewsletterEntity) { diff --git a/tests/integration/Cron/Workers/SendingQueue/Tasks/ShortcodesTest.php b/tests/integration/Cron/Workers/SendingQueue/Tasks/ShortcodesTest.php index 220631f1c4..ddda9e7ca9 100644 --- a/tests/integration/Cron/Workers/SendingQueue/Tasks/ShortcodesTest.php +++ b/tests/integration/Cron/Workers/SendingQueue/Tasks/ShortcodesTest.php @@ -23,9 +23,13 @@ class ShortcodesTest extends \MailPoetTest { } public function testItCanReplaceShortcodes() { - $queue = $newsletter = (object)[ + $newsletter = (object)[ 'id' => 1, ]; + $queue = SendingQueue::createOrUpdate([ + 'task_id' => 1, + 'newsletter_id' => 1, + ]); $subscriber = Subscriber::createOrUpdate([ 'email' => 'test@xample.com', 'first_name' => 'John',