Version Description
- New: Send different welcome/confirmation emails to subscribers based on their list
- Fix: Some subscribers's emails getting excluded while sending emails[PRO]
=
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 5.4.2 |
Comparing to | |
See all releases |
Code changes from version 5.4.1 to 5.4.2
- email-subscribers.php +2 -2
- lite/admin/class-email-subscribers-admin.php +5 -0
- lite/admin/class-es-campaign-admin.php +1 -1
- lite/admin/js/email-subscribers-admin.js +6 -9
- lite/includes/workflows/actions/class-es-action-add-to-list.php +3 -2
- lite/includes/workflows/fields/class-es-select.php +1 -1
- lite/public/class-email-subscribers-public.php +4 -3
- readme.txt +9 -7
email-subscribers.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
-
* Version: 5.4.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
@@ -187,7 +187,7 @@ if ( 'premium' === $ig_es_plan ) {
|
|
187 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
188 |
|
189 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
190 |
-
define( 'ES_PLUGIN_VERSION', '5.4.
|
191 |
}
|
192 |
|
193 |
// Plugin Folder Path.
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
+
* Version: 5.4.2
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
187 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
188 |
|
189 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
190 |
+
define( 'ES_PLUGIN_VERSION', '5.4.2' );
|
191 |
}
|
192 |
|
193 |
// Plugin Folder Path.
|
lite/admin/class-email-subscribers-admin.php
CHANGED
@@ -217,6 +217,11 @@ class Email_Subscribers_Admin {
|
|
217 |
'onbeforeunloadimport' => esc_html__( 'You are currently importing subscribers! If you leave the page all pending subscribers don\'t get imported!', 'email-subscribers' ),
|
218 |
'api_verification_success' => esc_html__( 'API is valid. Fetching lists...', 'email-subscribers' ),
|
219 |
'mailchimp_notice_nowindow_close' => esc_html__( 'Fetching contacts from MailChimp...Please do not close this window', 'email-subscribers' ),
|
|
|
|
|
|
|
|
|
|
|
220 |
),
|
221 |
'is_pro' => ES()->is_pro() ? true : false,
|
222 |
);
|
217 |
'onbeforeunloadimport' => esc_html__( 'You are currently importing subscribers! If you leave the page all pending subscribers don\'t get imported!', 'email-subscribers' ),
|
218 |
'api_verification_success' => esc_html__( 'API is valid. Fetching lists...', 'email-subscribers' ),
|
219 |
'mailchimp_notice_nowindow_close' => esc_html__( 'Fetching contacts from MailChimp...Please do not close this window', 'email-subscribers' ),
|
220 |
+
|
221 |
+
// verify Email authentication header messages
|
222 |
+
'error_send_test_email' => esc_html__('SMTP Error : Unable to send test email', 'email-subscribers'),
|
223 |
+
'error_server_busy' => esc_html__('Server Busy : Please try again later', 'email-subscribers'),
|
224 |
+
'success_verify_email_headers' => esc_html__('Headers verified successfully', 'email-subscribers'),
|
225 |
),
|
226 |
'is_pro' => ES()->is_pro() ? true : false,
|
227 |
);
|
lite/admin/class-es-campaign-admin.php
CHANGED
@@ -493,7 +493,7 @@ if ( ! class_exists( 'ES_Campaign_Admin' ) ) {
|
|
493 |
|
494 |
<div class="mt-7 hidden mx-auto es_campaign_second max-w-7xl">
|
495 |
<span class="ig-es-ajax-loader">
|
496 |
-
<img src="
|
497 |
</span>
|
498 |
<?php
|
499 |
$inline_preview_data = $this->get_campaign_inline_preview_data( $campaign_data );
|
493 |
|
494 |
<div class="mt-7 hidden mx-auto es_campaign_second max-w-7xl">
|
495 |
<span class="ig-es-ajax-loader">
|
496 |
+
<img src="<?php echo esc_url(ES_PLUGIN_URL); ?>lite/admin/images/spinner-2x.gif">
|
497 |
</span>
|
498 |
<?php
|
499 |
$inline_preview_data = $this->get_campaign_inline_preview_data( $campaign_data );
|
lite/admin/js/email-subscribers-admin.js
CHANGED
@@ -1157,7 +1157,6 @@
|
|
1157 |
jQuery('#ig-es-verify-auth-headers').click(function(e){
|
1158 |
e.preventDefault();
|
1159 |
|
1160 |
-
let err_msg = 'SMTP Error : Unable to send test email';
|
1161 |
var params = {
|
1162 |
type:'POST',
|
1163 |
url:ajaxurl,
|
@@ -1180,12 +1179,12 @@
|
|
1180 |
}
|
1181 |
else{
|
1182 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
1183 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(
|
1184 |
}
|
1185 |
},
|
1186 |
error:function(err){
|
1187 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
1188 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(
|
1189 |
},
|
1190 |
}
|
1191 |
jQuery.ajax(params);
|
@@ -1194,8 +1193,6 @@
|
|
1194 |
|
1195 |
function getEmailAuthHeaders(){
|
1196 |
|
1197 |
-
let err_msg = 'Server Busy : Please try again later';
|
1198 |
-
|
1199 |
var params = {
|
1200 |
type:'POST',
|
1201 |
url:ajaxurl,
|
@@ -1212,18 +1209,18 @@
|
|
1212 |
|
1213 |
if( 'undefined' !== table_elem && Array.isArray(headerData) && headerData.length > 0 ){
|
1214 |
populateTableData( table_elem, headerData, false );
|
1215 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-green-500').html(
|
1216 |
}
|
1217 |
else{
|
1218 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(
|
1219 |
}
|
1220 |
}
|
1221 |
catch(err){
|
1222 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(
|
1223 |
}
|
1224 |
},
|
1225 |
error:function(err){
|
1226 |
-
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(
|
1227 |
},
|
1228 |
complete:function(){
|
1229 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
1157 |
jQuery('#ig-es-verify-auth-headers').click(function(e){
|
1158 |
e.preventDefault();
|
1159 |
|
|
|
1160 |
var params = {
|
1161 |
type:'POST',
|
1162 |
url:ajaxurl,
|
1179 |
}
|
1180 |
else{
|
1181 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
1182 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(ig_es_js_data.i18n_data.error_send_test_email);
|
1183 |
}
|
1184 |
},
|
1185 |
error:function(err){
|
1186 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
1187 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(ig_es_js_data.i18n_data.error_send_test_email);
|
1188 |
},
|
1189 |
}
|
1190 |
jQuery.ajax(params);
|
1193 |
|
1194 |
function getEmailAuthHeaders(){
|
1195 |
|
|
|
|
|
1196 |
var params = {
|
1197 |
type:'POST',
|
1198 |
url:ajaxurl,
|
1209 |
|
1210 |
if( 'undefined' !== table_elem && Array.isArray(headerData) && headerData.length > 0 ){
|
1211 |
populateTableData( table_elem, headerData, false );
|
1212 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-green-500').html(ig_es_js_data.i18n_data.success_verify_email_headers);
|
1213 |
}
|
1214 |
else{
|
1215 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(ig_es_js_data.i18n_data.error_server_busy);
|
1216 |
}
|
1217 |
}
|
1218 |
catch(err){
|
1219 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(ig_es_js_data.i18n_data.error_server_busy);
|
1220 |
}
|
1221 |
},
|
1222 |
error:function(err){
|
1223 |
+
jQuery('#ig-es-verify-auth-message').addClass('text-red-500').html(ig_es_js_data.i18n_data.error_server_busy);
|
1224 |
},
|
1225 |
complete:function(){
|
1226 |
jQuery('#ig-es-verify-auth-headers').next('#spinner-image').hide();
|
lite/includes/workflows/actions/class-es-action-add-to-list.php
CHANGED
@@ -46,7 +46,7 @@ if ( ! class_exists( 'ES_Action_Add_To_List' ) ) {
|
|
46 |
$list_field->set_options( $lists );
|
47 |
$list_field->set_required();
|
48 |
$this->add_field( $list_field );
|
49 |
-
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -60,6 +60,7 @@ if ( ! class_exists( 'ES_Action_Add_To_List' ) ) {
|
|
60 |
|
61 |
$user_list_status = $this->get_option( 'ig-es-user-list-status' );
|
62 |
|
|
|
63 |
|
64 |
if ( ! $list_id ) {
|
65 |
return;
|
@@ -137,7 +138,7 @@ if ( ! class_exists( 'ES_Action_Add_To_List' ) ) {
|
|
137 |
'email' => $email,
|
138 |
'source' => $source,
|
139 |
'status' => $status,
|
140 |
-
'user_list_status'
|
141 |
'hash' => $guid,
|
142 |
'created_at' => ig_get_current_date_time(),
|
143 |
'wp_user_id' => $wp_user_id,
|
46 |
$list_field->set_options( $lists );
|
47 |
$list_field->set_required();
|
48 |
$this->add_field( $list_field );
|
49 |
+
|
50 |
}
|
51 |
|
52 |
/**
|
60 |
|
61 |
$user_list_status = $this->get_option( 'ig-es-user-list-status' );
|
62 |
|
63 |
+
$user_list_status = empty( $user_list_status ) ? 'subscribed' : $user_list_status;
|
64 |
|
65 |
if ( ! $list_id ) {
|
66 |
return;
|
138 |
'email' => $email,
|
139 |
'source' => $source,
|
140 |
'status' => $status,
|
141 |
+
'user_list_status' => $user_list_status,
|
142 |
'hash' => $guid,
|
143 |
'created_at' => ig_get_current_date_time(),
|
144 |
'wp_user_id' => $wp_user_id,
|
lite/includes/workflows/fields/class-es-select.php
CHANGED
@@ -225,7 +225,7 @@ class ES_Select extends ES_Field {
|
|
225 |
|
226 |
<?php foreach ( $this->get_options() as $opt_name => $opt_value ) : ?>
|
227 |
<option value="<?php echo esc_attr( $opt_name ); ?>"
|
228 |
-
<?php echo in_array( $opt_name, $values, true ) ? 'selected="selected"' : ''; ?>
|
229 |
><?php echo esc_html( $opt_value ); ?></option>
|
230 |
<?php endforeach; ?>
|
231 |
|
225 |
|
226 |
<?php foreach ( $this->get_options() as $opt_name => $opt_value ) : ?>
|
227 |
<option value="<?php echo esc_attr( $opt_name ); ?>"
|
228 |
+
<?php echo in_array( (string) $opt_name, $values, true ) ? 'selected="selected"' : ''; ?>
|
229 |
><?php echo esc_html( $opt_value ); ?></option>
|
230 |
<?php endforeach; ?>
|
231 |
|
lite/public/class-email-subscribers-public.php
CHANGED
@@ -184,7 +184,8 @@ class Email_Subscribers_Public {
|
|
184 |
'last_name' => ! empty( $contact[ $email ] ) ? $contact[ $email ]['last_name'] : '',
|
185 |
'email' => $email,
|
186 |
'contact_id' => $db_id,
|
187 |
-
'guid' => $guid
|
|
|
188 |
);
|
189 |
|
190 |
$lists = ES()->lists_db->get_all_lists_name_by_contact( $db_id );
|
@@ -288,7 +289,7 @@ class Email_Subscribers_Public {
|
|
288 |
// Track Link Click
|
289 |
do_action( 'ig_es_message_click', $link_id, $contact_id, $message_id, $campaign_id );
|
290 |
|
291 |
-
$redirect_link = htmlspecialchars_decode( $link['link'] );
|
292 |
// Now, redirect to target
|
293 |
wp_redirect( $redirect_link );
|
294 |
exit;
|
@@ -305,7 +306,7 @@ class Email_Subscribers_Public {
|
|
305 |
|
306 |
$email = $contact_data['email'];
|
307 |
|
308 |
-
|
309 |
$user_list_status = isset( $contact_data['user_list_status'] ) ? $contact_data['user_list_status'] : 'subscribed' ;
|
310 |
|
311 |
$default_data = array(
|
184 |
'last_name' => ! empty( $contact[ $email ] ) ? $contact[ $email ]['last_name'] : '',
|
185 |
'email' => $email,
|
186 |
'contact_id' => $db_id,
|
187 |
+
'guid' => $guid,
|
188 |
+
'list_ids' => $list_ids,
|
189 |
);
|
190 |
|
191 |
$lists = ES()->lists_db->get_all_lists_name_by_contact( $db_id );
|
289 |
// Track Link Click
|
290 |
do_action( 'ig_es_message_click', $link_id, $contact_id, $message_id, $campaign_id );
|
291 |
|
292 |
+
$redirect_link = htmlspecialchars_decode( $link['link'] );
|
293 |
// Now, redirect to target
|
294 |
wp_redirect( $redirect_link );
|
295 |
exit;
|
306 |
|
307 |
$email = $contact_data['email'];
|
308 |
|
309 |
+
|
310 |
$user_list_status = isset( $contact_data['user_list_status'] ) ? $contact_data['user_list_status'] : 'subscribed' ;
|
311 |
|
312 |
$default_data = array(
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Tags: email marketing, subscription, autoresponder, post notification, welcome e
|
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 6.0
|
8 |
Requires PHP: 5.6
|
9 |
-
Stable tag: 5.4.
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
@@ -310,16 +310,18 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
310 |
|
311 |
== Upgrade Notice ==
|
312 |
|
313 |
-
= 5.4.
|
314 |
|
315 |
-
*
|
316 |
-
* Fix:
|
317 |
-
* Fix: Workflow not running on some setup
|
318 |
-
* Fix: Optional parameter warning in PHP 8.1
|
319 |
-
* Fix: Issue while creating a new campaign on some setup
|
320 |
|
321 |
== Changelog ==
|
322 |
|
|
|
|
|
|
|
|
|
|
|
323 |
**5.4.1 (29.06.2022)**
|
324 |
|
325 |
* Update: Better spam score checking
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 6.0
|
8 |
Requires PHP: 5.6
|
9 |
+
Stable tag: 5.4.2
|
10 |
License: GPLv3
|
11 |
License URI: http://www.gnu.org/licenses
|
12 |
|
310 |
|
311 |
== Upgrade Notice ==
|
312 |
|
313 |
+
= 5.4.2 =
|
314 |
|
315 |
+
* New: Send different welcome/confirmation emails to subscribers based on their list
|
316 |
+
* Fix: Some subscribers's emails getting excluded while sending emails[PRO]
|
|
|
|
|
|
|
317 |
|
318 |
== Changelog ==
|
319 |
|
320 |
+
**5.4.2 (06.07.2022)**
|
321 |
+
|
322 |
+
* New: Send different welcome/confirmation emails to subscribers based on their list
|
323 |
+
* Fix: Some subscribers's emails getting excluded while sending emails[PRO]
|
324 |
+
|
325 |
**5.4.1 (29.06.2022)**
|
326 |
|
327 |
* Update: Better spam score checking
|