diff --git a/lib/AdminPages/Pages/NewsletterEditor.php b/lib/AdminPages/Pages/NewsletterEditor.php index 3b0085665c..6979b5e70e 100644 --- a/lib/AdminPages/Pages/NewsletterEditor.php +++ b/lib/AdminPages/Pages/NewsletterEditor.php @@ -9,6 +9,7 @@ use MailPoet\Newsletter\Shortcodes\ShortcodesHelper; use MailPoet\Services\Bridge; use MailPoet\Settings\SettingsController; use MailPoet\Settings\UserFlagsController; +use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WP\Functions as WPFunctions; class NewsletterEditor { @@ -21,6 +22,9 @@ class NewsletterEditor { /** @var UserFlagsController */ private $user_flags; + /** @var WooCommerceHelper */ + private $woocommerce_helper; + /** @var WPFunctions */ private $wp; @@ -28,15 +32,31 @@ class NewsletterEditor { PageRenderer $page_renderer, SettingsController $settings, UserFlagsController $user_flags, + WooCommerceHelper $woocommerce_helper, WPFunctions $wp ) { $this->page_renderer = $page_renderer; $this->settings = $settings; $this->user_flags = $user_flags; + $this->woocommerce_helper = $woocommerce_helper; $this->wp = $wp; } function render() { + $newsletter_id = (isset($_GET['id']) ? (int)$_GET['id'] : 0); + $woocommerce_template_id = (int)$this->settings->get('woocommerce.transactional_email_id', null); + if ( + $woocommerce_template_id + && $newsletter_id === $woocommerce_template_id + && ( + !$this->woocommerce_helper->isWooCommerceActive() + || !(bool)$this->settings->get('woocommerce.use_mailpoet_editor', false) + ) + ) { + header('Location: admin.php?page=mailpoet-settings#woocommerce', true, 302); + return; + } + $subscriber = Subscriber::getCurrentWPUser(); $subscriber_data = $subscriber ? $subscriber->asArray() : []; $data = [