Append subscribers limit notice with info about WP users segment
[MAILPOET-3143]
This commit is contained in:
committed by
Veljko V
parent
0eb60a4880
commit
e576002d70
@ -21,6 +21,7 @@ var MailPoet = {
|
||||
libs3rdPartyEnabled: window.mailpoet_3rd_party_libs_enabled,
|
||||
apiVersion: window.mailpoet_api_version,
|
||||
emailRegex: window.mailpoet_email_regex,
|
||||
wpSegmentState: window.mailpoet_wp_segment_state,
|
||||
getShortcodeLinks: () => (window.mailpoet_shortcode_links ? window.mailpoet_shortcode_links : []),
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
import React from 'react';
|
||||
import ReactStringReplace from 'react-string-replace';
|
||||
import MailPoet from 'mailpoet';
|
||||
import Notice from 'notices/notice.tsx';
|
||||
|
||||
@ -21,6 +22,14 @@ const SubscribersLimitNotice = () => {
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
const youCanDisableWpSegmentMessage = ReactStringReplace(
|
||||
MailPoet.I18n.t('youCanDisableWPUsersList'),
|
||||
/\[link](.*?)\[\/link]/g,
|
||||
(match) => (
|
||||
<a key="goToSegments" href="?page=mailpoet-segments">{match}</a>
|
||||
)
|
||||
);
|
||||
|
||||
return (
|
||||
<Notice type="error" timeout={false} closable={false} renderInPlace>
|
||||
<h3>{title}</h3>
|
||||
@ -28,6 +37,12 @@ const SubscribersLimitNotice = () => {
|
||||
{youReachedTheLimit}
|
||||
{' '}
|
||||
{MailPoet.I18n.t('youNeedToUpgrade')}
|
||||
{MailPoet.wpSegmentState === 'active' ? (
|
||||
<>
|
||||
<br />
|
||||
{youCanDisableWpSegmentMessage}
|
||||
</>
|
||||
) : null}
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
|
@ -3,8 +3,10 @@
|
||||
namespace MailPoet\AdminPages;
|
||||
|
||||
use MailPoet\Config\Renderer;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\Features\FeaturesController;
|
||||
use MailPoet\Referrals\ReferralDetector;
|
||||
use MailPoet\Segments\SegmentsRepository;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\UserFlagsController;
|
||||
use MailPoet\Tracy\DIPanel\DIPanel;
|
||||
@ -24,16 +26,21 @@ class PageRenderer {
|
||||
/** @var UserFlagsController */
|
||||
private $userFlags;
|
||||
|
||||
/** @var SegmentsRepository */
|
||||
private $segmentRepository;
|
||||
|
||||
public function __construct(
|
||||
Renderer $renderer,
|
||||
FeaturesController $featuresController,
|
||||
SettingsController $settings,
|
||||
UserFlagsController $userFlags
|
||||
UserFlagsController $userFlags,
|
||||
SegmentsRepository $segmentRepository
|
||||
) {
|
||||
$this->renderer = $renderer;
|
||||
$this->featuresController = $featuresController;
|
||||
$this->settings = $settings;
|
||||
$this->userFlags = $userFlags;
|
||||
$this->segmentRepository = $segmentRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,12 +51,16 @@ class PageRenderer {
|
||||
public function displayPage($template, array $data = []) {
|
||||
$lastAnnouncementDate = $this->settings->get('last_announcement_date');
|
||||
$lastAnnouncementSeen = $this->userFlags->get('last_announcement_seen');
|
||||
$wpSegment = $this->segmentRepository->getWPUsersSegment();
|
||||
$wpSegmentState = ($wpSegment instanceof SegmentEntity) && $wpSegment->getDeletedAt() === null ?
|
||||
SegmentEntity::SEGMENT_ENABLED : SegmentEntity::SEGMENT_DISABLED;
|
||||
$defaults = [
|
||||
'feature_flags' => $this->featuresController->getAllFlags(),
|
||||
'referral_id' => $this->settings->get(ReferralDetector::REFERRAL_SETTING_NAME),
|
||||
'mailpoet_api_key_state' => $this->settings->get('mta.mailpoet_api_key_state'),
|
||||
'last_announcement_seen' => $lastAnnouncementSeen,
|
||||
'feature_announcement_has_news' => (empty($lastAnnouncementSeen) || $lastAnnouncementSeen < $lastAnnouncementDate),
|
||||
'wp_segment_state' => $wpSegmentState,
|
||||
];
|
||||
try {
|
||||
if (class_exists(Debugger::class)) {
|
||||
|
@ -25,6 +25,9 @@ class SegmentEntity {
|
||||
const TYPE_DEFAULT = 'default';
|
||||
const TYPE_DYNAMIC = 'dynamic';
|
||||
|
||||
const SEGMENT_ENABLED = 'active';
|
||||
const SEGMENT_DISABLED = 'disabled';
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
* @Assert\NotBlank()
|
||||
|
@ -69,6 +69,7 @@ jQuery('#adminmenu #toplevel_page_mailpoet-newsletters')
|
||||
var mailpoet_feature_flags = <%= json_encode(feature_flags) %>;
|
||||
var mailpoet_referral_id = <%= json_encode(referral_id) %>;
|
||||
var mailpoet_feature_announcement_has_news = <%= json_encode(feature_announcement_has_news) %>;
|
||||
var mailpoet_wp_segment_state = <%= json_encode(wp_segment_state) %>;
|
||||
</script>
|
||||
|
||||
<!-- javascripts -->
|
||||
@ -89,6 +90,7 @@ jQuery('#adminmenu #toplevel_page_mailpoet-newsletters')
|
||||
'freeVersionLimit': __('Our free version is limited to [subscribersLimit] subscribers.'),
|
||||
'yourPlanLimit': __('Your plan is limited to [subscribersLimit] subscribers.'),
|
||||
'youNeedToUpgrade': __('You need to upgrade now to be able to continue using MailPoet.'),
|
||||
'youCanDisableWPUsersList': __('If you do not send emails to your WordPress Users list, you can [link]disable it[/link] to lower your number of subscribers.'),
|
||||
'upgradeNow': __('Upgrade Now'),
|
||||
'refreshMySubscribers': __('I’ve upgraded my subscription, refresh subscriber limit'),
|
||||
|
||||
|
Reference in New Issue
Block a user