Use the updated component in subscriber and segment listings [MAILPOET-2917]

This commit is contained in:
wxa
2020-06-01 10:46:17 +03:00
committed by Veljko V
parent 48a96459f8
commit 4039ac873a
8 changed files with 64 additions and 13 deletions

View File

@ -128,7 +128,12 @@ function DynamicSegmentList(props) {
<SubscribersInPlan
subscribersInPlan={window.mailpoet_subscribers_in_plan_count}
hasValidApiKey={window.mailpoet_has_valid_api_key}
subscribersInPlanLimit={window.mailpoet_subscribers_limit}
mailpoetSubscribers={window.mailpoet_premium_subscribers_count}
mailpoetSubscribersLimit={window.mailpoet_subscribers_limit}
hasPremiumSupport={window.mailpoet_has_premium_support}
wpUsersCount={window.mailpoet_wp_users_count}
mssActive={window.mailpoet_mss_active}
/>
<Tabs />

View File

@ -305,7 +305,12 @@ class SegmentList extends React.Component {
<SubscribersInPlan
subscribersInPlan={window.mailpoet_subscribers_in_plan_count}
hasValidApiKey={window.mailpoet_has_valid_api_key}
subscribersInPlanLimit={window.mailpoet_subscribers_limit}
mailpoetSubscribers={window.mailpoet_premium_subscribers_count}
mailpoetSubscribersLimit={window.mailpoet_subscribers_limit}
hasPremiumSupport={window.mailpoet_has_premium_support}
wpUsersCount={window.mailpoet_wp_users_count}
mssActive={window.mailpoet_mss_active}
/>
<SubscribersLimitNotice />

View File

@ -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 (
<div>
<p>{MailPoet.I18n.t('bouncedSubscribersHelp')}</p>
@ -379,7 +379,12 @@ class SubscriberList extends React.Component {
<SubscribersInPlan
subscribersInPlan={window.mailpoet_subscribers_in_plan_count}
hasValidApiKey={window.mailpoet_has_valid_api_key}
subscribersInPlanLimit={window.mailpoet_subscribers_limit}
mailpoetSubscribers={window.mailpoet_premium_subscribers_count}
mailpoetSubscribersLimit={window.mailpoet_subscribers_limit}
hasPremiumSupport={window.mailpoet_has_premium_support}
wpUsersCount={window.mailpoet_wp_users_count}
mssActive={window.mailpoet_mss_active}
/>
<SubscribersLimitNotice />

View File

@ -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);

View File

@ -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);
}

View File

@ -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';
}

View File

@ -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 %>;
</script>
<% endblock %>

View File

@ -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' %>;
</script>
<% endblock %>