Add feature flag for WooCommerce orders sync job
[MAILPOET-2165]
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
namespace MailPoet\Cron\Workers;
|
namespace MailPoet\Cron\Workers;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Models\StatisticsClicks;
|
use MailPoet\Models\StatisticsClicks;
|
||||||
use MailPoet\Statistics\Track\WooCommercePurchases;
|
use MailPoet\Statistics\Track\WooCommercePurchases;
|
||||||
@ -20,13 +21,25 @@ class WooCommerceOrders extends SimpleWorker {
|
|||||||
/** @var WooCommercePurchases */
|
/** @var WooCommercePurchases */
|
||||||
private $woocommerce_purchases;
|
private $woocommerce_purchases;
|
||||||
|
|
||||||
function __construct(WCHelper $woocommerce_helper, WooCommercePurchases $woocommerce_purchases, $timer = false) {
|
/** @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_helper = $woocommerce_helper;
|
||||||
$this->woocommerce_purchases = $woocommerce_purchases;
|
$this->woocommerce_purchases = $woocommerce_purchases;
|
||||||
|
$this->features_controller = $features_controller;
|
||||||
parent::__construct($timer);
|
parent::__construct($timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkProcessingRequirements() {
|
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
|
return $this->woocommerce_helper->isWooCommerceActive() && empty(self::getCompletedTasks()); // run only once
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +153,6 @@ class WorkersFactory {
|
|||||||
|
|
||||||
/** @return WooCommerceOrders */
|
/** @return WooCommerceOrders */
|
||||||
function createWooCommerceOrdersWorker($timer) {
|
function createWooCommerceOrdersWorker($timer) {
|
||||||
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $timer);
|
return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $this->features_controller, $timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ namespace MailPoet\Test\Cron\Workers;
|
|||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use MailPoet\Cron\Workers\WooCommerceOrders;
|
use MailPoet\Cron\Workers\WooCommerceOrders;
|
||||||
|
use MailPoet\Features\FeaturesController;
|
||||||
|
use MailPoet\Models\FeatureFlag;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Models\StatisticsClicks;
|
use MailPoet\Models\StatisticsClicks;
|
||||||
use MailPoet\Statistics\Track\WooCommercePurchases;
|
use MailPoet\Statistics\Track\WooCommercePurchases;
|
||||||
@ -23,7 +25,12 @@ class WooCommerceOrdersTest extends \MailPoetTest {
|
|||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
$this->woocommerce_helper = $this->createMock(WooCommerceHelper::class);
|
$this->woocommerce_helper = $this->createMock(WooCommerceHelper::class);
|
||||||
$this->woocommerce_purchases = $this->createMock(WooCommercePurchases::class);
|
$this->woocommerce_purchases = $this->createMock(WooCommercePurchases::class);
|
||||||
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, microtime(true));
|
|
||||||
|
FeatureFlag::createOrUpdate([
|
||||||
|
'name' => FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES,
|
||||||
|
'value' => true,
|
||||||
|
]);
|
||||||
|
$this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, new FeaturesController(), microtime(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItDoesNotRunIfWooCommerceIsDisabled() {
|
function testItDoesNotRunIfWooCommerceIsDisabled() {
|
||||||
@ -139,6 +146,7 @@ class WooCommerceOrdersTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function cleanup() {
|
private function cleanup() {
|
||||||
|
\ORM::raw_execute('TRUNCATE ' . FeatureFlag::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . StatisticsClicks::$_table);
|
\ORM::raw_execute('TRUNCATE ' . StatisticsClicks::$_table);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user