Add SubscriberLimit and InvalidApi key pages classes

[MAILPOET-2200]
This commit is contained in:
Rostislav Wolny
2019-07-15 17:35:47 +02:00
committed by M. Shull
parent 8693efdea5
commit cb1dd28ea9
5 changed files with 66 additions and 31 deletions

View File

@ -0,0 +1,23 @@
<?php
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Models\Subscriber;
if (!defined('ABSPATH')) exit;
class SubscribersAPIKeyInvalid {
/** @var PageRenderer */
private $page_renderer;
function __construct(PageRenderer $page_renderer) {
$this->page_renderer = $page_renderer;
}
function render() {
$this->page_renderer->displayPage('invalidkey.html', [
'subscriber_count' => Subscriber::getTotalSubscribers(),
]);
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
if (!defined('ABSPATH')) exit;
class SubscribersLimitExceeded {
/** @var PageRenderer */
private $page_renderer;
function __construct(PageRenderer $page_renderer) {
$this->page_renderer = $page_renderer;
}
function render() {
$this->page_renderer->displayPage('limit.html', [
'limit' => SubscribersFeature::SUBSCRIBERS_LIMIT,
]);
}
}

View File

@ -2,7 +2,6 @@
namespace MailPoet\Config;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
use MailPoet\AdminPages\Pages\FormEditor;
use MailPoet\AdminPages\Pages\Forms;
@ -15,13 +14,14 @@ use MailPoet\AdminPages\Pages\RevenueTrackingPermission;
use MailPoet\AdminPages\Pages\Segments;
use MailPoet\AdminPages\Pages\Settings;
use MailPoet\AdminPages\Pages\Subscribers;
use MailPoet\AdminPages\Pages\SubscribersAPIKeyInvalid;
use MailPoet\AdminPages\Pages\SubscribersExport;
use MailPoet\AdminPages\Pages\SubscribersImport;
use MailPoet\AdminPages\Pages\SubscribersLimitExceeded;
use MailPoet\AdminPages\Pages\Update;
use MailPoet\AdminPages\Pages\WelcomeWizard;
use MailPoet\AdminPages\Pages\WooCommerceListImport;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Models\Subscriber;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\Util\License\License;
use MailPoet\WP\Functions as WPFunctions;
@ -42,9 +42,6 @@ class Menu {
/** @var ServicesChecker */
private $servicesChecker;
/** @var PageRenderer */
private $page_renderer;
/** @var ContainerWrapper */
private $container;
@ -54,13 +51,11 @@ class Menu {
AccessControl $access_control,
WPFunctions $wp,
ServicesChecker $servicesChecker,
PageRenderer $page_renderer,
ContainerWrapper $containerWrapper
) {
$this->access_control = $access_control;
$this->wp = $wp;
$this->servicesChecker = $servicesChecker;
$this->page_renderer = $page_renderer;
$this->container = $containerWrapper;
}
@ -439,14 +434,14 @@ class Menu {
}
function forms() {
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceededTemplate();
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceeded();
$this->container->get(Forms::class)->render();
}
function newsletters() {
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceededTemplate();
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceeded();
if (isset($this->mp_api_key_valid) && $this->mp_api_key_valid === false) {
return $this->displayMailPoetAPIKeyInvalidTemplate();
return $this->displayMailPoetAPIKeyInvalid();
}
$this->container->get(Newsletters::class)->render();
}
@ -467,6 +462,16 @@ class Menu {
$this->container->get(FormEditor::class)->render();
}
private function displaySubscriberLimitExceeded() {
$this->container->get(SubscribersLimitExceeded::class)->render();
exit;
}
private function displayMailPoetAPIKeyInvalid() {
$this->container->get(SubscribersAPIKeyInvalid::class)->render();
exit;
}
function setPageTitle($title) {
return sprintf(
'%s - %s',
@ -475,20 +480,6 @@ class Menu {
);
}
function displaySubscriberLimitExceededTemplate() {
$this->page_renderer->displayPage('limit.html', [
'limit' => SubscribersFeature::SUBSCRIBERS_LIMIT,
]);
exit;
}
function displayMailPoetAPIKeyInvalidTemplate() {
$this->page_renderer->displayPage('invalidkey.html', [
'subscriber_count' => Subscriber::getTotalSubscribers(),
]);
exit;
}
static function isOnMailPoetAdminPage(array $exclude = null, $screen_id = null) {
if (is_null($screen_id)) {
if (empty($_REQUEST['page'])) {

View File

@ -42,8 +42,10 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\AdminPages\Pages\Segments::class);
$container->autowire(\MailPoet\AdminPages\Pages\Settings::class);
$container->autowire(\MailPoet\AdminPages\Pages\Subscribers::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersAPIKeyInvalid::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersExport::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersImport::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersLimitExceeded::class);
$container->autowire(\MailPoet\AdminPages\Pages\Update::class);
$container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class);
$container->autowire(\MailPoet\AdminPages\Pages\WooCommerceListImport::class);

View File

@ -3,7 +3,6 @@
namespace MailPoet\Test\Config;
use Codeception\Util\Stub;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\AccessControl;
use MailPoet\Config\Menu;
use MailPoet\Config\ServicesChecker;
@ -41,8 +40,7 @@ class MenuTest extends \MailPoetTest {
}
function testItChecksMailpoetAPIKey() {
$renderer = Stub::make(PageRenderer::class);
$menu = $this->getMenu($renderer);
$menu = $this->getMenu();
$_REQUEST['page'] = 'mailpoet-newsletters';
$checker = Stub::make(
@ -63,8 +61,7 @@ class MenuTest extends \MailPoetTest {
}
function testItChecksPremiumKey() {
$renderer = Stub::make(PageRenderer::class);
$menu = $this->getMenu($renderer);
$menu = $this->getMenu();
$_REQUEST['page'] = 'mailpoet-newsletters';
$checker = Stub::make(
@ -84,13 +81,12 @@ class MenuTest extends \MailPoetTest {
expect($menu->premium_key_valid)->false();
}
private function getMenu(PageRenderer $renderer) {
private function getMenu() {
$wp = new WPFunctions;
return new Menu(
new AccessControl(),
$wp,
new ServicesChecker,
$renderer,
ContainerWrapper::getInstance()
);
}