Remove feature flag for woocommerce revenues

[MAILPOET-1990]
This commit is contained in:
Ján Mikláš
2019-07-17 14:23:19 +02:00
committed by M. Shull
parent c5ee2baaa2
commit 2b8325a738
17 changed files with 46 additions and 134 deletions

View File

@ -8,7 +8,6 @@ use MailPoet\API\JSON\Error as APIError;
use MailPoet\Config\AccessControl;
use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask;
use MailPoet\Features\FeaturesController;
use MailPoet\Listing;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterOption;
@ -45,9 +44,6 @@ class Newsletters extends APIEndpoint {
/** @var SettingsController */
private $settings;
/** @var FeaturesController */
private $features_controller;
/** @var AuthorizedEmailsController */
private $authorized_emails_controller;
@ -61,7 +57,6 @@ class Newsletters extends APIEndpoint {
WPFunctions $wp,
WCHelper $woocommerce_helper,
SettingsController $settings,
FeaturesController $features_controller,
AuthorizedEmailsController $authorized_emails_controller
) {
$this->bulk_action = $bulk_action;
@ -69,7 +64,6 @@ class Newsletters extends APIEndpoint {
$this->wp = $wp;
$this->woocommerce_helper = $woocommerce_helper;
$this->settings = $settings;
$this->features_controller = $features_controller;
$this->authorized_emails_controller = $authorized_emails_controller;
}
@ -106,7 +100,7 @@ class Newsletters extends APIEndpoint {
->withOptions()
->withSendingQueue()
->withTotalSent()
->withStatistics($this->woocommerce_helper, $this->features_controller);
->withStatistics($this->woocommerce_helper);
$preview_url = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
@ -483,13 +477,13 @@ class Newsletters extends APIEndpoint {
$newsletter
->withSegments(true)
->withSendingQueue()
->withStatistics($this->woocommerce_helper, $this->features_controller);
->withStatistics($this->woocommerce_helper);
} else if ($newsletter->type === Newsletter::TYPE_WELCOME || $newsletter->type === Newsletter::TYPE_AUTOMATIC) {
$newsletter
->withOptions()
->withTotalSent()
->withScheduledToBeSent()
->withStatistics($this->woocommerce_helper, $this->features_controller);
->withStatistics($this->woocommerce_helper);
} else if ($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
$newsletter
->withOptions()
@ -499,7 +493,7 @@ class Newsletters extends APIEndpoint {
$newsletter
->withSegments(true)
->withSendingQueue()
->withStatistics($this->woocommerce_helper, $this->features_controller);
->withStatistics($this->woocommerce_helper);
}
if ($newsletter->status === Newsletter::STATUS_SENT ||

View File

@ -4,7 +4,6 @@ namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\Menu;
use MailPoet\Features\FeaturesController;
use MailPoet\WP\Functions as WPFunctions;
if (!defined('ABSPATH')) exit;
@ -16,23 +15,15 @@ class RevenueTrackingPermission {
/** @var WPFunctions */
private $wp;
/** @var FeaturesController */
private $features_controller;
function __construct(
PageRenderer $page_renderer,
WPFunctions $wp,
FeaturesController $features_controller
WPFunctions $wp
) {
$this->page_renderer = $page_renderer;
$this->wp = $wp;
$this->features_controller = $features_controller;
}
function render() {
if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
return;
}
if ((bool)(defined('DOING_AJAX') && DOING_AJAX)) return;
$data = [
'finish_wizard_url' => $this->wp->adminUrl('admin.php?page=' . Menu::MAIN_PAGE_SLUG),

View File

@ -6,7 +6,6 @@ use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\Installer;
use MailPoet\Config\ServicesChecker;
use MailPoet\Cron\CronTrigger;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
use MailPoet\Services\Bridge;
@ -40,9 +39,6 @@ class Settings {
/** @var Captcha */
private $captcha;
/** @var FeaturesController */
private $features_controller;
/** @var Installation */
private $installation;
@ -52,7 +48,6 @@ class Settings {
WooCommerceHelper $woocommerce_helper,
WPFunctions $wp,
ServicesChecker $services_checker,
FeaturesController $features_controller,
Installation $installation,
Captcha $captcha
) {
@ -61,7 +56,6 @@ class Settings {
$this->woocommerce_helper = $woocommerce_helper;
$this->wp = $wp;
$this->services_checker = $services_checker;
$this->features_controller = $features_controller;
$this->installation = $installation;
$this->captcha = $captcha;
}
@ -89,7 +83,6 @@ class Settings {
'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

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

View File

@ -5,7 +5,6 @@ namespace MailPoet\Cron\Workers\StatsNotifications;
use Carbon\Carbon;
use MailPoet\Config\Renderer;
use MailPoet\Cron\CronHelper;
use MailPoet\Features\FeaturesController;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterLink;
@ -33,9 +32,6 @@ class Worker {
/** @var SettingsController */
private $settings;
/** @var FeaturesController */
private $features_controller;
/** @var WCHelper */
private $woocommerce_helper;
@ -43,7 +39,6 @@ class Worker {
Mailer $mailer,
Renderer $renderer,
SettingsController $settings,
FeaturesController $features_controller,
WCHelper $woocommerce_helper,
$timer = false
) {
@ -51,7 +46,6 @@ class Worker {
$this->renderer = $renderer;
$this->mailer = $mailer;
$this->settings = $settings;
$this->features_controller = $features_controller;
$this->woocommerce_helper = $woocommerce_helper;
}
@ -109,7 +103,7 @@ class Worker {
return $newsletter
->withSendingQueue()
->withTotalSent()
->withStatistics($this->woocommerce_helper, $this->features_controller);
->withStatistics($this->woocommerce_helper);
}
/**

View File

@ -2,7 +2,6 @@
namespace MailPoet\Cron\Workers;
use Carbon\Carbon;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Statistics\Track\WooCommercePurchases;
@ -21,25 +20,17 @@ class WooCommerceOrders extends SimpleWorker {
/** @var WooCommercePurchases */
private $woocommerce_purchases;
/** @var FeaturesController */
private $features_controller;
function __construct(
WCHelper $woocommerce_helper,
WooCommercePurchases $woocommerce_purchases,
FeaturesController $features_controller,
$timer = false
) {
$this->woocommerce_helper = $woocommerce_helper;
$this->woocommerce_purchases = $woocommerce_purchases;
$this->features_controller = $features_controller;
parent::__construct($timer);
}
function checkProcessingRequirements() {
if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) {
return false;
}
return $this->woocommerce_helper->isWooCommerceActive() && empty(self::getCompletedTasks()); // run only once
}

View File

@ -14,7 +14,6 @@ use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck as PremiumKeyCheckWorker;
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker;
use MailPoet\Cron\Workers\WooCommerceSync as WooCommerceSyncWorker;
use MailPoet\Cron\Workers\SendingQueue\SendingErrorHandler;
use MailPoet\Features\FeaturesController;
use MailPoet\Segments\SubscribersFinder;
use MailPoet\Segments\WooCommerce as WooCommerceSegment;
use MailPoet\Services\AuthorizedEmailsController;
@ -39,9 +38,6 @@ class WorkersFactory {
/** @var SettingsController */
private $settings;
/** @var FeaturesController */
private $features_controller;
/** @var WooCommerceSegment */
private $woocommerce_segment;
@ -71,7 +67,6 @@ class WorkersFactory {
Mailer $mailer,
Renderer $renderer,
SettingsController $settings,
FeaturesController $features_controller,
WooCommerceSegment $woocommerce_segment,
InactiveSubscribersController $inactive_subscribers_controller,
WooCommerceHelper $woocommerce_helper,
@ -84,7 +79,6 @@ class WorkersFactory {
$this->mailer = $mailer;
$this->renderer = $renderer;
$this->settings = $settings;
$this->features_controller = $features_controller;
$this->woocommerce_segment = $woocommerce_segment;
$this->inactive_subscribers_controller = $inactive_subscribers_controller;
$this->woocommerce_helper = $woocommerce_helper;
@ -105,7 +99,7 @@ class WorkersFactory {
/** @return StatsNotificationsWorker */
function createStatsNotificationsWorker($timer) {
return new StatsNotificationsWorker($this->mailer, $this->renderer, $this->settings, $this->features_controller, $this->woocommerce_helper, $timer);
return new StatsNotificationsWorker($this->mailer, $this->renderer, $this->settings, $this->woocommerce_helper, $timer);
}
/** @return StatsNotificationsWorkerForAutomatedEmails */
@ -160,6 +154,6 @@ class WorkersFactory {
/** @return WooCommerceOrders */
function createWooCommerceOrdersWorker($timer) {
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $this->features_controller, $timer);
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $timer);
}
}

View File

@ -8,12 +8,10 @@ class FeaturesController {
// Define features below in the following form:
// const FEATURE_NAME_OF_FEATURE = 'name-of-feature';
const FEATURE_DISPLAY_WOOCOMMERCE_REVENUES = 'display-woocommerce-revenues'; // may also have 'display_revenues' setting
// Define feature defaults in the array below in the following form:
// self::FEATURE_NAME_OF_FEATURE => true,
private $defaults = [
self::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES => false,
];
/** @var array */

View File

@ -1,7 +1,6 @@
<?php
namespace MailPoet\Models;
use Carbon\Carbon;
use MailPoet\Features\FeaturesController;
use MailPoet\Newsletter\Renderer\Renderer;
use MailPoet\Settings\SettingsController;
use MailPoet\Tasks\Sending as SendingTask;
@ -560,8 +559,8 @@ class Newsletter extends Model {
return $this;
}
function withStatistics(WCHelper $woocommerce_helper, FeaturesController $features_controller) {
$statistics = $this->getStatistics($woocommerce_helper, $features_controller);
function withStatistics(WCHelper $woocommerce_helper) {
$statistics = $this->getStatistics($woocommerce_helper);
$this->statistics = $statistics;
return $this;
}
@ -571,7 +570,7 @@ class Newsletter extends Model {
return $renderer->render();
}
function getStatistics(WCHelper $woocommerce_helper, FeaturesController $features_controller) {
function getStatistics(WCHelper $woocommerce_helper) {
if (($this->type !== self::TYPE_WELCOME) && ($this->queue === false)) {
return false;
}
@ -600,10 +599,7 @@ class Newsletter extends Model {
}
// WooCommerce revenues
if (
$features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)
&& $woocommerce_helper->isWooCommerceActive()
) {
if ($woocommerce_helper->isWooCommerceActive()) {
$currency = $woocommerce_helper->getWoocommerceCurrency();
$row = StatisticsWooCommercePurchases::selectExpr('SUM(order_price_total) AS total')
->selectExpr('count(*)', 'count')

View File

@ -2,7 +2,6 @@
namespace MailPoet\Test\Acceptance;
class FreePlanAnnouncementCest {
const NOTICE_SELECTOR = '[data-automation-id="free-plan-announcement"]';

View File

@ -2,8 +2,6 @@
namespace MailPoet\Test\Acceptance;
use MailPoet\Features\FeaturesController;
use MailPoet\Test\DataFactories\Features;
use MailPoet\Test\DataFactories\Newsletter;
use MailPoet\Test\DataFactories\NewsletterLink;
use MailPoet\Test\DataFactories\Settings;
@ -17,17 +15,12 @@ class NewsletterStatisticsCest {
/** @var Settings */
private $settings;
/** @var Features */
private $features;
protected function _inject(Settings $settings, Features $features) {
protected function _inject(Settings $settings) {
$this->settings = $settings;
$this->features = $features;
}
function _before(\AcceptanceTester $I) {
$I->activateWooCommerce();
$this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES);
$this->settings->withWooCommerceListImportPageDisplayed(true);
$this->settings->withCookieRevenueTrackingDisabled();
}

View File

@ -3,12 +3,9 @@
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';
@ -17,17 +14,12 @@ class RevenueTrackingCookieCest {
/** @var Settings */
private $settings;
/** @var Features */
private $features;
protected function _inject(Settings $settings, Features $features) {
protected function _inject(Settings $settings) {
$this->settings = $settings;
$this->features = $features;
}
function _before(\AcceptanceTester $I) {
$I->activateWooCommerce();
$this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES);
}
function _after(\AcceptanceTester $I) {

View File

@ -8,7 +8,6 @@ use Codeception\Util\Fixtures;
use Codeception\Util\Stub;
use Helper\WordPressHooks as WPHooksHelper;
use MailPoet\API\JSON\Response as APIResponse;
use MailPoet\Features\FeaturesController;
use MailPoet\Listing\BulkActionController;
use MailPoet\Listing\Handler;
use MailPoet\API\JSON\v1\Newsletters;
@ -127,7 +126,6 @@ class NewslettersTest extends \MailPoetTest {
$wp,
$this->makeEmpty(WCHelper::class),
new SettingsController(),
new FeaturesController(),
$this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::never()])
);
$response = $this->endpoint->get(['id' => $this->newsletter->id]);
@ -168,7 +166,6 @@ class NewslettersTest extends \MailPoetTest {
$wp,
$this->makeEmpty(WCHelper::class),
new SettingsController(),
new FeaturesController(),
$this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::once()])
);
@ -536,7 +533,6 @@ class NewslettersTest extends \MailPoetTest {
$wp,
$this->makeEmpty(WCHelper::class),
new SettingsController(),
new FeaturesController(),
$this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::never()])
);

View File

@ -3,7 +3,6 @@
namespace MailPoet\Cron\Workers\StatsNotifications;
use MailPoet\Config\Renderer;
use MailPoet\Features\FeaturesController;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterLink;
@ -46,7 +45,7 @@ class WorkerTest extends \MailPoetTest {
$this->mailer = $this->createMock(Mailer::class);
$this->renderer = $this->createMock(Renderer::class);
$this->settings = new SettingsController();
$this->stats_notifications = new Worker($this->mailer, $this->renderer, $this->settings, new FeaturesController(), $this->makeEmpty(WCHelper::class));
$this->stats_notifications = new Worker($this->mailer, $this->renderer, $this->settings, $this->makeEmpty(WCHelper::class));
$this->settings->set(Worker::SETTINGS_KEY, [
'enabled' => true,
'address' => 'email@example.com',

View File

@ -4,8 +4,6 @@ namespace MailPoet\Test\Cron\Workers;
use DateTime;
use MailPoet\Cron\Workers\WooCommerceOrders;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\FeatureFlag;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Statistics\Track\WooCommercePurchases;
@ -26,11 +24,7 @@ class WooCommerceOrdersTest extends \MailPoetTest {
$this->woocommerce_helper = $this->createMock(WooCommerceHelper::class);
$this->woocommerce_purchases = $this->createMock(WooCommercePurchases::class);
FeatureFlag::createOrUpdate([
'name' => FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES,
'value' => true,
]);
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, new FeaturesController(), microtime(true));
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, microtime(true));
}
function testItDoesNotRunIfWooCommerceIsDisabled() {
@ -146,7 +140,6 @@ class WooCommerceOrdersTest extends \MailPoetTest {
}
private function cleanup() {
\ORM::raw_execute('TRUNCATE ' . FeatureFlag::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . StatisticsClicks::$_table);
}

View File

@ -2,7 +2,6 @@
namespace MailPoet\Test\Models;
use Carbon\Carbon;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\Newsletter;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
@ -171,7 +170,7 @@ class NewsletterTest extends \MailPoetTest {
$unsubscribes->save();
$newsletter->queue = $newsletter->getQueue()->asArray();
$statistics = $newsletter->getStatistics($this->makeEmpty(WCHelper::class), new FeaturesController());
$statistics = $newsletter->getStatistics($this->makeEmpty(WCHelper::class));
expect($statistics['opened'])->equals(1);
expect($statistics['clicked'])->equals(1);
expect($statistics['unsubscribed'])->equals(1);

View File

@ -80,7 +80,6 @@
</p>
</td>
</tr>
<% if display_revenues %>
<tr>
<th scope="row">
<label for="settings[mailpoet_accept_cookie_revenue_tracking]">
@ -108,5 +107,4 @@
</p>
</td>
</tr>
<% endif %>
</table>