Add statistics to template
[MAILPOET-1571]
This commit is contained in:
@@ -42,9 +42,9 @@ class Worker {
|
|||||||
try {
|
try {
|
||||||
$this->mailer->send($this->constructNewsletter($task), $settings['address']);
|
$this->mailer->send($this->constructNewsletter($task), $settings['address']);
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
//if(WP_DEBUG) {
|
if(WP_DEBUG) {
|
||||||
throw $e;
|
throw $e;
|
||||||
//}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
$this->markTaskAsFinished($task);
|
$this->markTaskAsFinished($task);
|
||||||
}
|
}
|
||||||
@@ -99,19 +99,24 @@ class Worker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function prepareContext(Newsletter $newsletter, NewsletterLink $link) {
|
private function prepareContext(Newsletter $newsletter, NewsletterLink $link) {
|
||||||
|
$clicked = ($newsletter->statistics['clicked'] * 100) / $newsletter->total_sent;
|
||||||
|
$opened = ($newsletter->statistics['opened'] * 100) / $newsletter->total_sent;
|
||||||
|
$unsubscribed = ($newsletter->statistics['unsubscribed'] * 100) / $newsletter->total_sent;
|
||||||
return [
|
return [
|
||||||
'subject' => $newsletter->subject,
|
'subject' => $newsletter->subject,
|
||||||
'preheader' => sprintf(_x(
|
'preheader' => sprintf(_x(
|
||||||
'%1$s%% opens, %2$s%% clicks, %3$s%% unsubscribes in a nutshell.', 'newsletter open rate, click rate and unsubscribe rate', 'mailpoet'),
|
'%1$s%% opens, %2$s%% clicks, %3$s%% unsubscribes in a nutshell.', 'newsletter open rate, click rate and unsubscribe rate', 'mailpoet'),
|
||||||
number_format(($newsletter->statistics['clicked'] * 100) / $newsletter->total_sent, 2),
|
number_format($clicked, 2),
|
||||||
number_format(($newsletter->statistics['opened'] * 100) / $newsletter->total_sent,2),
|
number_format($opened, 2),
|
||||||
number_format(($newsletter->statistics['unsubscribed'] * 100) / $newsletter->total_sent,2)
|
number_format($unsubscribed, 2)
|
||||||
),
|
),
|
||||||
'topLinkClicks' => $link->clicksCount,
|
'topLinkClicks' => (int)$link->clicksCount,
|
||||||
'topLink' => $link->url,
|
'topLink' => $link->url,
|
||||||
'linkSettings' => get_site_url(null, '/wp-admin/admin.php?page=mailpoet-settings#basics'),
|
'linkSettings' => get_site_url(null, '/wp-admin/admin.php?page=mailpoet-settings#basics'),
|
||||||
'linkStats' => get_site_url(null, '/wp-admin/admin.php?page=mailpoet-newsletters#/stats/' . $newsletter->id()),
|
'linkStats' => get_site_url(null, '/wp-admin/admin.php?page=mailpoet-newsletters#/stats/' . $newsletter->id()),
|
||||||
'premiumPluginActive' => is_plugin_active('mailpoet-premium/mailpoet-premium.php'),
|
'premiumPluginActive' => is_plugin_active('mailpoet-premium/mailpoet-premium.php'),
|
||||||
|
'clicked' => $clicked,
|
||||||
|
'opened' => $opened,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -170,7 +170,7 @@ class WorkerTest extends \MailPoetTest {
|
|||||||
$this->stringContains('statsNotification.html'),
|
$this->stringContains('statsNotification.html'),
|
||||||
$this->callback(function($context){
|
$this->callback(function($context){
|
||||||
return ($context['topLink'] === 'Link url2')
|
return ($context['topLink'] === 'Link url2')
|
||||||
&& ($context['topLinkClicks'] === '2');
|
&& ($context['topLinkClicks'] === 2);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$this->stats_notifications->process();
|
$this->stats_notifications->process();
|
||||||
|
@@ -24,6 +24,20 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
<% if opened > 30 %>
|
||||||
|
<% set openedColor = '2993ab' %>
|
||||||
|
<% elseif opened > 10 %>
|
||||||
|
<% set openedColor = 'f0b849' %>
|
||||||
|
<% else %>
|
||||||
|
<% set openedColor = 'd54e21' %>
|
||||||
|
<% endif %>
|
||||||
|
<% if clicked > 3 %>
|
||||||
|
<% set clickedColor = '2993ab' %>
|
||||||
|
<% elseif clicked > 1 %>
|
||||||
|
<% set clickedColor = 'f0b849' %>
|
||||||
|
<% else %>
|
||||||
|
<% set clickedColor = 'd54e21' %>
|
||||||
|
<% endif %>
|
||||||
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="margin:0;padding:0;background-color:#f0f0f0">
|
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="margin:0;padding:0;background-color:#f0f0f0">
|
||||||
<table class="mailpoet_template" border="0" width="100%" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
<table class="mailpoet_template" border="0" width="100%" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -106,8 +120,14 @@
|
|||||||
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_button-container" style="text-align:center;border-collapse:collapse">
|
<td class="mailpoet_button-container" style="text-align:center;border-collapse:collapse">
|
||||||
<a class="mailpoet_button" href="" style="display:inline-block;-webkit-text-size-adjust:none;mso-hide:all;text-decoration:none;text-align:center;background-color:#f0b849 ;border-color:#0074a2 ;border-width:0px ;border-radius:3px ;border-style:solid ;width:100px ;line-height:20px ;color:#ffffff ;font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif ;font-size:10px ;font-weight:normal ">
|
<a class="mailpoet_button" href="" style="display:inline-block;-webkit-text-size-adjust:none;mso-hide:all;text-decoration:none;text-align:center;background-color:#<%= openedColor %> ;border-color:#0074a2 ;border-width:0px ;border-radius:3px ;border-style:solid ;width:100px ;line-height:20px ;color:#ffffff ;font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif ;font-size:10px ;font-weight:normal ">
|
||||||
GOOD
|
<% if opened > 30 %>
|
||||||
|
<%= __('EXCELENT') %>
|
||||||
|
<% elseif opened > 10 %>
|
||||||
|
<%= __('GOOD') %>
|
||||||
|
<% else %>
|
||||||
|
<%= __('BAD') %>
|
||||||
|
<% endif %>
|
||||||
</a></td>
|
</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -117,8 +137,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
||||||
<h2 style="text-align:center;padding:0;font-style:normal;font-weight:normal;margin:0 0 12px;color:#222222;font-family:'Courier New',Courier,'Lucida Sans Typewriter','Lucida Typewriter',monospace;font-size:40px;line-height:64px">
|
<h2 style="text-align:center;padding:0;font-style:normal;font-weight:normal;margin:0 0 12px;color:#222222;font-family:'Courier New',Courier,'Lucida Sans Typewriter','Lucida Typewriter',monospace;font-size:40px;line-height:64px">
|
||||||
<span style="color: #f0b849;">
|
<span style="color: #<%= openedColor %>;">
|
||||||
<strong>29.8%</strong>
|
<strong><%= number_format_i18n(opened) %>%</strong>
|
||||||
</span>
|
</span>
|
||||||
</h2>
|
</h2>
|
||||||
</td>
|
</td>
|
||||||
@@ -128,7 +148,7 @@
|
|||||||
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_paragraph" style="word-break:break-word;word-wrap:break-word;text-align:center;border-collapse:collapse;color:#000000;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:16px;line-height:25.6px">
|
<td class="mailpoet_paragraph" style="word-break:break-word;word-wrap:break-word;text-align:center;border-collapse:collapse;color:#000000;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:16px;line-height:25.6px">
|
||||||
<span style="color: #f0b849;">
|
<span style="color: #<%= openedColor %>;">
|
||||||
<%= __('open rate') %>
|
<%= __('open rate') %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -151,8 +171,14 @@
|
|||||||
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_button-container" style="text-align:center;border-collapse:collapse">
|
<td class="mailpoet_button-container" style="text-align:center;border-collapse:collapse">
|
||||||
<a class="mailpoet_button" href="" style="display:inline-block;-webkit-text-size-adjust:none;mso-hide:all;text-decoration:none;text-align:center;background-color:#2993ab ;border-color:#0074a2 ;border-width:0px ;border-radius:3px ;border-style:solid ;width:100px ;line-height:20px ;color:#ffffff ;font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif ;font-size:10px ;font-weight:normal ">
|
<a class="mailpoet_button" href="" style="display:inline-block;-webkit-text-size-adjust:none;mso-hide:all;text-decoration:none;text-align:center;background-color:#<%= clickedColor %> ;border-color:#0074a2 ;border-width:0px ;border-radius:3px ;border-style:solid ;width:100px ;line-height:20px ;color:#ffffff ;font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif ;font-size:10px ;font-weight:normal ">
|
||||||
EXCELLENT
|
<% if clicked > 3 %>
|
||||||
|
<%= __('EXCELENT') %>
|
||||||
|
<% elseif clicked > 1 %>
|
||||||
|
<%= __('GOOD') %>
|
||||||
|
<% else %>
|
||||||
|
<%= __('BAD') %>
|
||||||
|
<% endif %>
|
||||||
</a></td>
|
</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -162,8 +188,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
||||||
<h2 style="text-align:center;padding:0;font-style:normal;font-weight:normal;margin:0 0 12px;color:#222222;font-family:'Courier New',Courier,'Lucida Sans Typewriter','Lucida Typewriter',monospace;font-size:40px;line-height:64px">
|
<h2 style="text-align:center;padding:0;font-style:normal;font-weight:normal;margin:0 0 12px;color:#222222;font-family:'Courier New',Courier,'Lucida Sans Typewriter','Lucida Typewriter',monospace;font-size:40px;line-height:64px">
|
||||||
<span style="color: #2993ab;">
|
<span style="color: #<%= clickedColor %>;">
|
||||||
3.1%
|
<%= number_format_i18n(clicked) %>%
|
||||||
</span>
|
</span>
|
||||||
</h2>
|
</h2>
|
||||||
</td>
|
</td>
|
||||||
@@ -173,7 +199,7 @@
|
|||||||
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_paragraph" style="word-break:break-word;word-wrap:break-word;text-align:center;border-collapse:collapse;color:#000000;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:16px;line-height:25.6px">
|
<td class="mailpoet_paragraph" style="word-break:break-word;word-wrap:break-word;text-align:center;border-collapse:collapse;color:#000000;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:16px;line-height:25.6px">
|
||||||
<span style="color: #2993ab;">
|
<span style="color: #<%= clickedColor %>;">
|
||||||
<%= __('click rate') %>
|
<%= __('click rate') %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -193,6 +219,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% if topLinkClicks > 0 %>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_content" align="center" style="border-collapse:collapse">
|
<td class="mailpoet_content" align="center" style="border-collapse:collapse">
|
||||||
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
||||||
@@ -262,6 +289,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% endif %>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_content" align="center" style="border-collapse:collapse">
|
<td class="mailpoet_content" align="center" style="border-collapse:collapse">
|
||||||
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse">
|
||||||
@@ -283,6 +311,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_spacer" height="30" valign="top" style="border-collapse:collapse"></td>
|
<td class="mailpoet_spacer" height="30" valign="top" style="border-collapse:collapse"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% if premiumPluginActive %>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
<td class="mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
||||||
<div>
|
<div>
|
||||||
@@ -297,6 +326,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% else %>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
<td class="mailpoet_text mailpoet_padded_bottom mailpoet_padded_side" valign="top" style="word-break:break-word;word-wrap:break-word;padding-top:0;border-collapse:collapse;padding-bottom:20px;padding-left:20px;padding-right:20px">
|
||||||
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
<table style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0;border-collapse:collapse" width="100%" cellpadding="0">
|
||||||
@@ -321,6 +351,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% endif %>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="mailpoet_spacer" height="20" valign="top" style="border-collapse:collapse"></td>
|
<td class="mailpoet_spacer" height="20" valign="top" style="border-collapse:collapse"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
Reference in New Issue
Block a user