Use feature flags instead of settings
[MAILPOET-1856]
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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(),
|
||||
|
@@ -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) {
|
||||
|
@@ -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]">
|
||||
|
Reference in New Issue
Block a user