From 59c8dfe0a7b009a52728ddbbd4e46fb1f0f90a8d Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Thu, 10 Jun 2021 10:02:54 +0200 Subject: [PATCH] Force Woo email settings filters for woo template editor In order to load correct global styles even when the feature for using MailPoet's Woo template is off, we need to make sure we always apply filters before we load woo styles. [MAILPOET-3645] --- lib/AdminPages/Pages/NewsletterEditor.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/AdminPages/Pages/NewsletterEditor.php b/lib/AdminPages/Pages/NewsletterEditor.php index 440a527d77..8140eeb6fc 100644 --- a/lib/AdminPages/Pages/NewsletterEditor.php +++ b/lib/AdminPages/Pages/NewsletterEditor.php @@ -12,6 +12,7 @@ use MailPoet\Settings\SettingsController; use MailPoet\Settings\UserFlagsController; use MailPoet\Subscribers\SubscribersRepository; use MailPoet\WooCommerce\Helper as WooCommerceHelper; +use MailPoet\WooCommerce\TransactionalEmailHooks; use MailPoet\WooCommerce\TransactionalEmails; use MailPoet\WP\Functions as WPFunctions; @@ -45,6 +46,9 @@ class NewsletterEditor { /** @var SubscribersRepository */ private $subscribersRepository; + /** @var TransactionalEmailHooks */ + private $wooEmailHooks; + public function __construct( PageRenderer $pageRenderer, SettingsController $settings, @@ -54,7 +58,8 @@ class NewsletterEditor { TransactionalEmails $wcTransactionalEmails, ShortcodesHelper $shortcodesHelper, ServicesChecker $servicesChecker, - SubscribersRepository $subscribersRepository + SubscribersRepository $subscribersRepository, + TransactionalEmailHooks $wooEmailHooks ) { $this->pageRenderer = $pageRenderer; $this->settings = $settings; @@ -65,6 +70,7 @@ class NewsletterEditor { $this->servicesChecker = $servicesChecker; $this->shortcodesHelper = $shortcodesHelper; $this->subscribersRepository = $subscribersRepository; + $this->wooEmailHooks = $wooEmailHooks; } public function render() { @@ -88,6 +94,10 @@ class NewsletterEditor { $subscriberData = $subscriber ? $this->formatSubscriber($subscriber) : []; $woocommerceData = []; if ($this->woocommerceHelper->isWooCommerceActive()) { + // Activate hooks for Woo emails styles so that we always load styles set in Woo email customizer + if ($newsletterId === (int)$this->settings->get(TransactionalEmails::SETTING_EMAIL_ID)) { + $this->wooEmailHooks->overrideStylesForWooEmails(); + } $wcEmailSettings = $this->wcTransactionalEmails->getWCEmailSettings(); $woocommerceData = [ 'email_headings' => $this->wcTransactionalEmails->getEmailHeadings(),