Add feature flag for WooCommerce orders sync job
[MAILPOET-2165]
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
namespace MailPoet\Cron\Workers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use MailPoet\Features\FeaturesController;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\StatisticsClicks;
|
||||
use MailPoet\Statistics\Track\WooCommercePurchases;
|
||||
@ -20,13 +21,25 @@ class WooCommerceOrders extends SimpleWorker {
|
||||
/** @var WooCommercePurchases */
|
||||
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_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
|
||||
}
|
||||
|
||||
|
@ -153,6 +153,6 @@ class WorkersFactory {
|
||||
|
||||
/** @return WooCommerceOrders */
|
||||
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 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;
|
||||
@ -23,7 +25,12 @@ class WooCommerceOrdersTest extends \MailPoetTest {
|
||||
$this->cleanup();
|
||||
$this->woocommerce_helper = $this->createMock(WooCommerceHelper::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() {
|
||||
@ -139,6 +146,7 @@ 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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user