Add scheduling cache recalculation for admins

[MAILPOET-3646]
This commit is contained in:
Jan Lysý
2021-07-01 15:26:39 +02:00
committed by Veljko V
parent 77c00014ca
commit fabebcbea6

View File

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