diff --git a/assets/js/src/segments/dynamic_segments_list.jsx b/assets/js/src/segments/dynamic_segments_list.jsx
index 1dd25fded2..7255f924d0 100644
--- a/assets/js/src/segments/dynamic_segments_list.jsx
+++ b/assets/js/src/segments/dynamic_segments_list.jsx
@@ -128,7 +128,12 @@ function DynamicSegmentList(props) {
diff --git a/assets/js/src/segments/list.jsx b/assets/js/src/segments/list.jsx
index 0cf5068ce3..43f94eed09 100644
--- a/assets/js/src/segments/list.jsx
+++ b/assets/js/src/segments/list.jsx
@@ -305,7 +305,12 @@ class SegmentList extends React.Component {
diff --git a/assets/js/src/subscribers/list.jsx b/assets/js/src/subscribers/list.jsx
index 6f6c7d92ba..801438cd4b 100644
--- a/assets/js/src/subscribers/list.jsx
+++ b/assets/js/src/subscribers/list.jsx
@@ -82,7 +82,7 @@ const messages = {
MailPoet.Notice.success(message);
},
onNoItemsFound: (group) => {
- if (group === 'bounced' && !window.mailpoet_premium_active && !window.mss_active) {
+ if (group === 'bounced' && !window.mailpoet_premium_active && !window.mailpoet_mss_active) {
return (
{MailPoet.I18n.t('bouncedSubscribersHelp')}
@@ -379,7 +379,12 @@ class SubscriberList extends React.Component {
diff --git a/lib/AdminPages/Pages/Segments.php b/lib/AdminPages/Pages/Segments.php
index 3addc3b1ab..fafe5b3bd7 100644
--- a/lib/AdminPages/Pages/Segments.php
+++ b/lib/AdminPages/Pages/Segments.php
@@ -6,7 +6,9 @@ use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\ServicesChecker;
use MailPoet\Listing\PageLimit;
use MailPoet\Models\Newsletter;
+use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
+use MailPoet\Services\Bridge;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
use MailPoet\WP\Functions as WPFunctions;
@@ -50,10 +52,23 @@ class Segments {
$data = [];
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('segments');
+ $data['mss_active'] = Bridge::isMPSendingServiceEnabled();
+
$data['subscribers_limit'] = $this->subscribersFeature->getSubscribersLimit();
$data['subscribers_limit_reached'] = $this->subscribersFeature->check();
$data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey();
$data['subscriber_count'] = Subscriber::getTotalSubscribers();
+ $data['premium_subscriber_count'] = $this->subscribersFeature->getSubscribersCount();
+ $data['has_premium_support'] = $this->subscribersFeature->hasPremiumSupport();
+
+ $data['wp_users_count'] = false;
+ if (!$data['has_premium_support']) {
+ $wpSegment = Segment::getWPSegment()->withSubscribersCount();
+ $subscribersCount = $wpSegment->subscribersCount;
+ $data['wp_users_count'] = $subscribersCount[Subscriber::STATUS_SUBSCRIBED]
+ + $subscribersCount[Subscriber::STATUS_UNCONFIRMED]
+ + $subscribersCount[Subscriber::STATUS_INACTIVE];
+ }
$data['mss_key_invalid'] = ($this->servicesChecker->isMailPoetAPIKeyValid() === false);
diff --git a/lib/AdminPages/Pages/Subscribers.php b/lib/AdminPages/Pages/Subscribers.php
index 946aa54104..de4b2b6346 100644
--- a/lib/AdminPages/Pages/Subscribers.php
+++ b/lib/AdminPages/Pages/Subscribers.php
@@ -89,6 +89,17 @@ class Subscribers {
$data['subscribers_limit_reached'] = $this->subscribersFeature->check();
$data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey();
$data['subscriber_count'] = Subscriber::getTotalSubscribers();
+ $data['premium_subscriber_count'] = $this->subscribersFeature->getSubscribersCount();
+ $data['has_premium_support'] = $this->subscribersFeature->hasPremiumSupport();
+
+ $data['wp_users_count'] = false;
+ if (!$data['has_premium_support']) {
+ $wpSegment = Segment::getWPSegment()->withSubscribersCount();
+ $subscribersCount = $wpSegment->subscribersCount;
+ $data['wp_users_count'] = $subscribersCount[Subscriber::STATUS_SUBSCRIBED]
+ + $subscribersCount[Subscriber::STATUS_UNCONFIRMED]
+ + $subscribersCount[Subscriber::STATUS_INACTIVE];
+ }
$this->pageRenderer->displayPage('subscribers/subscribers.html', $data);
}
diff --git a/lib/Util/License/Features/Subscribers.php b/lib/Util/License/Features/Subscribers.php
index daef935bd6..6813eeeb71 100644
--- a/lib/Util/License/Features/Subscribers.php
+++ b/lib/Util/License/Features/Subscribers.php
@@ -30,14 +30,17 @@ class Subscribers {
public function check() {
$limit = $this->getSubscribersLimit();
if ($limit === false) return false;
- if ($this->hasPremiumSupport()) {
- $subscribersCount = $this->subscribersRepository->getTotalSubscribersWithoutWPUsers();
- } else {
- $subscribersCount = $this->subscribersRepository->getTotalSubscribers();
- }
+ $subscribersCount = $this->getSubscribersCount();
return $subscribersCount > $limit;
}
+ public function getSubscribersCount() {
+ if ($this->hasPremiumSupport()) {
+ return $this->subscribersRepository->getTotalSubscribersWithoutWPUsers();
+ }
+ return $this->subscribersRepository->getTotalSubscribers();
+ }
+
public function hasValidApiKey() {
return $this->hasValidMssKey() || $this->hasValidPremiumKey();
}
@@ -84,7 +87,7 @@ class Subscribers {
return (int)$this->settings->get(self::PREMIUM_SUBSCRIBERS_LIMIT_SETTING_KEY);
}
- private function hasPremiumSupport() {
+ public function hasPremiumSupport() {
return $this->hasValidPremiumKey() && $this->settings->get(self::PREMIUM_SUPPORT_SETTING_KEY) === 'premium';
}
diff --git a/views/segments.html b/views/segments.html
index 3f87e065ad..3638d2a4cb 100644
--- a/views/segments.html
+++ b/views/segments.html
@@ -15,11 +15,16 @@
'5a574bd92c7d3a194368233e',
'59a89621042863033a1c82e6'
];
+ var mailpoet_mss_active = <%= json_encode(mss_active) %>;
var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>;
var mailpoet_subscribers_limit_reached = <%= subscribers_limit_reached ? 'true' : 'false' %>;
var mailpoet_has_valid_api_key = <%= has_valid_api_key ? 'true' : 'false' %>;
- var mailpoet_subscribers_count = <%= subscriber_count %>;
var mailpoet_mss_key_invalid = <%= mss_key_invalid ? 'true' : 'false' %>;
+ var mailpoet_subscribers_count = <%= subscriber_count %>;
+ var mailpoet_subscribers_in_plan_count = <%= subscriber_count %>;
+ var mailpoet_premium_subscribers_count = <%= premium_subscriber_count %>;
+ var mailpoet_has_premium_support = <%= has_premium_support ? 'true' : 'false' %>;
+ var mailpoet_wp_users_count = <%= wp_users_count ? wp_users_count : 'false' %>;
var wordpress_editable_roles_list = <%= json_encode(wordpress_editable_roles_list) %>;
var mailpoet_newsletters_list = <%= json_encode(newsletters_list) %>;
var mailpoet_product_categories = <%= json_encode(product_categories) %>;
@@ -33,7 +38,6 @@
return product;
});
var is_woocommerce_active = <%= json_encode(is_woocommerce_active) %>;
- var mailpoet_subscribers_in_plan_count = <%= subscriber_count %>;
<% endblock %>
diff --git a/views/subscribers/subscribers.html b/views/subscribers/subscribers.html
index 3e69da5daa..643d66c3a6 100644
--- a/views/subscribers/subscribers.html
+++ b/views/subscribers/subscribers.html
@@ -11,7 +11,6 @@
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
var mailpoet_max_confirmation_emails = <%= max_confirmation_emails %>;
- var mss_active = <%= json_encode(mss_active) %>;
var mailpoet_beacon_articles = [
'57ce07ffc6979108399a044b',
'57ce079f903360649f6e56fc',
@@ -19,12 +18,16 @@
'5cbf19622c7d3a026fd3efe1',
'58a5a7502c7d3a576d353c78',
];
+ var mailpoet_mss_active = <%= json_encode(mss_active) %>;
var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>;
var mailpoet_subscribers_limit_reached = <%= subscribers_limit_reached ? 'true' : 'false' %>;
var mailpoet_has_valid_api_key = <%= has_valid_api_key ? 'true' : 'false' %>;
var mailpoet_mss_key_invalid = <%= mss_key_invalid ? 'true' : 'false' %>;
var mailpoet_subscribers_count = <%= subscriber_count %>;
var mailpoet_subscribers_in_plan_count = <%= subscriber_count %>;
+ var mailpoet_premium_subscribers_count = <%= premium_subscriber_count %>;
+ var mailpoet_has_premium_support = <%= has_premium_support ? 'true' : 'false' %>;
+ var mailpoet_wp_users_count = <%= wp_users_count ? wp_users_count : 'false' %>;
<% endblock %>