Set newsletter Entity when stdClass instance given
[MAILPOET-3356]
This commit is contained in:
@ -6,6 +6,7 @@ use MailPoet\DI\ContainerWrapper;
|
|||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Newsletter\NewslettersRepository;
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
@ -13,8 +14,16 @@ use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
|||||||
use MailPoet\Newsletter\Shortcodes\Shortcodes as NewsletterShortcodes;
|
use MailPoet\Newsletter\Shortcodes\Shortcodes as NewsletterShortcodes;
|
||||||
use MailPoet\Subscribers\SubscribersRepository;
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Tasks\Sending;
|
use MailPoet\Tasks\Sending;
|
||||||
|
use stdClass;
|
||||||
|
|
||||||
class Shortcodes {
|
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) {
|
public static function process($content, $contentSource = null, $newsletter = null, $subscriber = null, $queue = null) {
|
||||||
/** @var NewsletterShortcodes $shortcodes */
|
/** @var NewsletterShortcodes $shortcodes */
|
||||||
$shortcodes = ContainerWrapper::getInstance()->get(NewsletterShortcodes::class);
|
$shortcodes = ContainerWrapper::getInstance()->get(NewsletterShortcodes::class);
|
||||||
@ -35,7 +44,7 @@ class Shortcodes {
|
|||||||
} else {
|
} else {
|
||||||
$shortcodes->setQueue(null);
|
$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);
|
$newsletter = $newsletterRepository->findOneById($newsletter->id);
|
||||||
}
|
}
|
||||||
if ($newsletter instanceof NewsletterEntity) {
|
if ($newsletter instanceof NewsletterEntity) {
|
||||||
|
@ -23,9 +23,13 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanReplaceShortcodes() {
|
public function testItCanReplaceShortcodes() {
|
||||||
$queue = $newsletter = (object)[
|
$newsletter = (object)[
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
];
|
];
|
||||||
|
$queue = SendingQueue::createOrUpdate([
|
||||||
|
'task_id' => 1,
|
||||||
|
'newsletter_id' => 1,
|
||||||
|
]);
|
||||||
$subscriber = Subscriber::createOrUpdate([
|
$subscriber = Subscriber::createOrUpdate([
|
||||||
'email' => 'test@xample.com',
|
'email' => 'test@xample.com',
|
||||||
'first_name' => 'John',
|
'first_name' => 'John',
|
||||||
|
Reference in New Issue
Block a user