diff --git a/lib/Newsletter/Renderer/Preprocessor.php b/lib/Newsletter/Renderer/Preprocessor.php index bf9a5e8ce9..931fce245a 100644 --- a/lib/Newsletter/Renderer/Preprocessor.php +++ b/lib/Newsletter/Renderer/Preprocessor.php @@ -2,9 +2,12 @@ namespace MailPoet\Newsletter\Renderer; +use MailPoet\Newsletter\Editor\LayoutHelper; use MailPoet\Newsletter\Renderer\Blocks\Renderer as BlocksRenderer; class Preprocessor { + const WC_HEADING_PLACEHOLDER = '[mailpet_woocommerce_heading_placeholder]'; + const WC_CONTENT_PLACEHOLDER = '[mailpet_woocommerce_content_placeholder]'; /** @var BlocksRenderer */ private $blocks_renderer; @@ -23,16 +26,40 @@ class Preprocessor { } $blocks = []; foreach ($content['blocks'] as $block) { - if ($block['type'] === 'automatedLatestContentLayout') { - $blocks = array_merge( - $blocks, - $this->blocks_renderer->automatedLatestContentTransformedPosts($block) - ); - } else { - $blocks[] = $block; - } + $blocks = array_merge($blocks, $this->processBlock($block)); } $content['blocks'] = $blocks; return $content; } + + /** + * @param array $block + * @return array + */ + public function processBlock($block) { + switch ($block['type']) { + case 'automatedLatestContentLayout': + return $this->blocks_renderer->automatedLatestContentTransformedPosts($block); + case 'woocommerceHeading': + return $this->placeholder(self::WC_HEADING_PLACEHOLDER); + case 'woocommerceContent': + return $this->placeholder(self::WC_CONTENT_PLACEHOLDER); + } + return [$block]; + } + + /** + * @param array $block + * @return array + */ + private function placeholder($text) { + return [ + LayoutHelper::row([ + LayoutHelper::col([[ + 'type' => 'text', + 'text' => $text, + ]]), + ]), + ]; + } } \ No newline at end of file