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
subscribersInPlan={window.mailpoet_subscribers_in_plan_count} 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 /> <Tabs />

View File

@ -305,7 +305,12 @@ class SegmentList extends React.Component {
<SubscribersInPlan <SubscribersInPlan
subscribersInPlan={window.mailpoet_subscribers_in_plan_count} 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 /> <SubscribersLimitNotice />

View File

@ -82,7 +82,7 @@ const messages = {
MailPoet.Notice.success(message); MailPoet.Notice.success(message);
}, },
onNoItemsFound: (group) => { onNoItemsFound: (group) => {
if (group === 'bounced' && !window.mailpoet_premium_active && !window.mss_active) { if (group === 'bounced' && !window.mailpoet_premium_active && !window.mailpoet_mss_active) {
return ( return (
<div> <div>
<p>{MailPoet.I18n.t('bouncedSubscribersHelp')}</p> <p>{MailPoet.I18n.t('bouncedSubscribersHelp')}</p>
@ -379,7 +379,12 @@ class SubscriberList extends React.Component {
<SubscribersInPlan <SubscribersInPlan
subscribersInPlan={window.mailpoet_subscribers_in_plan_count} 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 /> <SubscribersLimitNotice />

View File

@ -6,7 +6,9 @@ use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\Listing\PageLimit; use MailPoet\Listing\PageLimit;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Services\Bridge;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WooCommerce\Helper as WooCommerceHelper;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
@ -50,10 +52,23 @@ class Segments {
$data = []; $data = [];
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('segments'); $data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('segments');
$data['mss_active'] = Bridge::isMPSendingServiceEnabled();
$data['subscribers_limit'] = $this->subscribersFeature->getSubscribersLimit(); $data['subscribers_limit'] = $this->subscribersFeature->getSubscribersLimit();
$data['subscribers_limit_reached'] = $this->subscribersFeature->check(); $data['subscribers_limit_reached'] = $this->subscribersFeature->check();
$data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey(); $data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey();
$data['subscriber_count'] = Subscriber::getTotalSubscribers(); $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); $data['mss_key_invalid'] = ($this->servicesChecker->isMailPoetAPIKeyValid() === false);

View File

@ -89,6 +89,17 @@ class Subscribers {
$data['subscribers_limit_reached'] = $this->subscribersFeature->check(); $data['subscribers_limit_reached'] = $this->subscribersFeature->check();
$data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey(); $data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey();
$data['subscriber_count'] = Subscriber::getTotalSubscribers(); $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); $this->pageRenderer->displayPage('subscribers/subscribers.html', $data);
} }

View File

@ -30,14 +30,17 @@ class Subscribers {
public function check() { public function check() {
$limit = $this->getSubscribersLimit(); $limit = $this->getSubscribersLimit();
if ($limit === false) return false; if ($limit === false) return false;
if ($this->hasPremiumSupport()) { $subscribersCount = $this->getSubscribersCount();
$subscribersCount = $this->subscribersRepository->getTotalSubscribersWithoutWPUsers();
} else {
$subscribersCount = $this->subscribersRepository->getTotalSubscribers();
}
return $subscribersCount > $limit; return $subscribersCount > $limit;
} }
public function getSubscribersCount() {
if ($this->hasPremiumSupport()) {
return $this->subscribersRepository->getTotalSubscribersWithoutWPUsers();
}
return $this->subscribersRepository->getTotalSubscribers();
}
public function hasValidApiKey() { public function hasValidApiKey() {
return $this->hasValidMssKey() || $this->hasValidPremiumKey(); return $this->hasValidMssKey() || $this->hasValidPremiumKey();
} }
@ -84,7 +87,7 @@ class Subscribers {
return (int)$this->settings->get(self::PREMIUM_SUBSCRIBERS_LIMIT_SETTING_KEY); 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'; return $this->hasValidPremiumKey() && $this->settings->get(self::PREMIUM_SUPPORT_SETTING_KEY) === 'premium';
} }

View File

@ -15,11 +15,16 @@
'5a574bd92c7d3a194368233e', '5a574bd92c7d3a194368233e',
'59a89621042863033a1c82e6' '59a89621042863033a1c82e6'
]; ];
var mailpoet_mss_active = <%= json_encode(mss_active) %>;
var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>; var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>;
var mailpoet_subscribers_limit_reached = <%= subscribers_limit_reached ? 'true' : '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_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_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 wordpress_editable_roles_list = <%= json_encode(wordpress_editable_roles_list) %>;
var mailpoet_newsletters_list = <%= json_encode(newsletters_list) %>; var mailpoet_newsletters_list = <%= json_encode(newsletters_list) %>;
var mailpoet_product_categories = <%= json_encode(product_categories) %>; var mailpoet_product_categories = <%= json_encode(product_categories) %>;
@ -33,7 +38,6 @@
return product; return product;
}); });
var is_woocommerce_active = <%= json_encode(is_woocommerce_active) %>; var is_woocommerce_active = <%= json_encode(is_woocommerce_active) %>;
var mailpoet_subscribers_in_plan_count = <%= subscriber_count %>;
</script> </script>
<% endblock %> <% endblock %>

View File

@ -11,7 +11,6 @@
var mailpoet_date_formats = <%= json_encode(date_formats) %>; var mailpoet_date_formats = <%= json_encode(date_formats) %>;
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>; var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
var mailpoet_max_confirmation_emails = <%= max_confirmation_emails %>; var mailpoet_max_confirmation_emails = <%= max_confirmation_emails %>;
var mss_active = <%= json_encode(mss_active) %>;
var mailpoet_beacon_articles = [ var mailpoet_beacon_articles = [
'57ce07ffc6979108399a044b', '57ce07ffc6979108399a044b',
'57ce079f903360649f6e56fc', '57ce079f903360649f6e56fc',
@ -19,12 +18,16 @@
'5cbf19622c7d3a026fd3efe1', '5cbf19622c7d3a026fd3efe1',
'58a5a7502c7d3a576d353c78', '58a5a7502c7d3a576d353c78',
]; ];
var mailpoet_mss_active = <%= json_encode(mss_active) %>;
var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>; var mailpoet_subscribers_limit = <%= subscribers_limit ? subscribers_limit : 'false' %>;
var mailpoet_subscribers_limit_reached = <%= subscribers_limit_reached ? 'true' : '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_has_valid_api_key = <%= has_valid_api_key ? 'true' : 'false' %>;
var mailpoet_mss_key_invalid = <%= mss_key_invalid ? 'true' : 'false' %>; var mailpoet_mss_key_invalid = <%= mss_key_invalid ? 'true' : 'false' %>;
var mailpoet_subscribers_count = <%= subscriber_count %>; var mailpoet_subscribers_count = <%= subscriber_count %>;
var mailpoet_subscribers_in_plan_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> </script>
<% endblock %> <% endblock %>