Use feature flags instead of settings

[MAILPOET-1856]
This commit is contained in:
Pavel Dohnal
2019-05-20 15:31:47 +02:00
committed by M. Shull
parent a81c12ecc1
commit 875a54eb3d
4 changed files with 23 additions and 9 deletions

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Config;
use MailPoet\Features\FeaturesController;
use MailPoet\Settings\SettingsController;
use MailPoet\Util\Url;
use MailPoet\WooCommerce\Helper;
@@ -20,16 +21,21 @@ class Changelog {
/** @var Url */
private $url_helper;
/** @var FeaturesController */
private $features_controller;
function __construct(
SettingsController $settings,
WPFunctions $wp,
Helper $wooCommerceHelper,
Url $url_helper
Url $url_helper,
FeaturesController $features_controller
) {
$this->wooCommerceHelper = $wooCommerceHelper;
$this->settings = $settings;
$this->wp = $wp;
$this->url_helper = $url_helper;
$this->features_controller = $features_controller;
}
function init() {
@@ -63,7 +69,7 @@ class Changelog {
$this->checkWelcomeWizard();
}
$this->checkWooCommerceListImportPage();
if ($this->settings->get('display_revenues')) {
if ($this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
$this->checkRevenueTrackingPermissionPage();
}
}

View File

@@ -367,10 +367,10 @@ class Menu {
$this->wp->__('Track WooCommerce revenues with cookies', 'mailpoet'),
AccessControl::PERMISSION_ACCESS_PLUGIN_ADMIN,
'mailpoet-revenue-tracking-permission',
array(
[
$this,
'revenueTrackingPermission'
)
'revenueTrackingPermission',
]
);
// Update page
@@ -446,7 +446,7 @@ class Menu {
}
function revenueTrackingPermission() {
if (!$this->settings->get('display_revenues')) {
if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
return;
}
if ((bool)(defined('DOING_AJAX') && DOING_AJAX)) return;
@@ -533,6 +533,7 @@ class Menu {
'current_user' => $this->wp->wpGetCurrentUser(),
'linux_cron_path' => dirname(dirname(__DIR__)),
'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(),
'display_revenues' => $this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES),
'ABSPATH' => ABSPATH,
'hosts' => [
'web' => Hosts::getWebHosts(),

View File

@@ -3,9 +3,12 @@
namespace MailPoet\Test\Acceptance;
use Codeception\Util\Locator;
use MailPoet\Features\FeaturesController;
use MailPoet\Test\DataFactories\Features;
use MailPoet\Test\DataFactories\Newsletter;
use MailPoet\Test\DataFactories\Settings;
require_once __DIR__ . '/../DataFactories/Features.php';
require_once __DIR__ . '/../DataFactories/Newsletter.php';
require_once __DIR__ . '/../DataFactories/Settings.php';
@@ -14,13 +17,17 @@ class RevenueTrackingCookieCest {
/** @var Settings */
private $settings;
protected function _inject(Settings $settings) {
/** @var Features */
private $features;
protected function _inject(Settings $settings, Features $features) {
$this->settings = $settings;
$this->features = $features;
}
function _before(\AcceptanceTester $I) {
$I->activateWooCommerce();
$this->settings->withDisplayRevenuesEnabled();
$this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES);
}
function _after(\AcceptanceTester $I) {

View File

@@ -80,7 +80,7 @@
</p>
</td>
</tr>
<% if settings.display_revenues %>
<% if display_revenues %>
<tr>
<th scope="row">
<label for="settings[mailpoet_accept_cookie_revenue_tracking]">