New free plan announcement

[MAILPOET-2051]
This commit is contained in:
Ján Mikláš
2019-05-15 14:31:59 +02:00
committed by M. Shull
parent bf6a3106de
commit f8cc1e6f20
5 changed files with 100 additions and 15 deletions

View File

@ -4,3 +4,18 @@
p:empty { display: none; }
}
.mailpoet_free_plan_announcement {
background: #fff;
border-left: 4px solid #fff;
border-radius: 10px;
box-shadow: 0 4px 35px rgba(195, 65, 2, .2);
clear: both;
margin-bottom: 15px;
padding: 20px;
position: relative;
h3 {
margin: 0;
}
}

View File

@ -0,0 +1,54 @@
import React from 'react';
import MailPoet from 'mailpoet';
class FreePlanAnnouncement extends React.Component {
constructor(props) {
super(props);
this.dismissNotice = this.dismissNotice.bind(this);
this.state = {
announcement_seen: window.mailpoet_free_plan_announcement_seen,
};
}
dismissNotice() {
this.setState({ announcement_seen: true });
window.mailpoet_free_plan_announcement_seen = true;
MailPoet.Ajax.post({
api_version: window.mailpoet_api_version,
endpoint: 'settings',
action: 'set',
data: {
free_plan_announcement_seen: 1,
},
});
}
render() {
return (
(!this.state.announcement_seen)
&& (
<div className="mailpoet_free_plan_announcement">
<h3>{MailPoet.I18n.t('freePlanTitle')}</h3>
<p>{MailPoet.I18n.t('freePlanDescription')}</p>
<a
className="button-primary"
href="https://www.mailpoet.com/free-plan/"
target="_blank"
rel="noopener noreferrer"
>
{MailPoet.I18n.t('freePlanButton')}
</a>
<button
type="button"
className="notice-dismiss"
onClick={this.dismissNotice}
>
<span className="screen-reader-text">{MailPoet.I18n.t('dismissButton')}</span>
</button>
</div>
)
);
}
}
export default FreePlanAnnouncement;

View File

@ -1,8 +1,15 @@
import React from 'react';
import { Link } from 'react-router-dom';
import MailPoet from 'mailpoet';
import FreePlanAnnouncement from 'announcements/free_plan_announcement.jsx';
const ListingHeading = () => (
<div>
{
MailPoet.FeaturesController.isSupported('new-free-plan')
&& <FreePlanAnnouncement />
}
<h1 className="title">
{MailPoet.I18n.t('pageTitle')}
<Link
@ -18,6 +25,7 @@ const ListingHeading = () => (
{MailPoet.I18n.t('new')}
</Link>
</h1>
</div>
);

View File

@ -36,6 +36,7 @@
var mailpoet_is_new_user = <%= newUser %>;
var mailpoet_installed_at = '<%= settings.installed_at %>';
var mailpoet_mss_active = <%= json_encode(mss_active) %>;
var mailpoet_free_plan_announcement_seen = !!+'<%= settings.free_plan_announcement_seen %>';
</script>
<% endblock %>
@ -43,6 +44,8 @@
<%= localize({
'pageTitle': __('Emails'),
'dismissButton': __('Dismiss this notice.'),
'tabStandardTitle': __('Newsletters'),
'tabWelcomeTitle': __('Welcome Emails'),
'tabNotificationTitle': __('Post Notifications'),
@ -322,6 +325,10 @@
'whatsNew': __("Whats new"),
'updateMailPoetNotice': __('[link]Update MailPoet[/link] to see the latest changes'),
'freePlanTitle': __('A new and more generous free plan!'),
'freePlanDescription': __('MailPoet Premium and sending is now entirely free for users that have 1,000 subscribers or less.'),
'freePlanButton': __('Get MailPoet Premium for free now'),
'congratulationsSendSuccessHeader': __('Congratulations, your newsletter is being sent!'),
'congratulationsScheduleSuccessHeader': __('Congratulations, your newsletter is scheduled to be sent.'),
'congratulationsWooSuccessHeader': __('Congratulations, your WooCommerce email has been activated.'),

View File

@ -255,6 +255,7 @@ const adminConfig = {
'newsletters/listings/mixins.jsx',
'newsletters/listings/heading.jsx',
'announcements/feature_announcement.jsx',
'announcements/free_plan_announcement.jsx',
'newsletters/types/automatic_emails/events_list.jsx',
'newsletters/types/automatic_emails/breadcrumb.jsx',
'newsletters/types/welcome/scheduling.jsx',