Email Subscribers & Newsletters - Version 4.0.4

Version Description

(07.03.2019) = * Fix: 'es_subbox' function not working * Fix: Warning: Cannot modify header information

Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Email Subscribers & Newsletters
Version 4.0.4
Comparing to
See all releases

Code changes from version 4.0.3 to 4.0.4

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: 4.0.3
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
@@ -24,7 +24,7 @@ if ( ! defined( 'WPINC' ) ) {
24
  * Define constants
25
  */
26
  define( 'ES_PLUGIN_DIR', dirname( __FILE__ ) );
27
- define( 'ES_PLUGIN_VERSION', '4.0.3' );
28
  define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
29
 
30
  if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
@@ -123,7 +123,7 @@ function es_subbox( $namefield = null, $desc = null, $group = null ) {
123
  'group' => $group
124
  );
125
 
126
- ES_Shortcode::render_es_subscription_shortcode( $atts );
127
  }
128
 
129
  /**
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: 4.0.4
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
24
  * Define constants
25
  */
26
  define( 'ES_PLUGIN_DIR', dirname( __FILE__ ) );
27
+ define( 'ES_PLUGIN_VERSION', '4.0.4' );
28
  define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
29
 
30
  if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
123
  'group' => $group
124
  );
125
 
126
+ echo ES_Shortcode::render_es_subscription_shortcode( $atts );
127
  }
128
 
129
  /**
includes/admin/class-es-campaigns-table.php CHANGED
@@ -160,7 +160,7 @@ class ES_Campaigns_Table extends WP_List_Table {
160
 
161
  /** Text displayed when no list data is available */
162
  public function no_items() {
163
- _e( 'No Post Notifications avaliable.', 'email-subscribers' );
164
  }
165
 
166
 
@@ -319,10 +319,10 @@ class ES_Campaigns_Table extends WP_List_Table {
319
  $current_page = $this->get_pagenum();
320
  $total_items = $this->get_lists( 0, 0, true );
321
 
322
- $this->set_pagination_args( [
323
  'total_items' => $total_items, //WE have to calculate the total number of items
324
  'per_page' => $per_page //WE have to determine how many items to show on a page
325
- ] );
326
 
327
  $this->items = $this->get_lists( $per_page, $current_page );
328
  }
160
 
161
  /** Text displayed when no list data is available */
162
  public function no_items() {
163
+ _e( 'No Campaigns Found.', 'email-subscribers' );
164
  }
165
 
166
 
319
  $current_page = $this->get_pagenum();
320
  $total_items = $this->get_lists( 0, 0, true );
321
 
322
+ $this->set_pagination_args( array(
323
  'total_items' => $total_items, //WE have to calculate the total number of items
324
  'per_page' => $per_page //WE have to determine how many items to show on a page
325
+ ) );
326
 
327
  $this->items = $this->get_lists( $per_page, $current_page );
328
  }
includes/admin/class-es-forms-table.php CHANGED
@@ -690,10 +690,10 @@ class ES_Forms_Table extends WP_List_Table {
690
  $current_page = $this->get_pagenum();
691
  $total_items = $this->get_lists( 0, 0, true );
692
 
693
- $this->set_pagination_args( [
694
  'total_items' => $total_items, //WE have to calculate the total number of items
695
  'per_page' => $per_page //WE have to determine how many items to show on a page
696
- ] );
697
 
698
  $this->items = $this->get_lists( $per_page, $current_page );
699
  }
690
  $current_page = $this->get_pagenum();
691
  $total_items = $this->get_lists( 0, 0, true );
692
 
693
+ $this->set_pagination_args( array(
694
  'total_items' => $total_items, //WE have to calculate the total number of items
695
  'per_page' => $per_page //WE have to determine how many items to show on a page
696
+ ) );
697
 
698
  $this->items = $this->get_lists( $per_page, $current_page );
699
  }
