Version Description
=
- Fixed notices on email edit panel
- Added microdata to the call to action block
- Added filter on name field while sending. See this post
- Improved the online viewability rules
- Fixed theme editor bad behavior
- Fixed the min size of thumbnails on default theme
- Removed references to font awesome where not used
=
Download this release
Release Info
Developer | satollo |
Plugin | Newsletter |
Version | 5.1.4 |
Comparing to | |
See all releases |
Code changes from version 5.1.3 to 5.1.4
- emails/blocks/cta/block.php +9 -0
- emails/edit-editor.php +0 -1
- emails/edit-html.php +1 -0
- emails/edit.php +23 -20
- emails/emails.php +19 -16
- emails/themes/default/theme.php +2 -2
- emails/tnp-composer/_scripts/newsletter-builder.js +1 -6
- includes/module.php +3 -2
- plugin.php +5 -5
- readme.txt +17 -7
emails/blocks/cta/block.php
CHANGED
@@ -34,6 +34,15 @@ if (empty($options['font_family'])) {
|
|
34 |
|
35 |
<a href="<?php echo $options['url'] ?>" target="_blank" rel="noopener" style="line-height: normal; font-size: <?php echo $options['font_size'] ?>px; font-family: <?php echo $options['font_family'] ?>; font-weight: normal; color: <?php echo $options['color'] ?>; text-decoration: none; background-color: <?php echo $options['background'] ?>; border-top: 15px solid <?php echo $options['background'] ?>; border-bottom: 15px solid <?php echo $options['background'] ?>; border-left: 25px solid <?php echo $options['background'] ?>; border-right: 25px solid <?php echo $options['background'] ?>; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; display: inline-block;"><?php echo $options['text'] ?></a>
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
</td>
|
38 |
</tr>
|
39 |
</table>
|
|
|
|
34 |
|
35 |
<a href="<?php echo $options['url'] ?>" target="_blank" rel="noopener" style="line-height: normal; font-size: <?php echo $options['font_size'] ?>px; font-family: <?php echo $options['font_family'] ?>; font-weight: normal; color: <?php echo $options['color'] ?>; text-decoration: none; background-color: <?php echo $options['background'] ?>; border-top: 15px solid <?php echo $options['background'] ?>; border-bottom: 15px solid <?php echo $options['background'] ?>; border-left: 25px solid <?php echo $options['background'] ?>; border-right: 25px solid <?php echo $options['background'] ?>; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; display: inline-block;"><?php echo $options['text'] ?></a>
|
36 |
|
37 |
+
<div itemscope="" itemtype="http://schema.org/EmailMessage">
|
38 |
+
<div itemprop="potentialAction" itemscope="" itemtype="http://schema.org/ViewAction">
|
39 |
+
<meta itemprop="url" content="<?php echo $options['url'] ?>" />
|
40 |
+
<meta itemprop="name" content="<?php echo esc_attr($options['text']) ?>" />
|
41 |
+
</div>
|
42 |
+
<meta itemprop="description" content="<?php echo esc_attr($options['text']) ?>" />
|
43 |
+
</div>
|
44 |
</td>
|
45 |
</tr>
|
46 |
</table>
|
47 |
+
|
48 |
+
|
emails/edit-editor.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.5.3/tinymce.min.js"></script>
|
2 |
<script type="text/javascript">
|
3 |
-
var template = <?php echo json_encode($template) ?>;
|
4 |
|
5 |
// https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
|
6 |
tinymce.init({
|
1 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.5.3/tinymce.min.js"></script>
|
2 |
<script type="text/javascript">
|
|
|
3 |
|
4 |
// https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
|
5 |
tinymce.init({
|
emails/edit-html.php
CHANGED
@@ -14,6 +14,7 @@
|
|
14 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/xml-hint.js"></script>
|
15 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/html-hint.js"></script>
|
16 |
<script>
|
|
|
17 |
var templateEditor;
|
18 |
jQuery(function () {
|
19 |
templateEditor = CodeMirror.fromTextArea(document.getElementById("options-message"), {
|
14 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/xml-hint.js"></script>
|
15 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/html-hint.js"></script>
|
16 |
<script>
|
17 |
+
|
18 |
var templateEditor;
|
19 |
jQuery(function () {
|
20 |
templateEditor = CodeMirror.fromTextArea(document.getElementById("options-message"), {
|
emails/edit.php
CHANGED
@@ -32,7 +32,7 @@ if (!isset($email['options']['lists'])) {
|
|
32 |
}
|
33 |
$controls->data['options_lists'] = array();
|
34 |
$controls->data['options_lists_exclude'] = array();
|
35 |
-
|
36 |
if (!empty($email['preferences'])) {
|
37 |
$preferences = explode(',', $email['preferences']);
|
38 |
$value = empty($email['options']['preferences_status']) ? 'on' : 'off';
|
@@ -97,16 +97,15 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
97 |
|
98 |
// Reset the options
|
99 |
$email['options'] = array();
|
100 |
-
$email['options']['composer'] =
|
101 |
-
|
102 |
foreach ($controls->data as $name => $value) {
|
103 |
if (strpos($name, 'options_') === 0) {
|
104 |
$email['options'][substr($name, 8)] = $value;
|
105 |
}
|
106 |
}
|
107 |
-
|
108 |
-
//var_dump($email);
|
109 |
|
|
|
110 |
// Before send, we build the query to extract subscriber, so the delivery engine does not
|
111 |
// have to worry about the email parameters
|
112 |
if ($email['options']['status'] == 'S') {
|
@@ -120,9 +119,11 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
120 |
}
|
121 |
|
122 |
$list_where = array();
|
123 |
-
|
124 |
-
$
|
125 |
-
|
|
|
|
|
126 |
}
|
127 |
|
128 |
if (!empty($list_where)) {
|
@@ -132,16 +133,18 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
132 |
$query .= ' and (' . implode(' or ', $list_where) . ')';
|
133 |
}
|
134 |
}
|
135 |
-
|
136 |
$list_where = array();
|
137 |
-
|
138 |
-
$
|
139 |
-
|
|
|
|
|
140 |
}
|
141 |
if (!empty($list_where)) {
|
142 |
$query .= ' and (' . implode(' or ', $list_where) . ')';
|
143 |
}
|
144 |
-
|
145 |
if (isset($email['options']['sex'])) {
|
146 |
$sex = $email['options']['sex'];
|
147 |
if (is_array($sex) && count($sex)) {
|
@@ -244,7 +247,7 @@ if ($email['editor'] == 0) {
|
|
244 |
$controls->data['message'] = $module->extract_body($controls->data['message']);
|
245 |
}
|
246 |
|
247 |
-
if ($controls->data['options_status'] == 'S') {
|
248 |
$controls->warnings[] = __('This newsletter will be sent to not confirmed subscribers.', 'newsletter');
|
249 |
}
|
250 |
|
@@ -389,15 +392,15 @@ if ($controls->data['options_status'] == 'S') {
|
|
389 |
<?php
|
390 |
$lists = $controls->get_list_options();
|
391 |
?>
|
392 |
-
<?php $controls->select('options_lists_operator', array('or'=>__('Match at least one of', 'newsletter'), 'and'=>__('Match all of', 'newsletter'))); ?>
|
393 |
-
|
394 |
<?php $controls->select2('options_lists', $lists, null, true, null, __('All', 'newsletter')); ?>
|
395 |
-
|
396 |
-
<p><?php _e('must not in one of', 'newsletter')?></p>
|
397 |
-
|
398 |
<?php $controls->select2('options_lists_exclude', $lists, null, true, null, __('None', 'newsletter')); ?>
|
399 |
|
400 |
-
|
401 |
</td>
|
402 |
</tr>
|
403 |
|
32 |
}
|
33 |
$controls->data['options_lists'] = array();
|
34 |
$controls->data['options_lists_exclude'] = array();
|
35 |
+
|
36 |
if (!empty($email['preferences'])) {
|
37 |
$preferences = explode(',', $email['preferences']);
|
38 |
$value = empty($email['options']['preferences_status']) ? 'on' : 'off';
|
97 |
|
98 |
// Reset the options
|
99 |
$email['options'] = array();
|
100 |
+
if ($composer) $email['options']['composer'] = true;
|
101 |
+
|
102 |
foreach ($controls->data as $name => $value) {
|
103 |
if (strpos($name, 'options_') === 0) {
|
104 |
$email['options'][substr($name, 8)] = $value;
|
105 |
}
|
106 |
}
|
|
|
|
|
107 |
|
108 |
+
//var_dump($email);
|
109 |
// Before send, we build the query to extract subscriber, so the delivery engine does not
|
110 |
// have to worry about the email parameters
|
111 |
if ($email['options']['status'] == 'S') {
|
119 |
}
|
120 |
|
121 |
$list_where = array();
|
122 |
+
if (isset($email['options']['lists']) && count($email['options']['lists'])) {
|
123 |
+
foreach ($email['options']['lists'] as $list) {
|
124 |
+
$list = (int) $list;
|
125 |
+
$list_where[] = 'list_' . $list . '=1';
|
126 |
+
}
|
127 |
}
|
128 |
|
129 |
if (!empty($list_where)) {
|
133 |
$query .= ' and (' . implode(' or ', $list_where) . ')';
|
134 |
}
|
135 |
}
|
136 |
+
|
137 |
$list_where = array();
|
138 |
+
if (isset($email['options']['lists_exclude']) && count($email['options']['lists_exclude'])) {
|
139 |
+
foreach ($email['options']['lists_exclude'] as $list) {
|
140 |
+
$list = (int) $list;
|
141 |
+
$list_where[] = 'list_' . $list . '=0';
|
142 |
+
}
|
143 |
}
|
144 |
if (!empty($list_where)) {
|
145 |
$query .= ' and (' . implode(' or ', $list_where) . ')';
|
146 |
}
|
147 |
+
|
148 |
if (isset($email['options']['sex'])) {
|
149 |
$sex = $email['options']['sex'];
|
150 |
if (is_array($sex) && count($sex)) {
|
247 |
$controls->data['message'] = $module->extract_body($controls->data['message']);
|
248 |
}
|
249 |
|
250 |
+
if (isset($controls->data['options_status']) && $controls->data['options_status'] == 'S') {
|
251 |
$controls->warnings[] = __('This newsletter will be sent to not confirmed subscribers.', 'newsletter');
|
252 |
}
|
253 |
|
392 |
<?php
|
393 |
$lists = $controls->get_list_options();
|
394 |
?>
|
395 |
+
<?php $controls->select('options_lists_operator', array('or' => __('Match at least one of', 'newsletter'), 'and' => __('Match all of', 'newsletter'))); ?>
|
396 |
+
|
397 |
<?php $controls->select2('options_lists', $lists, null, true, null, __('All', 'newsletter')); ?>
|
398 |
+
|
399 |
+
<p><?php _e('must not in one of', 'newsletter') ?></p>
|
400 |
+
|
401 |
<?php $controls->select2('options_lists_exclude', $lists, null, true, null, __('None', 'newsletter')); ?>
|
402 |
|
403 |
+
|
404 |
</td>
|
405 |
</tr>
|
406 |
|
emails/emails.php
CHANGED
@@ -135,23 +135,26 @@ class NewsletterEmails extends NewsletterModule {
|
|
135 |
header("HTTP/1.0 404 Not Found");
|
136 |
die('Email not found');
|
137 |
}
|
138 |
-
|
139 |
-
if ($email->status == 'new') {
|
140 |
-
header("HTTP/1.0 404 Not Found");
|
141 |
-
die('Not sent yet');
|
142 |
-
}
|
143 |
-
|
144 |
$user = NewsletterSubscription::instance()->get_user_from_request();
|
145 |
-
|
146 |
-
if (
|
147 |
-
|
148 |
-
|
149 |
-
die('No available for online view');
|
150 |
-
}
|
151 |
-
$sent = $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_SENT_TABLE . " where email_id=%d and user_id=%d limit 1", $email->id, $user->id));
|
152 |
-
if (!$sent) {
|
153 |
header("HTTP/1.0 404 Not Found");
|
154 |
-
die('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
}
|
156 |
}
|
157 |
|
@@ -482,7 +485,7 @@ class NewsletterEmails extends NewsletterModule {
|
|
482 |
// case 'content-02-heading.block': $id = '/plugins/newsletter/emails/blocks/heading';
|
483 |
// break;
|
484 |
}
|
485 |
-
|
486 |
// TODO: Correct id for compatibility
|
487 |
$blocks = $this->get_blocks();
|
488 |
if (!isset($blocks[$id])) {
|
135 |
header("HTTP/1.0 404 Not Found");
|
136 |
die('Email not found');
|
137 |
}
|
138 |
+
|
|
|
|
|
|
|
|
|
|
|
139 |
$user = NewsletterSubscription::instance()->get_user_from_request();
|
140 |
+
|
141 |
+
if (!is_user_logged_in() || !(current_user_can('editor') || current_user_can('administrator'))) {
|
142 |
+
|
143 |
+
if ($email->status == 'new') {
|
|
|
|
|
|
|
|
|
144 |
header("HTTP/1.0 404 Not Found");
|
145 |
+
die('Not sent yet');
|
146 |
+
}
|
147 |
+
|
148 |
+
if ($email->private == 1) {
|
149 |
+
if (!$user) {
|
150 |
+
header("HTTP/1.0 404 Not Found");
|
151 |
+
die('No available for online view');
|
152 |
+
}
|
153 |
+
$sent = $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_SENT_TABLE . " where email_id=%d and user_id=%d limit 1", $email->id, $user->id));
|
154 |
+
if (!$sent) {
|
155 |
+
header("HTTP/1.0 404 Not Found");
|
156 |
+
die('No available for online view');
|
157 |
+
}
|
158 |
}
|
159 |
}
|
160 |
|
485 |
// case 'content-02-heading.block': $id = '/plugins/newsletter/emails/blocks/heading';
|
486 |
// break;
|
487 |
}
|
488 |
+
|
489 |
// TODO: Correct id for compatibility
|
490 |
$blocks = $this->get_blocks();
|
491 |
if (!isset($blocks[$id])) {
|
emails/themes/default/theme.php
CHANGED
@@ -14,7 +14,7 @@ global $newsletter, $post;
|
|
14 |
|
15 |
defined('ABSPATH') || exit;
|
16 |
|
17 |
-
if (empty($theme_options['theme_color'])) $color = '#
|
18 |
else $color = $theme_options['theme_color'];
|
19 |
|
20 |
if (isset($theme_options['theme_posts'])) {
|
@@ -97,7 +97,7 @@ if (isset($theme_options['theme_posts'])) {
|
|
97 |
<?php foreach ($posts as $post) { setup_postdata($post); ?>
|
98 |
<tr>
|
99 |
<?php if (isset($theme_options['theme_thumbnails'])) { ?>
|
100 |
-
<td valign="top"><a target="_blank" href="<?php echo get_permalink($post); ?>"><img width="75" src="<?php echo newsletter_get_post_image($post->ID); ?>" alt="image"></a></td>
|
101 |
<?php } ?>
|
102 |
<td valign="top">
|
103 |
<a target="_blank" href="<?php echo get_permalink(); ?>" style="font-size: 20px; line-height: 26px"><?php the_title(); ?></a>
|
14 |
|
15 |
defined('ABSPATH') || exit;
|
16 |
|
17 |
+
if (empty($theme_options['theme_color'])) $color = '#555555';
|
18 |
else $color = $theme_options['theme_color'];
|
19 |
|
20 |
if (isset($theme_options['theme_posts'])) {
|
97 |
<?php foreach ($posts as $post) { setup_postdata($post); ?>
|
98 |
<tr>
|
99 |
<?php if (isset($theme_options['theme_thumbnails'])) { ?>
|
100 |
+
<td valign="top"><a target="_blank" href="<?php echo get_permalink($post); ?>"><img width="75" style="width: 75px; min-width: 75px" src="<?php echo newsletter_get_post_image($post->ID); ?>" alt="image"></a></td>
|
101 |
<?php } ?>
|
102 |
<td valign="top">
|
103 |
<a target="_blank" href="<?php echo get_permalink(); ?>" style="font-size: 20px; line-height: 26px"><?php the_title(); ?></a>
|
emails/tnp-composer/_scripts/newsletter-builder.js
CHANGED
@@ -451,8 +451,6 @@ function create() {
|
|
451 |
jQuery("#newsletter-preloaded-export .tnpc-row-delete").remove();
|
452 |
jQuery("#newsletter-preloaded-export .tnpc-row-edit-block").remove();
|
453 |
jQuery("#newsletter-preloaded-export .tnpc-row").removeClass("ui-draggable");
|
454 |
-
// jQuery("#newsletter-preloaded-export .tnpc-row-edit").removeAttr("data-type");
|
455 |
-
// jQuery("#newsletter-preloaded-export .tnpc-row-edit").removeClass("tnpc-row-edit");
|
456 |
preload_export_html = jQuery("#newsletter-preloaded-export").html();
|
457 |
|
458 |
if (preload_export_html.indexOf('<style type="text/css">') > -1) {
|
@@ -461,13 +459,10 @@ function create() {
|
|
461 |
jQuery('#tnpc-form input[name="options[body]"]').attr('value', export_content);
|
462 |
jQuery("#tnpc-form").submit();
|
463 |
} else {
|
464 |
-
//jQuery.get(ajaxurl, {action: "tnpc_css"}, function (data) {
|
465 |
jQuery.get(TNP_HOME_URL + "?na=emails-composer-css&ver=" + Math.random(), {action: "tnpc_css"}, function (data) {
|
466 |
-
// export_content = '<style>' + data + '</style><link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900,200italic,300italic,400italic,600italic,700italic,900italic" rel="stylesheet" type="text/css"><link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"><div id="tnpc-wrapper"><div id="tnpc-wrapper-newsletter">' + preload_export_html + '</div></div>';
|
467 |
export_content = '<!DOCTYPE html><html><head><title>Newsletter</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
468 |
export_content += '<style type="text/css">' + data + '</style>';
|
469 |
-
export_content += '<link href="
|
470 |
-
export_content += '<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">';
|
471 |
export_content += '</head><body style="margin: 0; padding: 0;">';
|
472 |
export_content += preload_export_html;
|
473 |
export_content += '</body></html>';
|
451 |
jQuery("#newsletter-preloaded-export .tnpc-row-delete").remove();
|
452 |
jQuery("#newsletter-preloaded-export .tnpc-row-edit-block").remove();
|
453 |
jQuery("#newsletter-preloaded-export .tnpc-row").removeClass("ui-draggable");
|
|
|
|
|
454 |
preload_export_html = jQuery("#newsletter-preloaded-export").html();
|
455 |
|
456 |
if (preload_export_html.indexOf('<style type="text/css">') > -1) {
|
459 |
jQuery('#tnpc-form input[name="options[body]"]').attr('value', export_content);
|
460 |
jQuery("#tnpc-form").submit();
|
461 |
} else {
|
|
|
462 |
jQuery.get(TNP_HOME_URL + "?na=emails-composer-css&ver=" + Math.random(), {action: "tnpc_css"}, function (data) {
|
|
|
463 |
export_content = '<!DOCTYPE html><html><head><title>Newsletter</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
464 |
export_content += '<style type="text/css">' + data + '</style>';
|
465 |
+
export_content += '<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900,200italic,300italic,400italic,600italic,700italic,900italic" rel="stylesheet" type="text/css">';
|
|
|
466 |
export_content += '</head><body style="margin: 0; padding: 0;">';
|
467 |
export_content += preload_export_html;
|
468 |
export_content += '</body></html>';
|
includes/module.php
CHANGED
@@ -954,11 +954,12 @@ class NewsletterModule {
|
|
954 |
$options_profile = get_option('newsletter_profile');
|
955 |
|
956 |
$text = str_replace('{email}', $user->email, $text);
|
957 |
-
|
|
|
958 |
$text = str_replace(' {name}', '', $text);
|
959 |
$text = str_replace('{name}', '', $text);
|
960 |
} else {
|
961 |
-
$text = str_replace('{name}', $
|
962 |
}
|
963 |
|
964 |
switch ($user->sex) {
|
954 |
$options_profile = get_option('newsletter_profile');
|
955 |
|
956 |
$text = str_replace('{email}', $user->email, $text);
|
957 |
+
$name = apply_filters('newsletter_replace_name', $user->name, $user);
|
958 |
+
if (empty($name)) {
|
959 |
$text = str_replace(' {name}', '', $text);
|
960 |
$text = str_replace('{name}', '', $text);
|
961 |
} else {
|
962 |
+
$text = str_replace('{name}', $name, $text);
|
963 |
}
|
964 |
|
965 |
switch ($user->sex) {
|
plugin.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: https://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="https://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
-
Version: 5.1.
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: https://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
@@ -14,7 +14,7 @@
|
|
14 |
*/
|
15 |
|
16 |
// Used as dummy parameter on css and js links
|
17 |
-
define('NEWSLETTER_VERSION', '5.1.
|
18 |
|
19 |
global $wpdb, $newsletter;
|
20 |
|
@@ -394,15 +394,15 @@ class Newsletter extends NewsletterModule {
|
|
394 |
wp_enqueue_script('jquery-ui-tabs');
|
395 |
wp_enqueue_media();
|
396 |
wp_enqueue_style('tnp-admin', plugins_url('newsletter') . '/admin.css', array(), filemtime(NEWSLETTER_DIR . '/admin.css'));
|
397 |
-
wp_enqueue_script('tnp-admin', plugins_url('newsletter') . '/admin.js', array(), time());
|
398 |
|
399 |
wp_enqueue_style('tnp-select2', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css');
|
400 |
wp_enqueue_script('tnp-select2', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js');
|
401 |
-
wp_enqueue_script('tnp-jquery-vmap', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/jquery.vmap.min.js');
|
402 |
wp_enqueue_script('tnp-jquery-vmap-world', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/maps/jquery.vmap.world.js', array('tnp-jquery-vmap'));
|
403 |
wp_enqueue_style('tnp-jquery-vmap', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/jqvmap.min.css');
|
404 |
|
405 |
-
wp_register_script('tnp-chart', 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js');
|
406 |
|
407 |
$dismissed = get_option('newsletter_dismissed', array());
|
408 |
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: https://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="https://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
+
Version: 5.1.4
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: https://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
14 |
*/
|
15 |
|
16 |
// Used as dummy parameter on css and js links
|
17 |
+
define('NEWSLETTER_VERSION', '5.1.4');
|
18 |
|
19 |
global $wpdb, $newsletter;
|
20 |
|
394 |
wp_enqueue_script('jquery-ui-tabs');
|
395 |
wp_enqueue_media();
|
396 |
wp_enqueue_style('tnp-admin', plugins_url('newsletter') . '/admin.css', array(), filemtime(NEWSLETTER_DIR . '/admin.css'));
|
397 |
+
wp_enqueue_script('tnp-admin', plugins_url('newsletter') . '/admin.js', array('jquery'), time());
|
398 |
|
399 |
wp_enqueue_style('tnp-select2', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css');
|
400 |
wp_enqueue_script('tnp-select2', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js');
|
401 |
+
wp_enqueue_script('tnp-jquery-vmap', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/jquery.vmap.min.js', array('jquery'));
|
402 |
wp_enqueue_script('tnp-jquery-vmap-world', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/maps/jquery.vmap.world.js', array('tnp-jquery-vmap'));
|
403 |
wp_enqueue_style('tnp-jquery-vmap', 'https://cdnjs.cloudflare.com/ajax/libs/jqvmap/1.5.1/jqvmap.min.css');
|
404 |
|
405 |
+
wp_register_script('tnp-chart', 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js', array('jquery'));
|
406 |
|
407 |
$dismissed = get_option('newsletter_dismissed', array());
|
408 |
|
readme.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
Tags: newsletter,email,subscription,mass mail,list build,email marketing,direct mailing,automation,automated
|
3 |
Requires at least: 3.4.0
|
4 |
Tested up to: 4.9
|
5 |
-
Stable tag: 5.1.
|
6 |
Contributors: satollo,webagile,michael-travan
|
7 |
|
8 |
Add a real newsletter system to your blog. For free. With unlimited newsletters and subscribers.
|
@@ -14,16 +14,16 @@ send and track e-mails, headache-free. It just works out of box!
|
|
14 |
|
15 |
= Main Features =
|
16 |
|
17 |
-
*
|
18 |
-
* **Unlimited
|
19 |
-
* **Unlimited
|
20 |
* Customizable **subscription widget**, **page** or **custom form**
|
21 |
* Wordpress User Registration **seamless integration**
|
22 |
* **Single** And **Double Opt-In** plus privacy checkbox for EU laws compliance
|
23 |
-
* **Subscribers
|
24 |
* SMTP-Ready
|
25 |
* Customizable Themes
|
26 |
-
* Html and Text versions
|
27 |
* All messages are **fully translatable** from Admin Panel (no .po/.mo)
|
28 |
* Diagnostics Panel to check your blog mailing capability
|
29 |
* **Compatible with Postman, WP Mail SMTP, Easy WP SMTP, Easy SMTP Mail, WP Mail Bank**
|
@@ -85,7 +85,17 @@ Thank you, The Newsletter Team
|
|
85 |
|
86 |
== Changelog ==
|
87 |
|
88 |
-
==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
* Fixed newsletter duplication which was loosing the editor type
|
91 |
* Fixed gender saving on targeting
|
2 |
Tags: newsletter,email,subscription,mass mail,list build,email marketing,direct mailing,automation,automated
|
3 |
Requires at least: 3.4.0
|
4 |
Tested up to: 4.9
|
5 |
+
Stable tag: 5.1.4
|
6 |
Contributors: satollo,webagile,michael-travan
|
7 |
|
8 |
Add a real newsletter system to your blog. For free. With unlimited newsletters and subscribers.
|
14 |
|
15 |
= Main Features =
|
16 |
|
17 |
+
* **Responsive email Drag & Drop composer**
|
18 |
+
* **Unlimited subscribers** with statistics
|
19 |
+
* **Unlimited newsletter** with tracking
|
20 |
* Customizable **subscription widget**, **page** or **custom form**
|
21 |
* Wordpress User Registration **seamless integration**
|
22 |
* **Single** And **Double Opt-In** plus privacy checkbox for EU laws compliance
|
23 |
+
* **Subscribers lists** to fine-target your campaigns
|
24 |
* SMTP-Ready
|
25 |
* Customizable Themes
|
26 |
+
* Newsletter with Html and Text message versions
|
27 |
* All messages are **fully translatable** from Admin Panel (no .po/.mo)
|
28 |
* Diagnostics Panel to check your blog mailing capability
|
29 |
* **Compatible with Postman, WP Mail SMTP, Easy WP SMTP, Easy SMTP Mail, WP Mail Bank**
|
85 |
|
86 |
== Changelog ==
|
87 |
|
88 |
+
== 5.1.4 ==
|
89 |
+
|
90 |
+
* Fixed notices on email edit panel
|
91 |
+
* Added microdata to the call to action block
|
92 |
+
* Added filter on name field while sending. [See this post](https://www.thenewsletterplugin.com/?p=54292)
|
93 |
+
* Improved the online [viewability rules](https://www.thenewsletterplugin.com/documentation/newsletters-module#view-online)
|
94 |
+
* Fixed theme editor bad behavior
|
95 |
+
* Fixed the min size of thumbnails on default theme
|
96 |
+
* Removed references to font awesome where not used
|
97 |
+
|
98 |
+
== 5.1.3 ==
|
99 |
|
100 |
* Fixed newsletter duplication which was loosing the editor type
|
101 |
* Fixed gender saving on targeting
|