diff --git a/assets/css/src/newsletter_editor/libraryOverrides.styl b/assets/css/src/newsletter_editor/libraryOverrides.styl
index 12c509df0d..2049608f1c 100644
--- a/assets/css/src/newsletter_editor/libraryOverrides.styl
+++ b/assets/css/src/newsletter_editor/libraryOverrides.styl
@@ -84,7 +84,7 @@ position: relative
body
overflow-x: auto
-/* Hide the "Details" section of Wordpress Media manager */
+/* Hide the "Details" section of WordPress Media manager */
.media-sidebar
display: none
@@ -98,7 +98,7 @@ body
.attachments-browser .uploader-inline
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
max-width: calc(100% - 12px)
diff --git a/assets/js/src/newsletters/listings/welcome.jsx b/assets/js/src/newsletters/listings/welcome.jsx
index 0c53af1e96..6c33c37c17 100644
--- a/assets/js/src/newsletters/listings/welcome.jsx
+++ b/assets/js/src/newsletters/listings/welcome.jsx
@@ -10,6 +10,8 @@ import jQuery from 'jquery'
import MailPoet from 'mailpoet'
import _ from 'underscore'
+const mailpoet_roles = window.mailpoet_roles || {};
+
const messages = {
onTrash(response) {
const count = ~~response;
@@ -74,7 +76,8 @@ var columns = [
},
{
name: 'statistics',
- label: MailPoet.I18n.t('statistics')
+ label: MailPoet.I18n.t('statistics'),
+ display: mailpoet_tracking_enabled
},
{
name: 'updated_at',
@@ -187,12 +190,20 @@ const NewsletterListWelcome = React.createClass({
);
},
renderSettings: function(newsletter) {
- let settings;
+ let sendingEvent;
+ let sendingDelay;
+ // set sending event
switch (newsletter.options.event) {
case '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;
case 'segment':
@@ -201,40 +212,69 @@ const NewsletterListWelcome = React.createClass({
return (~~(segment.id) === ~~(newsletter.options.segment));
});
- settings = MailPoet.I18n.t('onSubscriptionToList') + ' ' +segment.name;
+ sendingEvent = MailPoet.I18n.t('welcomeEventSegment').replace(
+ '%$1s', segment.name
+ );
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 (
- { settings }
+ { sendingEvent }.
);
},
renderStatistics: function(newsletter) {
- if(!newsletter.statistics || !newsletter.queue || newsletter.queue.count_processed == 0 || newsletter.queue.status === 'scheduled') {
- return (
-
- {MailPoet.I18n.t('notSentYet')}
-
- );
+ if (mailpoet_tracking_enabled === false) {
+ return;
}
- var percentage_clicked = Math.round(
- (newsletter.statistics.clicked * 100) / (newsletter.queue.count_processed)
- );
- var percentage_opened = Math.round(
- (newsletter.statistics.opened * 100) / (newsletter.queue.count_processed)
- );
- var percentage_unsubscribed = Math.round(
- (newsletter.statistics.unsubscribed * 100) / (newsletter.queue.count_processed)
- );
+ if(newsletter.statistics && newsletter.queue && newsletter.queue.status !== 'scheduled') {
+ const total_sent = ~~(newsletter.queue.count_processed);
+ const percentage_clicked = Math.round(
+ (~~(newsletter.statistics.clicked) * 100) / total_sent
+ );
+ const percentage_opened = Math.round(
+ (~~(newsletter.statistics.opened) * 100) / total_sent
+ );
+ const percentage_unsubscribed = Math.round(
+ (~~(newsletter.statistics.unsubscribed) * 100) / total_sent
+ );
- return (
-
- { percentage_opened }%, { percentage_clicked }%, { percentage_unsubscribed }%
-
- );
+ return (
+
+ { percentage_opened }%, { percentage_clicked }%, { percentage_unsubscribed }%
+
+ );
+ } else {
+ return (
+ {MailPoet.I18n.t('notSentYet')}
+ );
+ }
},
renderItem: function(newsletter, actions) {
var rowClasses = classNames(
diff --git a/assets/js/src/newsletters/types/welcome/scheduling.jsx b/assets/js/src/newsletters/types/welcome/scheduling.jsx
index 03e94c533b..1946cf9160 100644
--- a/assets/js/src/newsletters/types/welcome/scheduling.jsx
+++ b/assets/js/src/newsletters/types/welcome/scheduling.jsx
@@ -25,7 +25,7 @@ define(
name: 'event',
values: {
'segment': MailPoet.I18n.t('onSubscriptionToList'),
- 'user': MailPoet.I18n.t('onWordpressUserRegistration'),
+ 'user': MailPoet.I18n.t('onWPUserRegistration'),
}
};
diff --git a/lib/Newsletter/Shortcodes/ShortcodesHelper.php b/lib/Newsletter/Shortcodes/ShortcodesHelper.php
index 9baf4f533b..e461ab4ec4 100644
--- a/lib/Newsletter/Shortcodes/ShortcodesHelper.php
+++ b/lib/Newsletter/Shortcodes/ShortcodesHelper.php
@@ -21,7 +21,7 @@ class ShortcodesHelper {
'shortcode' => 'subscriber:email',
),
array(
- 'text' => __('Wordpress User Display Name'),
+ 'text' => __('WordPress User Display Name'),
'shortcode' => 'subscriber:displayname | default:member',
),
array(
diff --git a/lib/Router/Newsletters.php b/lib/Router/Newsletters.php
index d7b6e1e91e..1e39520a8c 100644
--- a/lib/Router/Newsletters.php
+++ b/lib/Router/Newsletters.php
@@ -263,10 +263,6 @@ class Newsletters {
->withOptions()
->withTotalSent()
->withStatistics();
-
- $options = $newsletter->options()->findArray();
- $newsletter->options = Helpers::arrayColumn($options, 'value', 'name');
-
} else if($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
$newsletter
->withSegments()
diff --git a/lib/WP/DateTime.php b/lib/WP/DateTime.php
index 2b0359f094..eedcbd4d85 100644
--- a/lib/WP/DateTime.php
+++ b/lib/WP/DateTime.php
@@ -40,7 +40,7 @@ class DateTime {
/**
* 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(
$start_time='00:00:00',
diff --git a/tests/_support/Helper/WordPress.php b/tests/_support/Helper/WordPress.php
index 326dddd3fe..3508b30a8e 100644
--- a/tests/_support/Helper/WordPress.php
+++ b/tests/_support/Helper/WordPress.php
@@ -29,7 +29,8 @@ class WordPress extends \Codeception\Module
namespace MailPoet\WP;
function get_option($key) {
- if ($callback = \Helper\Wordpress::getInterceptor('get_option'))
+ if($callback = \Helper\WordPress::getInterceptor('get_option')) {
return $callback($key);
+ }
return \get_option($key);
}
diff --git a/tests/unit/WP/DateTimeTest.php b/tests/unit/WP/DateTimeTest.php
index 8eae9f9497..2620de3735 100644
--- a/tests/unit/WP/DateTimeTest.php
+++ b/tests/unit/WP/DateTimeTest.php
@@ -77,6 +77,6 @@ class DateTimeTest extends MailPoetTest {
}
function _afterStep() {
- Wordpress::releaseAllFunctions();
+ WordPress::releaseAllFunctions();
}
}
diff --git a/views/newsletters.html b/views/newsletters.html
index 6389603dbc..d63104cfdf 100644
--- a/views/newsletters.html
+++ b/views/newsletters.html
@@ -137,7 +137,7 @@
'selectEventToSendWelcomeEmail': __('Select an event to send this welcome email'),
'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'),
'delayHoursAfter': __('hour(s) after'),
'delayDaysAfter': __('day(s) after'),
@@ -214,6 +214,15 @@
'welcomeEmailActivated': __('Your welcome email is now active.'),
'welcomeEmailActivationFailed': __('Your welcome email could not be activated, check its settings.'),
'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 %>