includes/admin/class-es-lists-table.php CHANGED
@@ -482,10 +482,10 @@ class ES_Lists_Table extends WP_List_Table {
482
  $current_page = $this->get_pagenum();
483
  $total_items = $this->get_lists( 0, 0, true );
484
 
485
- $this->set_pagination_args( [
486
  'total_items' => $total_items, //WE have to calculate the total number of items
487
  'per_page' => $per_page //WE have to determine how many items to show on a page
488
- ] );
489
 
490
  $this->items = $this->get_lists( $per_page, $current_page );
491
  }
482
  $current_page = $this->get_pagenum();
483
  $total_items = $this->get_lists( 0, 0, true );
484
 
485
+ $this->set_pagination_args( array(
486
  'total_items' => $total_items, //WE have to calculate the total number of items
487
  'per_page' => $per_page //WE have to determine how many items to show on a page
488
+ ) );
489
 
490
  $this->items = $this->get_lists( $per_page, $current_page );
491
  }
includes/admin/class-es-reports-table.php CHANGED
@@ -420,7 +420,6 @@ class ES_Reports_Table extends WP_List_Table {
420
  <div class="wrap">
421
  <h2 style="margin-bottom:1em;">
422
  <?php echo __( 'Preview Email', 'email-subscribers' ); ?>
423
- <a class="add-new-h2" target="_blank" href="#"><?php echo __( 'Help', 'email-subscribers' ); ?></a>
424
  </h2>
425
  <p>
426
  <?php echo __( 'This is how the email you sent may look. <br>Note: Different email services (like gmail, yahoo etc) display email content differently. So there could be a slight variation on how your customer will view the email content.', 'email-subscribers' ); ?>
420
  <div class="wrap">
421
  <h2 style="margin-bottom:1em;">
422
  <?php echo __( 'Preview Email', 'email-subscribers' ); ?>
 
423
  </h2>
424
  <p>
425
  <?php echo __( 'This is how the email you sent may look. <br>Note: Different email services (like gmail, yahoo etc) display email content differently. So there could be a slight variation on how your customer will view the email content.', 'email-subscribers' ); ?>
includes/admin/class-es-subscribers-table.php CHANGED
@@ -627,10 +627,10 @@ class ES_Subscribers_Table extends WP_List_Table {
627
  $current_page = $this->get_pagenum();
628
  $total_items = $this->get_subscribers( 0, 0, true );
629
 
630
- $this->set_pagination_args( [
631
  'total_items' => $total_items, //WE have to calculate the total number of items
632
  'per_page' => $per_page //WE have to determine how many items to show on a page
633
- ] );
634
 
635
  $this->items = $this->get_subscribers( $per_page, $current_page );
636
  }
627
  $current_page = $this->get_pagenum();
628
  $total_items = $this->get_subscribers( 0, 0, true );
629
 
630
+ $this->set_pagination_args( array(
631
  'total_items' => $total_items, //WE have to calculate the total number of items
632
  'per_page' => $per_page //WE have to determine how many items to show on a page
633
+ ) );
634
 
635
  $this->items = $this->get_subscribers( $per_page, $current_page );
636
  }
includes/class-email-subscribers.php CHANGED
@@ -75,7 +75,7 @@ class Email_Subscribers {
75
 
76
  require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-activator.php';
77
  require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-deactivator.php';
78
- add_action( 'admin_init', array( $this, 'add_version_notice' ) );
79
  if ( ! post_type_exists( 'es_template' ) ) {
80
  add_action( 'init', array( 'Email_Subscribers_Activator', 'register_email_templates' ) );
81
  }
@@ -108,7 +108,7 @@ class Email_Subscribers {
108
  '<a href="' . $url . '" target="_blank">' . __( 'Email Subscribers Pro', 'email-subscribers-premium' ) . '</a>' ); ?></p>
109
  </div>
110
  <?php
111
- return;
112
  }
113
  }
114
  }
75
 
76
  require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-activator.php';
77
  require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-deactivator.php';
78
+ add_action( 'admin_notices', array( $this, 'add_version_notice' ) );
79
  if ( ! post_type_exists( 'es_template' ) ) {
80
  add_action( 'init', array( 'Email_Subscribers_Activator', 'register_email_templates' ) );
81
  }
