PATH:
home
/
lab2454c
/
caimegroup.com
/
wp-content
/
plugins
/
mailpoet
/
lib
/
Cron
/
Workers
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Cron\Workers; if (!defined('ABSPATH')) exit; use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Settings\SettingsController; use MailPoet\Settings\TrackingConfig; use MailPoet\Subscribers\InactiveSubscribersController; use MailPoet\Subscribers\SubscribersRepository; class InactiveSubscribers extends SimpleWorker { const TASK_TYPE = 'inactive_subscribers'; const BATCH_SIZE = 1000; const SUPPORT_MULTIPLE_INSTANCES = false; /** @var InactiveSubscribersController */ private $inactiveSubscribersController; /** @var SettingsController */ private $settings; /** @var TrackingConfig */ private $trackingConfig; /** @var SubscribersRepository */ private $subscribersRepository; public function __construct( InactiveSubscribersController $inactiveSubscribersController, SettingsController $settings, TrackingConfig $trackingConfig, SubscribersRepository $subscribersRepository ) { $this->inactiveSubscribersController = $inactiveSubscribersController; $this->settings = $settings; $this->trackingConfig = $trackingConfig; $this->subscribersRepository = $subscribersRepository; parent::__construct(); } public function processTaskStrategy(ScheduledTaskEntity $task, $timer) { if (!$this->trackingConfig->isEmailTrackingEnabled()) { $this->schedule(); return true; } $daysToInactive = (int)$this->settings->get('deactivate_subscriber_after_inactive_days'); // Activate all inactive subscribers in case the feature is turned off if ($daysToInactive === 0) { $this->inactiveSubscribersController->reactivateInactiveSubscribers(); $this->schedule(); return true; } // Handle activation/deactivation within interval $meta = $task->getMeta(); $lastSubscriberId = isset($meta['last_subscriber_id']) ? $meta['last_subscriber_id'] : 0; if (isset($meta['max_subscriber_id'])) { $maxSubscriberId = $meta['max_subscriber_id']; } else { $maxSubscriberId = $this->subscribersRepository->getMaxSubscriberId(); } while ($lastSubscriberId <= $maxSubscriberId) { $count = $this->inactiveSubscribersController->markInactiveSubscribers($daysToInactive, self::BATCH_SIZE, $lastSubscriberId); if ($count === false) { break; } $lastSubscriberId += self::BATCH_SIZE; $task->setMeta(['last_subscriber_id' => $lastSubscriberId]); $this->scheduledTasksRepository->persist($task); $this->scheduledTasksRepository->flush(); $this->cronHelper->enforceExecutionLimit($timer); }; while ($this->inactiveSubscribersController->markActiveSubscribers($daysToInactive, self::BATCH_SIZE) === self::BATCH_SIZE) { $this->cronHelper->enforceExecutionLimit($timer); }; $this->schedule(); return true; } }
[-] BackfillEngagementData.php
[edit]
[+]
SendingQueue
[-] SubscriberLinkTokens.php
[edit]
[-] index.php
[edit]
[+]
..
[-] WooCommercePastOrders.php
[edit]
[-] Beamer.php
[edit]
[-] ExportFilesCleanup.php
[edit]
[+]
StatsNotifications
[-] WorkersFactory.php
[edit]
[-] InactiveSubscribers.php
[edit]
[-] SubscribersCountCacheRecalculation.php
[edit]
[-] Bounce.php
[edit]
[-] SubscribersLastEngagement.php
[edit]
[+]
KeyCheck
[-] Mixpanel.php
[edit]
[-] WooCommerceSync.php
[edit]
[+]
Automations
[-] UnsubscribeTokens.php
[edit]
[-] ReEngagementEmailsScheduler.php
[edit]
[-] SubscribersEmailCount.php
[edit]
[-] Scheduler.php
[edit]
[-] SimpleWorker.php
[edit]
[-] SubscribersStatsReport.php
[edit]
[-] NewsletterTemplateThumbnails.php
[edit]
[-] AuthorizedSendingEmailsCheck.php
[edit]
[-] SubscribersEngagementScore.php
[edit]