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 %>