diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php b/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php index fc03834005..6ac380f888 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php @@ -114,7 +114,7 @@ class Newsletter { // hook to the newsletter post-processing filter and add tracking image $this->trackingImageInserted = OpenTracking::addTrackingImage(); // render newsletter - $renderedNewsletter = $this->renderer->render($newsletter, false, false, $sendingTask); + $renderedNewsletter = $this->renderer->render($newsletter, $sendingTask); $renderedNewsletter = $this->wp->applyFilters( 'mailpoet_sending_newsletter_render_after', $renderedNewsletter, @@ -125,7 +125,7 @@ class Newsletter { $renderedNewsletter = LinksTask::process($renderedNewsletter, $newsletter, $sendingTask); } else { // render newsletter - $renderedNewsletter = $this->renderer->render($newsletter); + $renderedNewsletter = $this->renderer->render($newsletter, $sendingTask); $renderedNewsletter = $this->wp->applyFilters( 'mailpoet_sending_newsletter_render_after', $renderedNewsletter, diff --git a/lib/Newsletter/Preview/SendPreviewController.php b/lib/Newsletter/Preview/SendPreviewController.php index 094cbe6f66..883846aad0 100644 --- a/lib/Newsletter/Preview/SendPreviewController.php +++ b/lib/Newsletter/Preview/SendPreviewController.php @@ -43,7 +43,7 @@ class SendPreviewController { throw new SendPreviewException("Newsletter with ID '{$newsletter->getId()}' not found"); } - $renderedNewsletter = $this->renderer->render($newsletter, $preview = true); + $renderedNewsletter = $this->renderer->renderAsPreview($newsletter); $divider = '***MailPoet***'; $dataForShortcodes = array_merge( [$newsletter->getSubject()], diff --git a/lib/Newsletter/Renderer/Renderer.php b/lib/Newsletter/Renderer/Renderer.php index df3cb1ba92..28eb3111b2 100644 --- a/lib/Newsletter/Renderer/Renderer.php +++ b/lib/Newsletter/Renderer/Renderer.php @@ -70,7 +70,15 @@ class Renderer { return $this->newslettersRepository->findOneById($newsletterId); } - public function render($newsletter, $preview = false, $type = false, SendingTask $sendingTask = null) { + public function render($newsletter, SendingTask $sendingTask = null, $type = false) { + return $this->_render($newsletter, $sendingTask, $type); + } + + public function renderAsPreview($newsletter, $type = false) { + return $this->_render($newsletter, null, $type, true); + } + + private function _render($newsletter, SendingTask $sendingTask = null, $type = false, $preview = false) { $newsletter = $this->getNewsletter($newsletter); if (!$newsletter instanceof NewsletterEntity) { throw new RuntimeException('Newsletter was not found'); diff --git a/lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php b/lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php index 488c65eada..e7b3d25518 100644 --- a/lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php +++ b/lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php @@ -55,7 +55,11 @@ class ViewInBrowserRenderer { $newsletterBody = str_replace(Links::DATA_TAG_OPEN, '', $newsletterBody); } } else { - $newsletterBody = $this->renderer->render($newsletter, $wpUserPreview, 'html'); + if ($wpUserPreview) { + $newsletterBody = $this->renderer->renderAsPreview($newsletter, 'html'); + } else { + $newsletterBody = $this->renderer->render($newsletter, $sendingTask = null, 'html'); + } } $shortcodes = new Shortcodes( $newsletter, diff --git a/lib/WooCommerce/TransactionalEmails/Renderer.php b/lib/WooCommerce/TransactionalEmails/Renderer.php index 6ad5b72a42..fb70fcced8 100644 --- a/lib/WooCommerce/TransactionalEmails/Renderer.php +++ b/lib/WooCommerce/TransactionalEmails/Renderer.php @@ -34,7 +34,7 @@ class Renderer { } public function render(Newsletter $newsletter) { - $html = explode(Preprocessor::WC_CONTENT_PLACEHOLDER, $this->renderer->render($newsletter, true, 'html')); + $html = explode(Preprocessor::WC_CONTENT_PLACEHOLDER, $this->renderer->renderAsPreview($newsletter, 'html')); $this->htmlBeforeContent = $html[0]; $this->htmlAfterContent = $html[1]; } diff --git a/tests/integration/Newsletter/RendererTest.php b/tests/integration/Newsletter/RendererTest.php index aeec49b5a4..7dc8044d9a 100644 --- a/tests/integration/Newsletter/RendererTest.php +++ b/tests/integration/Newsletter/RendererTest.php @@ -63,7 +63,7 @@ class RendererTest extends \MailPoetTest { } public function testItRendersCompleteNewsletter() { - $template = $this->renderer->render($this->newsletter, true);// do not render logo + $template = $this->renderer->renderAsPreview($this->newsletter);// do not render logo expect(isset($template['html']))->true(); expect(isset($template['text']))->true(); $DOM = $this->dOMParser->parseStr($template['html']); @@ -592,7 +592,7 @@ class RendererTest extends \MailPoetTest { $this->license->method('hasLicense')->willReturn(true); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); - $template = $this->renderer->render($this->newsletter, false); + $template = $this->renderer->render($this->newsletter); expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); } @@ -601,7 +601,7 @@ class RendererTest extends \MailPoetTest { $this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(true); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); - $template = $this->renderer->render($this->newsletter, false); + $template = $this->renderer->render($this->newsletter); expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); } @@ -610,7 +610,7 @@ class RendererTest extends \MailPoetTest { $this->license->method('hasLicense')->willReturn(false); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); - $template = $this->renderer->render($this->newsletter, true); + $template = $this->renderer->renderAsPreview($this->newsletter); expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); } @@ -619,7 +619,7 @@ class RendererTest extends \MailPoetTest { $this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false); $this->license->method('hasLicense')->willReturn(false); - $template = $this->renderer->render($this->newsletter, false); + $template = $this->renderer->render($this->newsletter); expect($template['html'])->contains('mailpoet_logo_newsletter.png'); }