diff --git a/lib/AdminPages/PageRenderer.php b/lib/AdminPages/PageRenderer.php index 2bf886e1a6..26001c9cfb 100644 --- a/lib/AdminPages/PageRenderer.php +++ b/lib/AdminPages/PageRenderer.php @@ -3,6 +3,7 @@ namespace MailPoet\AdminPages; use MailPoet\Config\Renderer; +use MailPoet\Cron\Workers\SubscribersCountCacheRecalculation; use MailPoet\Entities\SegmentEntity; use MailPoet\Features\FeaturesController; use MailPoet\Referrals\ReferralDetector; @@ -29,18 +30,23 @@ class PageRenderer { /** @var SegmentsRepository */ private $segmentRepository; + /** @var SubscribersCountCacheRecalculation */ + private $subscribersCountCacheRecalculation; + public function __construct( Renderer $renderer, FeaturesController $featuresController, SettingsController $settings, UserFlagsController $userFlags, - SegmentsRepository $segmentRepository + SegmentsRepository $segmentRepository, + SubscribersCountCacheRecalculation $subscribersCountCacheRecalculation ) { $this->renderer = $renderer; $this->featuresController = $featuresController; $this->settings = $settings; $this->userFlags = $userFlags; $this->segmentRepository = $segmentRepository; + $this->subscribersCountCacheRecalculation = $subscribersCountCacheRecalculation; } /** @@ -70,6 +76,9 @@ class PageRenderer { ) { DIPanel::init(); } + if (is_admin() && $this->subscribersCountCacheRecalculation->shouldBeScheduled()) { + $this->subscribersCountCacheRecalculation->schedule(); + } echo $this->renderer->render($template, $data + $defaults); } catch (\Exception $e) { $notice = new WPNotice(WPNotice::TYPE_ERROR, $e->getMessage());