diff --git a/mailpoet/lib/Config/Menu.php b/mailpoet/lib/Config/Menu.php
index 9fc103efff..2e29525966 100644
--- a/mailpoet/lib/Config/Menu.php
+++ b/mailpoet/lib/Config/Menu.php
@@ -482,8 +482,14 @@ class Menu {
}
private function registerAutomationMenu(bool $showEntries) {
+ $parentSlug = self::MAIN_PAGE_SLUG;
+ // Automations menu is hidden when the subscription is part of a bundle and AutomateWoo is active but pages can be accessed directly
+ if ($this->wp->isPluginActive('automatewoo/automatewoo.php') && $this->servicesChecker->isBundledSubscription()) {
+ $parentSlug = null;
+ }
+
$automationPage = $this->wp->addSubmenuPage(
- $showEntries ? self::MAIN_PAGE_SLUG : true,
+ $showEntries ? $parentSlug : true,
$this->setPageTitle(__('Automations', 'mailpoet')),
// @ToDo Remove Beta once Automation is no longer beta.
'' . esc_html__('Automations', 'mailpoet') . 'Beta',
@@ -503,6 +509,7 @@ class Menu {
);
// Automation templates
+
$this->wp->addSubmenuPage(
true,
$this->setPageTitle(__('Automation Templates', 'mailpoet')),
diff --git a/mailpoet/tests/integration/Config/MenuTest.php b/mailpoet/tests/integration/Config/MenuTest.php
index fbca52c7eb..b30ae44798 100644
--- a/mailpoet/tests/integration/Config/MenuTest.php
+++ b/mailpoet/tests/integration/Config/MenuTest.php
@@ -3,8 +3,13 @@
namespace MailPoet\Test\Config;
use Codeception\Util\Stub;
+use MailPoet\Config\AccessControl;
+use MailPoet\Config\Changelog;
use MailPoet\Config\Menu;
+use MailPoet\Config\Router;
use MailPoet\Config\ServicesChecker;
+use MailPoet\Form\Util\CustomFonts;
+use MailPoet\WP\Functions as WPFunctions;
class MenuTest extends \MailPoetTest {
public function testItReturnsTrueIfCurrentPageBelongsToMailpoet() {
@@ -56,4 +61,46 @@ class MenuTest extends \MailPoetTest {
$menu->checkPremiumKey($checker);
expect($menu->premiumKeyValid)->false();
}
+
+ public function testItHidesAutomationIfBundledSubscriptionAndAutomateWooActive() {
+ $checker = Stub::make(
+ new ServicesChecker(),
+ [
+ 'isPremiumKeyValid' => true,
+ 'isBundledSubscription' => true,
+ ],
+ $this
+ );
+ $changelog = $this->createMock(Changelog::class);
+ $changelog->method('shouldShowWelcomeWizard')->willReturn(false);
+
+ $wpMock = $this->createMock(WPFunctions::class);
+ $wpMock->method('isPluginActive')->willReturn(true);
+ $wpMock->method('addSubmenuPage')->willReturn(true);
+
+ $accessControlMock = $this->createMock(AccessControl::class);
+ $accessControlMock->method('validatePermission')->willReturn(true);
+
+ $wpMock->expects($this->at(8))->method('addSubmenuPage')->with(
+ null,
+ $this->anything(),
+ $this->anything(),
+ $this->anything(),
+ Menu::AUTOMATIONS_PAGE_SLUG,
+ $this->anything()
+ );
+
+ $menu = new Menu(
+ $accessControlMock,
+ $wpMock,
+ $checker,
+ $this->diContainer,
+ $this->diContainer->get(Router::class),
+ $this->diContainer->get(CustomFonts::class),
+ $changelog
+ );
+
+ $menu->setup();
+
+ }
}