Report subscribers count before refreshing key statuses from the shop

[MAILPOET-5191]
This commit is contained in:
Rostislav Wolny
2023-04-28 14:01:25 +02:00
committed by Veljko V
parent 548118f904
commit 8bf7a150e2
2 changed files with 14 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ use MailPoet\Mailer\MailerLog;
use MailPoet\Services\AuthorizedSenderDomainController; use MailPoet\Services\AuthorizedSenderDomainController;
use MailPoet\Services\Bridge; use MailPoet\Services\Bridge;
use MailPoet\Services\CongratulatoryMssEmailController; use MailPoet\Services\CongratulatoryMssEmailController;
use MailPoet\Services\SubscribersCountReporter;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\Util\Helpers; use MailPoet\Util\Helpers;
use MailPoet\WP\DateTime; use MailPoet\WP\DateTime;
@@ -51,6 +52,9 @@ class Services extends APIEndpoint {
/** @var AuthorizedSenderDomainController */ /** @var AuthorizedSenderDomainController */
private $senderDomainController; private $senderDomainController;
/** @var SubscribersCountReporter */
private $subscribersCountReporter;
public $permissions = [ public $permissions = [
'global' => AccessControl::PERMISSION_MANAGE_SETTINGS, 'global' => AccessControl::PERMISSION_MANAGE_SETTINGS,
]; ];
@@ -62,6 +66,7 @@ class Services extends APIEndpoint {
SendingServiceKeyCheck $mssWorker, SendingServiceKeyCheck $mssWorker,
PremiumKeyCheck $premiumWorker, PremiumKeyCheck $premiumWorker,
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
SubscribersCountReporter $subscribersCountReporter,
CongratulatoryMssEmailController $congratulatoryMssEmailController, CongratulatoryMssEmailController $congratulatoryMssEmailController,
WPFunctions $wp, WPFunctions $wp,
AuthorizedSenderDomainController $senderDomainController AuthorizedSenderDomainController $senderDomainController
@@ -73,6 +78,7 @@ class Services extends APIEndpoint {
$this->premiumWorker = $premiumWorker; $this->premiumWorker = $premiumWorker;
$this->dateTime = new DateTime(); $this->dateTime = new DateTime();
$this->servicesChecker = $servicesChecker; $this->servicesChecker = $servicesChecker;
$this->subscribersCountReporter = $subscribersCountReporter;
$this->congratulatoryMssEmailController = $congratulatoryMssEmailController; $this->congratulatoryMssEmailController = $congratulatoryMssEmailController;
$this->wp = $wp; $this->wp = $wp;
$this->senderDomainController = $senderDomainController; $this->senderDomainController = $senderDomainController;
@@ -222,6 +228,12 @@ class Services extends APIEndpoint {
} }
public function recheckKeys() { public function recheckKeys() {
// Report subscribers count before rechecking keys so that shop can lift access restrictions in case
// user deleted subscribers and no longer exceeds the limit.
$key = $this->servicesChecker->getValidAccountKey();
if ($key) {
$this->subscribersCountReporter->report($key);
}
$this->mssWorker->init(); $this->mssWorker->init();
$mssCheck = $this->mssWorker->checkKey(); $mssCheck = $this->mssWorker->checkKey();
$this->premiumWorker->init(); $this->premiumWorker->init();

View File

@@ -15,6 +15,7 @@ use MailPoet\Mailer\MailerLog;
use MailPoet\Services\AuthorizedSenderDomainController; use MailPoet\Services\AuthorizedSenderDomainController;
use MailPoet\Services\Bridge; use MailPoet\Services\Bridge;
use MailPoet\Services\CongratulatoryMssEmailController; use MailPoet\Services\CongratulatoryMssEmailController;
use MailPoet\Services\SubscribersCountReporter;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
@@ -614,6 +615,7 @@ class ServicesTest extends \MailPoetTest {
$this->diContainer->get(SendingServiceKeyCheck::class), $this->diContainer->get(SendingServiceKeyCheck::class),
$this->diContainer->get(PremiumKeyCheck::class), $this->diContainer->get(PremiumKeyCheck::class),
$this->diContainer->get(ServicesChecker::class), $this->diContainer->get(ServicesChecker::class),
$this->diContainer->get(SubscribersCountReporter::class),
$mocks['congratulatoryEmailController'] ?? $this->diContainer->get(CongratulatoryMssEmailController::class), $mocks['congratulatoryEmailController'] ?? $this->diContainer->get(CongratulatoryMssEmailController::class),
$this->diContainer->get(WPFunctions::class), $this->diContainer->get(WPFunctions::class),
$mocks['senderDomain'] ?? $this->diContainer->get(AuthorizedSenderDomainController::class) $mocks['senderDomain'] ?? $this->diContainer->get(AuthorizedSenderDomainController::class)