Exclude WP subscribers from sending limit

[MAILPOET-2631]
This commit is contained in:
Pavel Dohnal
2020-01-17 14:16:38 +01:00
committed by Jack Kitterhing
parent e2a265fa48
commit 5e2559c0ae
3 changed files with 46 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ class Subscribers {
const MSS_SUBSCRIBERS_LIMIT_SETTING_KEY = 'mta.mailpoet_api_key_state.data.site_active_subscriber_limit';
const PREMIUM_KEY_STATE = 'premium.premium_key_state.state';
const PREMIUM_SUBSCRIBERS_LIMIT_SETTING_KEY = 'premium.premium_key_state.data.site_active_subscriber_limit';
const PREMIUM_SUPPORT_SETTING_KEY = 'premium.premium_key_state.data.support_tier';
/** @var SettingsController */
private $settings;
@@ -29,7 +30,11 @@ class Subscribers {
public function check() {
$limit = $this->getSubscribersLimit();
if ($limit === false) return false;
$subscribersCount = $this->subscribersRepository->getTotalSubscribers();
if ($this->hasPremiumSupport()) {
$subscribersCount = $this->subscribersRepository->getTotalSubscribersWithoutWPUsers();
} else {
$subscribersCount = $this->subscribersRepository->getTotalSubscribers();
}
return $subscribersCount > $limit;
}
@@ -79,6 +84,10 @@ class Subscribers {
return (int)$this->settings->get(self::PREMIUM_SUBSCRIBERS_LIMIT_SETTING_KEY);
}
private function hasPremiumSupport() {
return $this->hasValidApiKey() && $this->settings->get(self::PREMIUM_SUPPORT_SETTING_KEY) === 'premium';
}
private function getFreeSubscribersLimit() {
$installationTime = strtotime($this->settings->get('installed_at'));
$oldUser = $installationTime < strtotime(self::NEW_LIMIT_DATE);