108
  '<a href="' . $url . '" target="_blank">' . __( 'Email Subscribers Pro', 'email-subscribers-premium' ) . '</a>' ); ?></p>
109
  </div>
110
  <?php
111
+ return;
112
  }
113
  }
114
  }
includes/class-es-install.php CHANGED
@@ -109,10 +109,9 @@ class ES_Install {
109
  }
110
 
111
  public static function check_version() {
112
- self::$logger->info( 'Checking Version..' );
113
  self::$logger->info( 'Checking Version..' . get_option( 'ig_es_db_version', '1.0.0' ) );
114
  if ( version_compare( get_option( 'ig_es_db_version', '1.0.0' ), ES_PLUGIN_VERSION, '<' ) ) {
115
- self::$logger->info( 'Seems Need To Update DB..' );
116
  self::install();
117
  }
118
  }
@@ -159,10 +158,12 @@ class ES_Install {
159
 
160
  if ( self::is_new_install() ) {
161
  self::$logger->info( 'New Install??? Yes...Begin installing......' );
 
162
  // If we made it till here nothing is running yet, lets set the transient now.
163
  set_transient( 'ig_es_installing', 'yes', MINUTE_IN_SECONDS * 10 );
164
  ig_es_maybe_define_constant( 'IG_ES_INSTALLING', true );
165
 
 
166
  // Create Tables
167
  self::create_tables();
168
 
@@ -201,12 +202,15 @@ class ES_Install {
201
  $current_db_version = get_option( 'ig_es_db_version', '1.0.0' );
202
  $updates = self::get_db_update_callbacks();
203
 
 
 
204
  return ! is_null( $current_db_version ) && version_compare( $current_db_version, max( array_keys( $updates ) ), '<' );
205
  }
206
 
207
  private static function maybe_update_db_version() {
208
  if ( self::needs_db_update() ) {
209
- if ( apply_filters( 'ig_es_enable_auto_update_db', false ) ) {
 
210
  self::init_background_updater();
211
  self::update();
212
  } else {
@@ -214,7 +218,7 @@ class ES_Install {
214
  ES_Admin_Notices::add_notice( 'update' );
215
  }
216
  } else {
217
- self::$logger->info( 'Mybe Update...update db version' );
218
  self::update_db_version();
219
  }
220
  }
@@ -225,6 +229,12 @@ class ES_Install {
225
 
226
  private static function update() {
227
  self::$logger->info( 'Do Update....' );
 
 
 
 
 
 
228
  $current_db_version = get_ig_es_db_version();
229
  $update_queued = false;
230
 
@@ -244,8 +254,11 @@ class ES_Install {
244
  }
245
 
246
  if ( $update_queued ) {
 
247
  self::$background_updater->save()->dispatch();
248
  }
 
 
249
  }
250
 
251
  public static function update_db_version( $version = null ) {
109
  }
110
 
111
  public static function check_version() {
 
112
  self::$logger->info( 'Checking Version..' . get_option( 'ig_es_db_version', '1.0.0' ) );
113
  if ( version_compare( get_option( 'ig_es_db_version', '1.0.0' ), ES_PLUGIN_VERSION, '<' ) ) {
114
+ self::$logger->info( 'Seems need to run updater..' );
115
  self::install();
116
  }
117
  }
158
 
159
  if ( self::is_new_install() ) {
160
  self::$logger->info( 'New Install??? Yes...Begin installing......' );
161
+
162
  // If we made it till here nothing is running yet, lets set the transient now.
163
  set_transient( 'ig_es_installing', 'yes', MINUTE_IN_SECONDS * 10 );
164
  ig_es_maybe_define_constant( 'IG_ES_INSTALLING', true );
165
 
166
+
167
  // Create Tables
168
  self::create_tables();
169
 
202
  $current_db_version = get_option( 'ig_es_db_version', '1.0.0' );
203
  $updates = self::get_db_update_callbacks();
204
 
205
+ self::$logger->info( 'Current DB VERSION-------------------' . $current_db_version );
206
+
207
  return ! is_null( $current_db_version ) && version_compare( $current_db_version, max( array_keys( $updates ) ), '<' );
208
  }
209
 
210
  private static function maybe_update_db_version() {
211
  if ( self::needs_db_update() ) {
212
+ if ( apply_filters( 'ig_es_enable_auto_update_db', true ) ) {
213
+ self::$logger->info( 'Do Update DB ................. >>>>>>>>>>>>>>>>>>>>>>>' );
214
  self::init_background_updater();
215
  self::update();
216
  } else {
218
  ES_Admin_Notices::add_notice( 'update' );
219
  }
220
  } else {
221
+ self::$logger->info( 'No need to update db...' );
222
  self::update_db_version();
223
  }
224
  }
229
 
230
  private static function update() {
231
  self::$logger->info( 'Do Update....' );
232
+
233
+ // Check if we are not already running this routine.
234
+ if ( 'yes' === get_transient( 'ig_es_updating' ) ) {
235
+ return;
236
+ }
237
+
238
  $current_db_version = get_ig_es_db_version();
239
  $update_queued = false;
240
 
254
  }
255
 
256
  if ( $update_queued ) {
257
+ set_transient( 'ig_es_updating', 'yes', MINUTE_IN_SECONDS * 10 );
258
  self::$background_updater->save()->dispatch();
259
  }
260
+
261
+
262
  }
263
 
264
  public static function update_db_version( $version = null ) {
includes/class-es-mailer.php CHANGED
@@ -35,7 +35,7 @@ class ES_Mailer {
35
  $email = $mail['email'];
36
  $id = $mail['contact_id'];
37
  $guid = $mail['mailing_queue_hash'];
38
- $email_name = !empty($emails_name_map[ $email ]) ? $emails_name_map[ $email ] : '';
39
 
40
  $keywords = array(
41
  'name' => $email_name,
@@ -134,7 +134,7 @@ class ES_Mailer {
134
  public static function prepare_double_optin_email( $data ) {
135
 
136
  $blog_name = get_option( 'blogname' );
137
- $content = stripslashes(get_option( 'ig_es_confirmation_mail_content', '' ));
138
  $subscribe_link = get_option( 'ig_es_optin_link', true );
139
 
140
  $db_id = isset( $data['db_id'] ) ? $data['db_id'] : '';
@@ -277,9 +277,9 @@ class ES_Mailer {
277
  );
278
 
279
  if ( in_array( $get_email_type, array( 'wp_html_mail', 'php_html_mail' ) ) ) {
280
- $headers[] = "Content-Type: text/html; charset=\"". get_bloginfo('charset');
281
  } else {
282
- $headers[] = "Content-Type: text/plain; charset=\"". get_bloginfo('charset');
283
  $email_template = str_replace( "<br />", "\r\n", $email_template );
284
  $email_template = str_replace( "<br>", "\r\n", $email_template );
285
  $email_template = strip_tags( $email_template );
35
  $email = $mail['email'];
36
  $id = $mail['contact_id'];
37
  $guid = $mail['mailing_queue_hash'];
38
+ $email_name = ! empty( $emails_name_map[ $email ] ) ? $emails_name_map[ $email ] : '';
39
 
40
  $keywords = array(
41
  'name' => $email_name,
134
  public static function prepare_double_optin_email( $data ) {
135
 
136
  $blog_name = get_option( 'blogname' );
137
+ $content = stripslashes( get_option( 'ig_es_confirmation_mail_content', '' ) );
138
  $subscribe_link = get_option( 'ig_es_optin_link', true );
139
 
140
  $db_id = isset( $data['db_id'] ) ? $data['db_id'] : '';
277
  );
278
 
279
  if ( in_array( $get_email_type, array( 'wp_html_mail', 'php_html_mail' ) ) ) {
280
+ $headers[] = "Content-Type: text/html; charset=\"" . get_bloginfo( 'charset' );
281
  } else {
282
+ $headers[] = "Content-Type: text/plain; charset=\"" . get_bloginfo( 'charset' );
283
  $email_template = str_replace( "<br />", "\r\n", $email_template );
284
  $email_template = str_replace( "<br>", "\r\n", $email_template );
285
  $email_template = strip_tags( $email_template );
includes/db/class-es-db-sending-queue.php CHANGED
@@ -263,7 +263,7 @@ class ES_DB_Sending_Queue {
263
  $data['contact_id'] = $contact_id;
264
  $data['contact_hash'] = $hash;
265
  $data['email'] = $email;
266
- $data['status'] = $result['es_deliver_status'];
267
  $data['opened'] = $is_opened;
268
  $data['sent_at'] = $mailing_queue_details[ $result['es_deliver_sentguid'] ]['start_at'];
269
  $data['opened_at'] = $result['es_deliver_viewdate'];
263
  $data['contact_id'] = $contact_id;
264
  $data['contact_hash'] = $hash;
265
  $data['email'] = $email;
266
+ $data['status'] = $result['es_deliver_sentstatus'];
267
  $data['opened'] = $is_opened;
268
  $data['sent_at'] = $mailing_queue_details[ $result['es_deliver_sentguid'] ]['start_at'];
269
  $data['opened_at'] = $result['es_deliver_viewdate'];
includes/upgrade/class-es-background-updater.php CHANGED
@@ -129,6 +129,8 @@ class ES_Background_Updater extends ES_Background_Process {
129
  $logger = get_ig_logger();
130
  $logger->info( 'Data update complete', array( 'source' => 'ig_es_db_updates' ) );
131
  ES_Install::update_db_version();
 
 
132
  parent::complete();
133
  }
134
 
129
  $logger = get_ig_logger();
130
  $logger->info( 'Data update complete', array( 'source' => 'ig_es_db_updates' ) );
131
  ES_Install::update_db_version();
132
+
133
+ delete_transient( 'ig_es_updating' );
134
  parent::complete();
135
  }
136
 
includes/upgrade/es-update-functions.php CHANGED
@@ -148,8 +148,11 @@ function ig_es_update_330_import_options() {
148
  $table_exists = $wpdb->query( "SHOW TABLES LIKE '{$wpdb->prefix}es_pluginconfig'" );
149
 
150
  if ( $table_exists > 0 ) {
 
151
  // Pull out ES settings data of existing users and move them to options table
152
- $settings_data = es_cls_settings::es_setting_select( 1 );
 
 
153
  if ( ! empty( $settings_data ) ) {
154
  foreach ( $settings_data as $name => $value ) {
155
  if ( array_key_exists( $name, $settings_to_rename ) ) {
@@ -476,27 +479,18 @@ function ig_es_update_400_migrate_lists() {
476
 
477
  // Import contacts from es_emaillist table to ig_contacts and ig_lists_contacts table
478
  function ig_es_update_400_migrate_subscribers() {
479
- global $wpdb;
480
-
481
  $logger = get_ig_logger();
482
-
483
  ES_DB_Contacts::migrate_subscribers_from_older_version();
484
-
485
  $logger->info( 'Run ig_es_update_400_import_contacts' );
486
  }
487
 
488
  function ig_es_update_400_migrate_post_notifications() {
489
-
490
  $logger = get_ig_logger();
491
-
492
  ES_DB_Campaigns::migrate_post_notifications();
493
-
494
  $logger->info( 'Run ig_es_update_400_migrate_campaigns' );
495
-
496
  }
497
 
498
 
499
-
500
  function ig_es_update_400_migrate_notifications() {
501
  /**
502
  * - Migrate notifications from es_notification to ig_es_mailing_queue table
@@ -573,11 +567,11 @@ function ig_es_update_403_alter_campaigns_table() {
573
  global $wpdb;
574
 
575
  $query = "ALTER TABLE {$wpdb->prefix}ig_campaigns MODIFY `name` varchar(255) DEFAULT NULL";
576
- $wpdb->query($query);
577
 
578
  $query = "ALTER TABLE {$wpdb->prefix}ig_campaigns MODIFY `slug` varchar(255) DEFAULT NULL";
579
 
580
- $wpdb->query($query);
581
 
582
  $logger = get_ig_logger();
583
  $logger->info( 'Run ig_es_update_403_alter_campaigns_table' );
@@ -589,7 +583,7 @@ function ig_es_update_403_alter_mailing_queue_table() {
589
  $logger = get_ig_logger();
590
  $logger->info( 'Run ig_es_update_403_alter_mailing_queue_table' );
591
  $query = "ALTER TABLE {$wpdb->prefix}ig_mailing_queue MODIFY `subject` text DEFAULT ''";
592
- $wpdb->query($query);
593
  }
594
 
595
  function ig_es_update_403_db_version() {
148
  $table_exists = $wpdb->query( "SHOW TABLES LIKE '{$wpdb->prefix}es_pluginconfig'" );
149
 
150
  if ( $table_exists > 0 ) {
151
+ global $wpdb;
152
  // Pull out ES settings data of existing users and move them to options table
153
+ $es_get_settings_data = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}es_pluginconfig WHERE es_c_id = %d", 1 );
154
+ $settings_data = $wpdb->get_row( $es_get_settings_data, ARRAY_A );
155
+
156
  if ( ! empty( $settings_data ) ) {
157
  foreach ( $settings_data as $name => $value ) {
158
  if ( array_key_exists( $name, $settings_to_rename ) ) {
479
 
480
  // Import contacts from es_emaillist table to ig_contacts and ig_lists_contacts table
481
  function ig_es_update_400_migrate_subscribers() {
 
 
482
  $logger = get_ig_logger();
 
483
  ES_DB_Contacts::migrate_subscribers_from_older_version();
 
484
  $logger->info( 'Run ig_es_update_400_import_contacts' );
485
  }
486
 
487
  function ig_es_update_400_migrate_post_notifications() {
 
488
  $logger = get_ig_logger();
 
489
  ES_DB_Campaigns::migrate_post_notifications();
 
490
  $logger->info( 'Run ig_es_update_400_migrate_campaigns' );
 
491
  }
492
 
493
 
 
494
  function ig_es_update_400_migrate_notifications() {
495
  /**
496
  * - Migrate notifications from es_notification to ig_es_mailing_queue table
567
  global $wpdb;
568
 
569
  $query = "ALTER TABLE {$wpdb->prefix}ig_campaigns MODIFY `name` varchar(255) DEFAULT NULL";
570
+ $wpdb->query( $query );
571
 
572
  $query = "ALTER TABLE {$wpdb->prefix}ig_campaigns MODIFY `slug` varchar(255) DEFAULT NULL";
573
 
574
+ $wpdb->query( $query );
575
 
576
  $logger = get_ig_logger();
577
  $logger->info( 'Run ig_es_update_403_alter_campaigns_table' );
583
  $logger = get_ig_logger();
584
  $logger->info( 'Run ig_es_update_403_alter_mailing_queue_table' );
585
  $query = "ALTER TABLE {$wpdb->prefix}ig_mailing_queue MODIFY `subject` text DEFAULT ''";
586
+ $wpdb->query( $query );
587
  }
588
 
589
  function ig_es_update_403_db_version() {
languages/email-subscribers.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Email Subscribers & Newsletters\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2019-03-06 12:20+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -20,10 +20,6 @@ msgstr ""
20
  msgid "Audience"
21
  msgstr ""
22
 
23
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-mailer.php:101
24
- msgid "Welcome !"
25
- msgstr ""
26
-
27
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:89
28
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
29
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:484
@@ -110,6 +106,10 @@ msgstr ""
110
  msgid "Thumbnail"
111
  msgstr ""
112
 
 
 
 
 
113
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:109
114
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:377
115
  msgid "Please enter email address"
@@ -620,9 +620,9 @@ msgstr ""
620
 
621
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:83
622
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:76
 
623
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:41
624
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:54
625
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:234
626
  msgid "Campaigns"
627
  msgstr ""
628
 
@@ -987,8 +987,8 @@ msgid "Campaigns > Broadcast"
987
  msgstr ""
988
 
989
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:77
990
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:57
991
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:238
 
992
  msgid "Manage Templates"
993
  msgstr ""
994
 
@@ -1229,28 +1229,6 @@ msgid ""
1229
  "above lists. Add list of domain(s) one per line to block."
1230
  msgstr ""
1231
 
1232
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:19
1233
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:20
1234
- msgid "Campaign"
1235
- msgstr ""
1236
-
1237
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:55
1238
- msgid "Create Post Notification"
1239
- msgstr ""
1240
-
1241
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:56
1242
- msgid "Send Broadcast"
1243
- msgstr ""
1244
-
1245
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:163
1246
- msgid "No Post Notifications avaliable."
1247
- msgstr ""
1248
-
1249
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:191
1250
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:183
1251
- msgid "Broadcast"
1252
- msgstr ""
1253
-
1254
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:85
1255
  msgid "You do not have permission to edit this form."
1256
  msgstr ""
@@ -1423,6 +1401,11 @@ msgstr ""
1423
  msgid "No Reports avaliable."
1424
  msgstr ""
1425
 
 
 
 
 
 
1426
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:199
1427
  msgid "Completed"
1428
  msgstr ""
@@ -1568,6 +1551,23 @@ msgstr ""
1568
  msgid "No contacts avaliable."
1569
  msgstr ""
1570
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1571
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/class-es-admin-notices.php:97
1572
  msgid "Action failed. Please refresh the page and retry."
1573
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Email Subscribers & Newsletters\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2019-03-07 12:39+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
20
  msgid "Audience"
21
  msgstr ""
22
 
 
 
 
 
23
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:89
24
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
25
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:484
106
  msgid "Thumbnail"
107
  msgstr ""
108
 
109
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-mailer.php:101
110
+ msgid "Welcome !"
111
+ msgstr ""
112
+
113
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:109
114
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:377
115
  msgid "Please enter email address"
620
 
621
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:83
622
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:76
623
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:234
624
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:41
625
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:54
 
626
  msgid "Campaigns"
627
  msgstr ""
628
 
987
  msgstr ""
988
 
989
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:77
 
990
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:238
991
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:57
992
  msgid "Manage Templates"
993
  msgstr ""
994
 
1229
  "above lists. Add list of domain(s) one per line to block."
1230
  msgstr ""
1231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1232
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:85
1233
  msgid "You do not have permission to edit this form."
1234
  msgstr ""
1401
  msgid "No Reports avaliable."
1402
  msgstr ""
1403
 
1404
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:183
1405
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:191
1406
+ msgid "Broadcast"
1407
+ msgstr ""
1408
+
1409
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:199
1410
  msgid "Completed"
1411
  msgstr ""
1551
  msgid "No contacts avaliable."
1552
  msgstr ""
1553
 
1554
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:19
1555
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:20
1556
+ msgid "Campaign"
1557
+ msgstr ""
1558
+
1559
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:55
1560
+ msgid "Create Post Notification"
1561
+ msgstr ""
1562
+
1563
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:56
1564
+ msgid "Send Broadcast"
1565
+ msgstr ""
1566
+
1567
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:163
1568
+ msgid "No Campaigns Found."
1569
+ msgstr ""
1570
+
1571
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/class-es-admin-notices.php:97
1572
  msgid "Action failed. Please refresh the page and retry."
1573
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Author URI: https://www.icegram.com/
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
6
  Requires at least: 3.9
7
  Tested up to: 5.1
8
- Stable tag: 4.0.3
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
@@ -308,6 +308,10 @@ Use our free plugin [Email Subscribers - Group Selector](https://wordpress.org/p
308
 
309
  == Changelog ==
310
 
 
 
 
 
311
  = 4.0.3 (06.03.2019) =
312
  * New: Able to process queued emails manually
313
  * Update: Added list wise status for contact on Audience dashboard
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
6
  Requires at least: 3.9
7
  Tested up to: 5.1
8
+ Stable tag: 4.0.4
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
308
 
309
  == Changelog ==
310
 
311
+ = 4.0.4 (07.03.2019) =
312
+ * Fix: 'es_subbox' function not working
313
+ * Fix: Warning: Cannot modify header information
314
+
315
  = 4.0.3 (06.03.2019) =
316
  * New: Able to process queued emails manually
317
  * Update: Added list wise status for contact on Audience dashboard