settings column done for welcome emails + WordPress capitalization fix
This commit is contained in:
@ -84,7 +84,7 @@ position: relative
|
|||||||
body
|
body
|
||||||
overflow-x: auto
|
overflow-x: auto
|
||||||
|
|
||||||
/* Hide the "Details" section of Wordpress Media manager */
|
/* Hide the "Details" section of WordPress Media manager */
|
||||||
.media-sidebar
|
.media-sidebar
|
||||||
display: none
|
display: none
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ body
|
|||||||
.attachments-browser .uploader-inline
|
.attachments-browser .uploader-inline
|
||||||
right: 0
|
right: 0
|
||||||
|
|
||||||
/* Remove max width from date selector in Wordpress Media Manager */
|
/* Remove max width from date selector in WordPress Media Manager */
|
||||||
#media-attachment-date-filters
|
#media-attachment-date-filters
|
||||||
max-width: calc(100% - 12px)
|
max-width: calc(100% - 12px)
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@ import jQuery from 'jquery'
|
|||||||
import MailPoet from 'mailpoet'
|
import MailPoet from 'mailpoet'
|
||||||
import _ from 'underscore'
|
import _ from 'underscore'
|
||||||
|
|
||||||
|
const mailpoet_roles = window.mailpoet_roles || {};
|
||||||
|
|
||||||
const messages = {
|
const messages = {
|
||||||
onTrash(response) {
|
onTrash(response) {
|
||||||
const count = ~~response;
|
const count = ~~response;
|
||||||
@ -74,7 +76,8 @@ var columns = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'statistics',
|
name: 'statistics',
|
||||||
label: MailPoet.I18n.t('statistics')
|
label: MailPoet.I18n.t('statistics'),
|
||||||
|
display: mailpoet_tracking_enabled
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'updated_at',
|
name: 'updated_at',
|
||||||
@ -187,12 +190,20 @@ const NewsletterListWelcome = React.createClass({
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
renderSettings: function(newsletter) {
|
renderSettings: function(newsletter) {
|
||||||
let settings;
|
let sendingEvent;
|
||||||
|
let sendingDelay;
|
||||||
|
|
||||||
|
// set sending event
|
||||||
switch (newsletter.options.event) {
|
switch (newsletter.options.event) {
|
||||||
case 'user':
|
case 'user':
|
||||||
// WP User
|
// WP User
|
||||||
settings = MailPoet.I18n.t('onWordpressUserRegistration');
|
if (newsletter.options.role === 'mailpoet_all') {
|
||||||
|
sendingEvent = MailPoet.I18n.t('welcomeEventWPUserAnyRole');
|
||||||
|
} else {
|
||||||
|
sendingEvent = MailPoet.I18n.t('welcomeEventWPUserWithRole').replace(
|
||||||
|
'%$1s', mailpoet_roles[newsletter.options.role]
|
||||||
|
);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'segment':
|
case 'segment':
|
||||||
@ -201,33 +212,57 @@ const NewsletterListWelcome = React.createClass({
|
|||||||
return (~~(segment.id) === ~~(newsletter.options.segment));
|
return (~~(segment.id) === ~~(newsletter.options.segment));
|
||||||
});
|
});
|
||||||
|
|
||||||
settings = MailPoet.I18n.t('onSubscriptionToList') + ' ' +segment.name;
|
sendingEvent = MailPoet.I18n.t('welcomeEventSegment').replace(
|
||||||
|
'%$1s', segment.name
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set sending delay
|
||||||
|
if (newsletter.options.afterTimeType !== 'immediate') {
|
||||||
|
switch (newsletter.options.afterTimeType) {
|
||||||
|
case 'hours':
|
||||||
|
sendingDelay = MailPoet.I18n.t('sendingDelayHours').replace(
|
||||||
|
'%$1d', newsletter.options.afterTimeNumber
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'days':
|
||||||
|
sendingDelay = MailPoet.I18n.t('sendingDelayDays').replace(
|
||||||
|
'%$1d', newsletter.options.afterTimeNumber
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'weeks':
|
||||||
|
sendingDelay = MailPoet.I18n.t('sendingDelayWeeks').replace(
|
||||||
|
'%$1d', newsletter.options.afterTimeNumber
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sendingEvent += ' [' + sendingDelay + ']';
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span>
|
<span>
|
||||||
{ settings }
|
{ sendingEvent }.
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
renderStatistics: function(newsletter) {
|
renderStatistics: function(newsletter) {
|
||||||
if(!newsletter.statistics || !newsletter.queue || newsletter.queue.count_processed == 0 || newsletter.queue.status === 'scheduled') {
|
if (mailpoet_tracking_enabled === false) {
|
||||||
return (
|
return;
|
||||||
<span>
|
|
||||||
{MailPoet.I18n.t('notSentYet')}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var percentage_clicked = Math.round(
|
if(newsletter.statistics && newsletter.queue && newsletter.queue.status !== 'scheduled') {
|
||||||
(newsletter.statistics.clicked * 100) / (newsletter.queue.count_processed)
|
const total_sent = ~~(newsletter.queue.count_processed);
|
||||||
|
const percentage_clicked = Math.round(
|
||||||
|
(~~(newsletter.statistics.clicked) * 100) / total_sent
|
||||||
);
|
);
|
||||||
var percentage_opened = Math.round(
|
const percentage_opened = Math.round(
|
||||||
(newsletter.statistics.opened * 100) / (newsletter.queue.count_processed)
|
(~~(newsletter.statistics.opened) * 100) / total_sent
|
||||||
);
|
);
|
||||||
var percentage_unsubscribed = Math.round(
|
const percentage_unsubscribed = Math.round(
|
||||||
(newsletter.statistics.unsubscribed * 100) / (newsletter.queue.count_processed)
|
(~~(newsletter.statistics.unsubscribed) * 100) / total_sent
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -235,6 +270,11 @@ const NewsletterListWelcome = React.createClass({
|
|||||||
{ percentage_opened }%, { percentage_clicked }%, { percentage_unsubscribed }%
|
{ percentage_opened }%, { percentage_clicked }%, { percentage_unsubscribed }%
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
return (
|
||||||
|
<span>{MailPoet.I18n.t('notSentYet')}</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
renderItem: function(newsletter, actions) {
|
renderItem: function(newsletter, actions) {
|
||||||
var rowClasses = classNames(
|
var rowClasses = classNames(
|
||||||
|
@ -25,7 +25,7 @@ define(
|
|||||||
name: 'event',
|
name: 'event',
|
||||||
values: {
|
values: {
|
||||||
'segment': MailPoet.I18n.t('onSubscriptionToList'),
|
'segment': MailPoet.I18n.t('onSubscriptionToList'),
|
||||||
'user': MailPoet.I18n.t('onWordpressUserRegistration'),
|
'user': MailPoet.I18n.t('onWPUserRegistration'),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class ShortcodesHelper {
|
|||||||
'shortcode' => 'subscriber:email',
|
'shortcode' => 'subscriber:email',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'text' => __('Wordpress User Display Name'),
|
'text' => __('WordPress User Display Name'),
|
||||||
'shortcode' => 'subscriber:displayname | default:member',
|
'shortcode' => 'subscriber:displayname | default:member',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
|
@ -263,10 +263,6 @@ class Newsletters {
|
|||||||
->withOptions()
|
->withOptions()
|
||||||
->withTotalSent()
|
->withTotalSent()
|
||||||
->withStatistics();
|
->withStatistics();
|
||||||
|
|
||||||
$options = $newsletter->options()->findArray();
|
|
||||||
$newsletter->options = Helpers::arrayColumn($options, 'value', 'name');
|
|
||||||
|
|
||||||
} else if($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
|
} else if($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
|
||||||
$newsletter
|
$newsletter
|
||||||
->withSegments()
|
->withSegments()
|
||||||
|
@ -40,7 +40,7 @@ class DateTime {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a list of time strings within an interval,
|
* Generates a list of time strings within an interval,
|
||||||
* formatted and mapped from DEFAULT_TIME_FORMAT to Wordpress time strings.
|
* formatted and mapped from DEFAULT_TIME_FORMAT to WordPress time strings.
|
||||||
*/
|
*/
|
||||||
function getTimeInterval(
|
function getTimeInterval(
|
||||||
$start_time='00:00:00',
|
$start_time='00:00:00',
|
||||||
|
@ -29,7 +29,8 @@ class WordPress extends \Codeception\Module
|
|||||||
namespace MailPoet\WP;
|
namespace MailPoet\WP;
|
||||||
|
|
||||||
function get_option($key) {
|
function get_option($key) {
|
||||||
if ($callback = \Helper\Wordpress::getInterceptor('get_option'))
|
if($callback = \Helper\WordPress::getInterceptor('get_option')) {
|
||||||
return $callback($key);
|
return $callback($key);
|
||||||
|
}
|
||||||
return \get_option($key);
|
return \get_option($key);
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,6 @@ class DateTimeTest extends MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _afterStep() {
|
function _afterStep() {
|
||||||
Wordpress::releaseAllFunctions();
|
WordPress::releaseAllFunctions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,7 @@
|
|||||||
'selectEventToSendWelcomeEmail': __('Select an event to send this welcome email'),
|
'selectEventToSendWelcomeEmail': __('Select an event to send this welcome email'),
|
||||||
|
|
||||||
'onSubscriptionToList': __('When someone subscribes to the list...'),
|
'onSubscriptionToList': __('When someone subscribes to the list...'),
|
||||||
'onWordpressUserRegistration': __('When a new WordPress user is added to your site...'),
|
'onWPUserRegistration': __('When a new WordPress user is added to your site...'),
|
||||||
'delayImmediately': __('immediately'),
|
'delayImmediately': __('immediately'),
|
||||||
'delayHoursAfter': __('hour(s) after'),
|
'delayHoursAfter': __('hour(s) after'),
|
||||||
'delayDaysAfter': __('day(s) after'),
|
'delayDaysAfter': __('day(s) after'),
|
||||||
@ -214,6 +214,15 @@
|
|||||||
'welcomeEmailActivated': __('Your welcome email is now active.'),
|
'welcomeEmailActivated': __('Your welcome email is now active.'),
|
||||||
'welcomeEmailActivationFailed': __('Your welcome email could not be activated, check its settings.'),
|
'welcomeEmailActivationFailed': __('Your welcome email could not be activated, check its settings.'),
|
||||||
'postNotificationActivated': __('Your post notification is now active.'),
|
'postNotificationActivated': __('Your post notification is now active.'),
|
||||||
'postNotificationActivationFailed': __('Your post notification could not be activated, check its settings.')
|
'postNotificationActivationFailed': __('Your post notification could not be activated, check its settings.'),
|
||||||
|
|
||||||
|
'welcomeEventSegment': __('This newsletter is sent when someone subscribes to the list "%$1s"'),
|
||||||
|
'welcomeEventWPUserAnyRole': __('This newsletter is sent when a new WordPress user is added to your site'),
|
||||||
|
'welcomeEventWPUserWithRole': __('This newsletter is sent when a new WordPress user with the role "%$1s" is added to your site'),
|
||||||
|
|
||||||
|
'sendingDelayHours': __('%$1d hour(s) later'),
|
||||||
|
'sendingDelayDays': __('%$1d day(s) later'),
|
||||||
|
'sendingDelayWeeks': __('%$1d week(s) later')
|
||||||
|
|
||||||
}) %>
|
}) %>
|
||||||
<% endblock %>
|
<% endblock %>
|
||||||
|
Reference in New Issue
Block a user