Use Doctrine in WooCommercePastOrders cron worker

[MAILPOET-3814]
This commit is contained in:
Pavel Dohnal
2021-10-13 13:25:25 +02:00
committed by Veljko V
parent cfa87a165d
commit 102e333521
2 changed files with 39 additions and 5 deletions

View File

@@ -3,8 +3,8 @@
namespace MailPoet\Cron\Workers;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Models\StatisticsWooCommercePurchases;
use MailPoet\Entities\StatisticsClickEntity;
use MailPoet\Statistics\StatisticsClicksRepository;
use MailPoet\Statistics\Track\WooCommercePurchases;
use MailPoet\WooCommerce\Helper as WCHelper;
use MailPoetVendor\Carbon\Carbon;
@@ -19,12 +19,17 @@ class WooCommercePastOrders extends SimpleWorker {
/** @var WooCommercePurchases */
private $woocommercePurchases;
/** @var StatisticsClicksRepository */
private $statisticsClicksRepository;
public function __construct(
WCHelper $woocommerceHelper,
StatisticsClicksRepository $statisticsClicksRepository,
WooCommercePurchases $woocommercePurchases
) {
$this->woocommerceHelper = $woocommerceHelper;
$this->woocommercePurchases = $woocommercePurchases;
$this->statisticsClicksRepository = $statisticsClicksRepository;
parent::__construct();
}
@@ -33,8 +38,8 @@ class WooCommercePastOrders extends SimpleWorker {
}
public function processTaskStrategy(ScheduledTaskEntity $task, $timer) {
$oldestClick = StatisticsClicks::orderByAsc('created_at')->limit(1)->findOne();
if (!$oldestClick instanceof StatisticsClicks) {
$oldestClick = $this->statisticsClicksRepository->findOneBy([], ['createdAt' => 'asc']);
if (!$oldestClick instanceof StatisticsClickEntity) {
return true;
}
@@ -48,7 +53,7 @@ class WooCommercePastOrders extends SimpleWorker {
$orderIds = $this->woocommerceHelper->wcGetOrders([
'status' => 'completed',
'date_completed' => '>=' . $oldestClick->createdAt,
'date_completed' => '>=' . $oldestClick->getCreatedAt()->format('Y-m-d H:i:s'),
'orderby' => 'ID',
'order' => 'ASC',
'limit' => self::BATCH_SIZE,