Use feature flags instead of settings
[MAILPOET-1856]
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Util\Url;
|
use MailPoet\Util\Url;
|
||||||
use MailPoet\WooCommerce\Helper;
|
use MailPoet\WooCommerce\Helper;
|
||||||
@@ -20,16 +21,21 @@ class Changelog {
|
|||||||
/** @var Url */
|
/** @var Url */
|
||||||
private $url_helper;
|
private $url_helper;
|
||||||
|
|
||||||
|
/** @var FeaturesController */
|
||||||
|
private $features_controller;
|
||||||
|
|
||||||
function __construct(
|
function __construct(
|
||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
Helper $wooCommerceHelper,
|
Helper $wooCommerceHelper,
|
||||||
Url $url_helper
|
Url $url_helper,
|
||||||
|
FeaturesController $features_controller
|
||||||
) {
|
) {
|
||||||
$this->wooCommerceHelper = $wooCommerceHelper;
|
$this->wooCommerceHelper = $wooCommerceHelper;
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->url_helper = $url_helper;
|
$this->url_helper = $url_helper;
|
||||||
|
$this->features_controller = $features_controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -63,7 +69,7 @@ class Changelog {
|
|||||||
$this->checkWelcomeWizard();
|
$this->checkWelcomeWizard();
|
||||||
}
|
}
|
||||||
$this->checkWooCommerceListImportPage();
|
$this->checkWooCommerceListImportPage();
|
||||||
if ($this->settings->get('display_revenues')) {
|
if ($this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
|
||||||
$this->checkRevenueTrackingPermissionPage();
|
$this->checkRevenueTrackingPermissionPage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -367,10 +367,10 @@ class Menu {
|
|||||||
$this->wp->__('Track WooCommerce revenues with cookies', 'mailpoet'),
|
$this->wp->__('Track WooCommerce revenues with cookies', 'mailpoet'),
|
||||||
AccessControl::PERMISSION_ACCESS_PLUGIN_ADMIN,
|
AccessControl::PERMISSION_ACCESS_PLUGIN_ADMIN,
|
||||||
'mailpoet-revenue-tracking-permission',
|
'mailpoet-revenue-tracking-permission',
|
||||||
array(
|
[
|
||||||
$this,
|
$this,
|
||||||
'revenueTrackingPermission'
|
'revenueTrackingPermission',
|
||||||
)
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
// Update page
|
// Update page
|
||||||
@@ -446,7 +446,7 @@ class Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function revenueTrackingPermission() {
|
function revenueTrackingPermission() {
|
||||||
if (!$this->settings->get('display_revenues')) {
|
if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((bool)(defined('DOING_AJAX') && DOING_AJAX)) return;
|
if ((bool)(defined('DOING_AJAX') && DOING_AJAX)) return;
|
||||||
@@ -533,6 +533,7 @@ class Menu {
|
|||||||
'current_user' => $this->wp->wpGetCurrentUser(),
|
'current_user' => $this->wp->wpGetCurrentUser(),
|
||||||
'linux_cron_path' => dirname(dirname(__DIR__)),
|
'linux_cron_path' => dirname(dirname(__DIR__)),
|
||||||
'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(),
|
'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(),
|
||||||
|
'display_revenues' => $this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES),
|
||||||
'ABSPATH' => ABSPATH,
|
'ABSPATH' => ABSPATH,
|
||||||
'hosts' => [
|
'hosts' => [
|
||||||
'web' => Hosts::getWebHosts(),
|
'web' => Hosts::getWebHosts(),
|
||||||
|
@@ -3,9 +3,12 @@
|
|||||||
namespace MailPoet\Test\Acceptance;
|
namespace MailPoet\Test\Acceptance;
|
||||||
|
|
||||||
use Codeception\Util\Locator;
|
use Codeception\Util\Locator;
|
||||||
|
use MailPoet\Features\FeaturesController;
|
||||||
|
use MailPoet\Test\DataFactories\Features;
|
||||||
use MailPoet\Test\DataFactories\Newsletter;
|
use MailPoet\Test\DataFactories\Newsletter;
|
||||||
use MailPoet\Test\DataFactories\Settings;
|
use MailPoet\Test\DataFactories\Settings;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../DataFactories/Features.php';
|
||||||
require_once __DIR__ . '/../DataFactories/Newsletter.php';
|
require_once __DIR__ . '/../DataFactories/Newsletter.php';
|
||||||
require_once __DIR__ . '/../DataFactories/Settings.php';
|
require_once __DIR__ . '/../DataFactories/Settings.php';
|
||||||
|
|
||||||
@@ -14,13 +17,17 @@ class RevenueTrackingCookieCest {
|
|||||||
/** @var Settings */
|
/** @var Settings */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
protected function _inject(Settings $settings) {
|
/** @var Features */
|
||||||
|
private $features;
|
||||||
|
|
||||||
|
protected function _inject(Settings $settings, Features $features) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
|
$this->features = $features;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _before(\AcceptanceTester $I) {
|
function _before(\AcceptanceTester $I) {
|
||||||
$I->activateWooCommerce();
|
$I->activateWooCommerce();
|
||||||
$this->settings->withDisplayRevenuesEnabled();
|
$this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _after(\AcceptanceTester $I) {
|
function _after(\AcceptanceTester $I) {
|
||||||
|
@@ -80,7 +80,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% if settings.display_revenues %>
|
<% if display_revenues %>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">
|
<th scope="row">
|
||||||
<label for="settings[mailpoet_accept_cookie_revenue_tracking]">
|
<label for="settings[mailpoet_accept_cookie_revenue_tracking]">
|
||||||
|
Reference in New Issue
Block a user