Email Subscribers & Newsletters - Version 4.0.3

Version Description

(06.03.2019) = * New: Able to process queued emails manually * Update: Added list wise status for contact on Audience dashboard * Update: Added status based filtering for contacts * Update: Added Icegram compatibility * Fix: Post Notification not getting triggered * Fix: Incorrect cron url issue when migrated from other domain

Download this release

Release Info

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

Code changes from version 4.0.2 to 4.0.3

Files changed (35) hide show
  1. admin/class-email-subscribers-admin.php +6 -6
  2. admin/css/email-subscribers-admin.css +29 -7
  3. email-subscribers.php +3 -3
  4. includes/admin/class-es-admin-settings.php +21 -9
  5. includes/admin/class-es-campaigns-table.php +29 -22
  6. includes/admin/class-es-cron.php +72 -17
  7. includes/admin/class-es-export-subscribers.php +2 -2
  8. includes/admin/class-es-forms-table.php +11 -9
  9. includes/admin/class-es-handle-post-notification.php +6 -11
  10. includes/admin/class-es-handle-subscription.php +13 -8
  11. includes/admin/class-es-handle-sync-wp-user.php +3 -2
  12. includes/admin/class-es-import-subscribers.php +1 -1
  13. includes/admin/class-es-lists-table.php +6 -6
  14. includes/admin/class-es-newsletters.php +4 -4
  15. includes/admin/class-es-post-notifications.php +11 -4
  16. includes/admin/class-es-reports-table.php +56 -9
  17. includes/admin/class-es-subscribers-table.php +46 -24
  18. includes/admin/class-es-tools.php +2 -2
  19. includes/class-email-subscribers.php +1 -1
  20. includes/class-es-common.php +28 -6
  21. includes/class-es-install.php +10 -4
  22. includes/class-es-mailer.php +8 -6
  23. includes/db/class-es-db-campaigns.php +1 -1
  24. includes/db/class-es-db-contacts.php +26 -25
  25. includes/db/class-es-db-lists-contacts.php +23 -0
  26. includes/db/class-es-db-mailing-queue.php +11 -5
  27. includes/db/class-es-db-notifications.php +1 -1
  28. includes/db/class-es-db-sending-queue.php +46 -8
  29. includes/es-backward.php +30 -17
  30. includes/upgrade/es-update-functions.php +35 -2
  31. languages/email-subscribers.pot +479 -485
  32. public/js/email-subscribers-public.js +58 -27
  33. public/partials/class-es-shortcode.php +9 -6
  34. public/partials/cron-message.php +54 -0
  35. readme.txt +9 -1
admin/class-email-subscribers-admin.php CHANGED
@@ -283,9 +283,9 @@ class Email_Subscribers_Admin {
283
  }
284
 
285
  public function es_dashboard_callback() {
286
- if ( Email_Subscribers::get_request( 'dismiss_admin_notice' ) == 1 ) {
287
- update_option( 'es_star_review', 1 );
288
- }
289
  $es_plugin_data = get_plugin_data( plugin_dir_path( __DIR__ ) . 'email-subscribers.php' );
290
  $es_current_version = $es_plugin_data['Version'];
291
  $admin_email = get_option( 'admin_email' );
@@ -295,10 +295,10 @@ class Email_Subscribers_Admin {
295
  }
296
 
297
  public static function es_feedback() {
298
- if ( get_option( 'es_star_review' ) != 1 ) {
299
- echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">If you like <strong>Email Subscribers</strong>, please consider leaving us a <a target="_blank" href="https://wordpress.org/support/plugin/email-subscribers/reviews/?filter=5#new-post"><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span></a> rating. A huge thank you from Icegram in advance! <a style="float:right" class="es-admin-btn es-admin-btn-secondary" href="' . admin_url() . 'admin.php?page=es_dashboard&dismiss_admin_notice=1&option_name=es_star_review">No, I don\'t like it</a></p></div>';
300
 
301
- }
302
 
303
  }
304
 
283
  }
284
 
285
  public function es_dashboard_callback() {
286
+ // if ( Email_Subscribers::get_request( 'dismiss_admin_notice' ) == 1 ) {
287
+ // update_option( 'es_star_review', 1 );
288
+ // }
289
  $es_plugin_data = get_plugin_data( plugin_dir_path( __DIR__ ) . 'email-subscribers.php' );
290
  $es_current_version = $es_plugin_data['Version'];
291
  $admin_email = get_option( 'admin_email' );
295
  }
296
 
297
  public static function es_feedback() {
298
+ // if ( get_option( 'es_star_review' ) != 1 ) {
299
+ // echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">If you like <strong>Email Subscribers</strong>, please consider leaving us a <a target="_blank" href="https://wordpress.org/support/plugin/email-subscribers/reviews/?filter=5#new-post"><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span><span>&#9733;</span></a> rating. A huge thank you from Icegram in advance! <a style="float:right" class="es-admin-btn es-admin-btn-secondary" href="' . admin_url() . 'admin.php?page=es_dashboard&dismiss_admin_notice=1&option_name=es_star_review">No, I don\'t like it</a></p></div>';
300
 
301
+ // }
302
 
303
  }
304
 
admin/css/email-subscribers-admin.css CHANGED
@@ -239,20 +239,16 @@ div#post-body-content .meta-box-sortables .row-blog p.submit input#submit {
239
 
240
  /* Customize Admin Settings */
241
 
242
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover {
243
  background: #ffffff !important;
244
  font-weight: normal;
245
  color: #000 !important;
246
  }
247
 
248
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
249
  color: #000 !important;
250
  }
251
 
252
- .wp-person a:focus .gravatar, a:focus, a:focus .media-icon img {
253
- box-shadow: none !important;
254
- }
255
-
256
  .content.save {
257
  float: right;
258
  }
@@ -388,6 +384,9 @@ p.search-box.box-ma10 {
388
  .es-contact-form {
389
  width: 70%;
390
  }
 
 
 
391
  /**** Dashboard : start ***/
392
  .wrap.about-wrap {
393
  background-color: transparent;
@@ -733,4 +732,27 @@ span.es-quick-links{
733
  color: #28487D;
734
  margin: 0.2em 0;
735
  }
736
- /**** Dashboard : end ***/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
 
240
  /* Customize Admin Settings */
241
 
242
+ .ig-settings-form .ui-state-active, .ig-settings-form .ui-widget-content .ui-state-active, .ig-settings-form .ui-widget-header .ui-state-active, .ig-settings-form a.ui-button:active, .ig-settings-form .ui-button:active, .ig-settings-form .ui-button.ui-state-active:hover {
243
  background: #ffffff !important;
244
  font-weight: normal;
245
  color: #000 !important;
246
  }
247
 
248
+ .ig-settings-form .ui-state-active a, .ig-settings-form .ui-state-active a:link, .ig-settings-form .ui-state-active a:visited {
249
  color: #000 !important;
250
  }
251
 
 
 
 
 
252
  .content.save {
253
  float: right;
254
  }
384
  .es-contact-form {
385
  width: 70%;
386
  }
387
+ .es-contact-form .form-table td{
388
+ line-height: 1.3em;
389
+ }
390
  /**** Dashboard : start ***/
391
  .wrap.about-wrap {
392
  background-color: transparent;
732
  color: #28487D;
733
  margin: 0.2em 0;
734
  }
735
+ /**** Dashboard : end ***/
736
+
737
+ .es_list_contact_status:before{
738
+ content: " \2219 ";
739
+ font-size: 4em;
740
+ vertical-align: text-bottom;
741
+ }
742
+ .subscribed.es_list_contact_status:before{
743
+ color: #0fc50f;
744
+ }
745
+ .unsubscribed.es_list_contact_status:before{
746
+ color: #c5310f;
747
+ }
748
+ .unconfirmed.es_list_contact_status:before{
749
+ color: #e6cc14;
750
+ }
751
+
752
+ @media only screen and (max-width: 1362px){
753
+
754
+ .es_list_contact_status:before{
755
+ font-size: 20px;
756
+ }
757
+
758
+ }
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.2
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.2' );
28
  define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
29
 
30
  if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
@@ -122,7 +122,7 @@ function es_subbox( $namefield = null, $desc = null, $group = null ) {
122
  'desc' => $desc,
123
  'group' => $group
124
  );
125
-
126
  ES_Shortcode::render_es_subscription_shortcode( $atts );
127
  }
128
 
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
  * 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' ) ) {
122
  'desc' => $desc,
123
  'group' => $group
124
  );
125
+
126
  ES_Shortcode::render_es_subscription_shortcode( $atts );
127
  }
128
 
includes/admin/class-es-admin-settings.php CHANGED
@@ -38,9 +38,9 @@ class ES_Admin_Settings {
38
 
39
  public function show_message( $message = '', $status = 'success' ) {
40
 
41
- $class = 'notice notice-success';
42
  if ( 'error' === $status ) {
43
- $class = 'notice notice-error';
44
  }
45
  echo "<div class='{$class}'><p>{$message}</p></div>";
46
  }
@@ -201,7 +201,7 @@ class ES_Admin_Settings {
201
  'options' => false,
202
  'placeholder' => '',
203
  'supplemental' => '',
204
- 'default' => __( 'You have been successfully subscribed.', 'email-subscribers' ),
205
  'id' => 'ig_es_subscription_success_message',
206
  'name' => __( 'Success Message', 'email-subscribers' ),
207
  'desc' => __( 'Show this message if contact is successfully subscribed from Double Opt-In (Confirmation) Email', 'email-subscribers' )
@@ -382,13 +382,11 @@ class ES_Admin_Settings {
382
  'default' => '',
383
  ),
384
  )
385
- ),
386
-
387
-
388
  ),
389
 
390
  'cron_settings' => array(
391
- 'ig_es_cronurl' => array(
392
  'type' => 'text',
393
  'placeholder' => '',
394
  'supplemental' => '',
@@ -399,7 +397,16 @@ class ES_Admin_Settings {
399
  'desc' => __( sprintf( "You need to visit this URL to send email notifications. Know <a href='%s' target='_blank'>how to run this in background</a>",
400
  "https://www.icegram.com/documentation/es-how-to-schedule-cron-emails-in-cpanel/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" ) )
401
  ),
402
- 'ig_es_hourly_email_send_limit' => array( 'type' => 'text', 'placeholder' => '', 'supplemental' => '', 'default' => 50, 'id' => 'ig_es_hourly_email_send_limit', 'name' => __( 'Maximum Emails Send In An Hour', 'email-subscribers' ), 'desc' => __( 'Total emails your host can send in an hour.', 'email-subscribers' ) )
 
 
 
 
 
 
 
 
 
403
  //'ig_es_cron_admin_email' => array( 'type' => 'textarea', 'options' => false, 'placeholder' => '', 'supplemental' => '', 'default' => '', 'id' => 'ig_es_cron_admin_email', 'name' => __( 'Send Cron Report To', 'email-subscribers' ), 'desc' => '', ),
404
  ),
405
  'security_settings' => array(
@@ -420,7 +427,12 @@ class ES_Admin_Settings {
420
 
421
  public function field_callback( $arguments ) {
422
  $field_html = '';
423
- $value = get_option( $arguments['id'] ); // Get the current value, if there is one
 
 
 
 
 
424
  if ( ! $value ) { // If no value exists
425
  $value = ! empty( $arguments['default'] ) ? $arguments['default'] : ''; // Set to our default
426
  }
38
 
39
  public function show_message( $message = '', $status = 'success' ) {
40
 
41
+ $class = 'notice notice-success is-dismissible';
42
  if ( 'error' === $status ) {
43
+ $class = 'notice notice-error is-dismissible';
44
  }
45
  echo "<div class='{$class}'><p>{$message}</p></div>";
46
  }
201
  'options' => false,
202
  'placeholder' => '',
203
  'supplemental' => '',
204
+ 'default' => __( 'You have been subscribed successfully!', 'email-subscribers' ),
205
  'id' => 'ig_es_subscription_success_message',
206
  'name' => __( 'Success Message', 'email-subscribers' ),
207
  'desc' => __( 'Show this message if contact is successfully subscribed from Double Opt-In (Confirmation) Email', 'email-subscribers' )
382
  'default' => '',
383
  ),
384
  )
385
+ )
 
 
386
  ),
387
 
388
  'cron_settings' => array(
389
+ 'ig_es_cronurl' => array(
390
  'type' => 'text',
391
  'placeholder' => '',
392
  'supplemental' => '',
397
  'desc' => __( sprintf( "You need to visit this URL to send email notifications. Know <a href='%s' target='_blank'>how to run this in background</a>",
398
  "https://www.icegram.com/documentation/es-how-to-schedule-cron-emails-in-cpanel/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" ) )
399
  ),
400
+
401
+ 'ig_es_hourly_email_send_limit' => array(
402
+ 'type' => 'text',
403
+ 'placeholder' => '',
404
+ 'supplemental' => '',
405
+ 'default' => 50,
406
+ 'id' => 'ig_es_hourly_email_send_limit',
407
+ 'name' => __( 'Maximum Emails Send In An Hour', 'email-subscribers' ),
408
+ 'desc' => __( 'Total emails your host can send in an hour.', 'email-subscribers' )
409
+ )
410
  //'ig_es_cron_admin_email' => array( 'type' => 'textarea', 'options' => false, 'placeholder' => '', 'supplemental' => '', 'default' => '', 'id' => 'ig_es_cron_admin_email', 'name' => __( 'Send Cron Report To', 'email-subscribers' ), 'desc' => '', ),
411
  ),
412
  'security_settings' => array(
427
 
428
  public function field_callback( $arguments ) {
429
  $field_html = '';
430
+
431
+ if ( 'ig_es_cronurl' === $arguments['id'] ) {
432
+ $value = ES_Common::get_cron_url();
433
+ } else {
434
+ $value = get_option( $arguments['id'] ); // Get the current value, if there is one
435
+ }
436
  if ( ! $value ) { // If no value exists
437
  $value = ! empty( $arguments['default'] ) ? $arguments['default'] : ''; // Set to our default
438
  }
includes/admin/class-es-campaigns-table.php CHANGED
@@ -128,9 +128,9 @@ class ES_Campaigns_Table extends WP_List_Table {
128
 
129
  // Prepare Order by clause
130
  $order_by_clause = '';
131
- $order = ! empty( $order ) ? ' ' . esc_sql( $order ) : ' DESC';
132
- $order_by_clause = ' ORDER BY ' . esc_sql('created_at' ) . ' '. $order ;
133
- $order_by_clause = ! empty( $order_by ) ? $order_by_clause . ' , ' . esc_sql( $order_by ) . ' ' . $order : $order_by_clause ;
134
 
135
  $sql .= $order_by_clause;
136
  $sql .= " LIMIT $per_page";
@@ -177,21 +177,23 @@ class ES_Campaigns_Table extends WP_List_Table {
177
  case 'base_template_id':
178
  return $item[ $column_name ];
179
  case 'list_ids':
180
- if(!empty($item[$column_name])) {
181
- return ES_DB_Lists::get_list_id_name_map( $item[ $column_name ] );
182
- } else {
183
- return '-';
184
- }
185
 
186
  case 'status':
187
  $status = ( $item[ $column_name ] == 1 ) ? __( 'Active', 'email-subscribers' ) : __( 'Inactive', 'email-subscribers' );
 
188
  return $status;
189
  case 'type':
190
  $type = ( $item[ $column_name ] === 'newsletter' ) ? __( 'Broadcast', 'email-subscribers' ) : $item[ $column_name ];
191
  $type = ucwords( str_replace( '_', ' ', $type ) );
 
192
  return $type;
193
  default:
194
- return $item[$column_name]; //Show the whole array for troubleshooting purposes
195
  }
196
  }
197
 
@@ -218,24 +220,29 @@ class ES_Campaigns_Table extends WP_List_Table {
218
  */
219
  function column_base_template_id( $item ) {
220
 
221
- $type = $item['type'];
222
 
223
- if($type === 'post_notification') {
224
 
225
- $nonce = wp_create_nonce( 'es_post_notification' );
226
 
227
- $template = get_post( $item['base_template_id'] );
228
 
229
- $title = '<strong>' . $template->post_title . '</strong>';
230
- if ( ! empty( $item['type'] ) && $item['type'] == 'post_notification' ) {
231
- $actions ['edit'] = sprintf( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s">Edit</a>', esc_attr( 'es_notifications' ), 'edit', absint( $item['id'] ), $nonce );
232
- }
 
233
 
234
- $actions['delete'] = sprintf( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', esc_attr( 'es_campaigns' ), 'delete', absint( $item['id'] ), $nonce );
235
- $title = $title . $this->row_actions( $actions );
236
- } else {
237
- $title = $item['name'];
238
- }
 
 
 
 
239
 
240
  return $title;
241
  }
128
 
129
  // Prepare Order by clause
130
  $order_by_clause = '';
131
+ $order = ! empty( $order ) ? ' ' . esc_sql( $order ) : ' DESC';
132
+ $order_by_clause = ' ORDER BY ' . esc_sql( 'created_at' ) . ' ' . $order;
133
+ $order_by_clause = ! empty( $order_by ) ? $order_by_clause . ' , ' . esc_sql( $order_by ) . ' ' . $order : $order_by_clause;
134
 
135
  $sql .= $order_by_clause;
136
  $sql .= " LIMIT $per_page";
177
  case 'base_template_id':
178
  return $item[ $column_name ];
179
  case 'list_ids':
180
+ if ( ! empty( $item[ $column_name ] ) ) {
181
+ return ES_DB_Lists::get_list_id_name_map( $item[ $column_name ] );
182
+ } else {
183
+ return '-';
184
+ }
185
 
186
  case 'status':
187
  $status = ( $item[ $column_name ] == 1 ) ? __( 'Active', 'email-subscribers' ) : __( 'Inactive', 'email-subscribers' );
188
+
189
  return $status;
190
  case 'type':
191
  $type = ( $item[ $column_name ] === 'newsletter' ) ? __( 'Broadcast', 'email-subscribers' ) : $item[ $column_name ];
192
  $type = ucwords( str_replace( '_', ' ', $type ) );
193
+
194
  return $type;
195
  default:
196
+ return $item[ $column_name ]; //Show the whole array for troubleshooting purposes
197
  }
198
  }
199
 
220
  */
221
  function column_base_template_id( $item ) {
222
 
223
+ $type = $item['type'];
224
 
225
+ if ( $type === 'post_notification' ) {
226
 
227
+ $nonce = wp_create_nonce( 'es_post_notification' );
228
 
229
+ $template = get_post( $item['base_template_id'] );
230
 
231
+ if ( $template instanceof WP_Post ) {
232
+ $title = '<strong>' . $template->post_title . '</strong>';
233
+ } else {
234
+ $title = '';
235
+ }
236
 
237
+ if ( ! empty( $item['type'] ) && $item['type'] == 'post_notification' ) {
238
+ $actions ['edit'] = sprintf( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s">Edit</a>', esc_attr( 'es_notifications' ), 'edit', absint( $item['id'] ), $nonce );
239
+ }
240
+
241
+ $actions['delete'] = sprintf( '<a href="?page=%s&action=%s&list=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', esc_attr( 'es_campaigns' ), 'delete', absint( $item['id'] ), $nonce );
242
+ $title = $title . $this->row_actions( $actions );
243
+ } else {
244
+ $title = $item['name'];
245
+ }
246
 
247
  return $title;
248
  }
includes/admin/class-es-cron.php CHANGED
@@ -28,7 +28,7 @@ class ES_Cron {
28
  $time_diff = ( ! empty( $_GET['es_pro'] ) && ( $_GET['es_pro'] == 1 || $_GET['es_pro'] === true || $_GET['es_pro'] === 'true' ) ) ? 1 : floor( $time_diff / 3600 );
29
  if ( 'cron' === $es_request ) {
30
 
31
- if ( $time_diff >= 1 || $self == 1) {
32
  $guid = ( ! empty( $guid ) ) ? $guid : Email_Subscribers::get_request( 'guid' );
33
  if ( ! empty( $guid ) ) {
34
 
@@ -45,7 +45,7 @@ class ES_Cron {
45
  if ( $security1 == 34 && $security2 == 30 ) {
46
  if ( ! preg_match( '/[^a-z]/', $es_c_cronguid_noslash ) ) {
47
  $es_c_cronurl = get_option( 'ig_es_cronurl' );
48
- $es_c_croncount = get_option( 'ig_es_hourly_email_send_limit' );
49
 
50
  // Modify cron count?
51
  $es_c_croncount = apply_filters( 'es_email_sending_limit', $es_c_croncount );
@@ -65,16 +65,23 @@ class ES_Cron {
65
  */
66
 
67
  // Get GUID from sentdetails report which are in queue
68
- $notification = ES_DB_Mailing_Queue::get_notification_to_be_sent();
 
 
 
 
 
 
69
  $notification_guid = isset( $notification['hash'] ) ? $notification['hash'] : null;
70
 
71
  if ( ! is_null( $notification_guid ) ) {
72
  ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
73
 
74
  // Get subscribers from the deliverreport table based on fetched guid
75
- $emails = ES_DB_Sending_Queue::get_emails_to_be_sent_by_hash( $notification_guid, $es_c_croncount );
 
76
  // Found Subscribers to send notification?
77
- if ( count( $emails ) > 0 ) {
78
  $ids = array();
79
  foreach ( $emails as $email ) {
80
  $ids[] = $email['id'];
@@ -87,13 +94,13 @@ class ES_Cron {
87
  ES_DB_Sending_Queue::update_sent_status( $ids, 'Sent' );
88
  }
89
 
90
- $remainig_emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent_by_hash( $notification_guid );
 
91
 
92
  // No emails left for the $notification_guid??? Send admin notification for the
93
  // Completion of a job
94
- if ( $remainig_emails_to_be_sent == 0 ) {
95
  ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sent' );
96
-
97
  // Stop sending CRON emails for now.
98
  // We will check whether to enable it or not in future
99
  /*
@@ -112,6 +119,9 @@ class ES_Cron {
112
 
113
  }
114
 
 
 
 
115
  $response['es_remaining_email_count'] = $remainig_emails_to_be_sent;
116
  $response['message'] = 'EMAILS_SENT';
117
  $response['status'] = 'SUCCESS';
@@ -121,6 +131,7 @@ class ES_Cron {
121
  $response['es_remaining_email_count'] = 0;
122
  $response['message'] = 'EMAILS_NOT_FOUND';
123
  $response['status'] = 'SUCCESS';
 
124
  }
125
  } else {
126
  $response['es_remaining_email_count'] = 0;
@@ -128,22 +139,27 @@ class ES_Cron {
128
  $response['status'] = 'SUCCESS';
129
  }
130
  } else {
 
131
  $response['status'] = 'ERROR';
132
  $response['message'] = 'CRON_GUID_DOES_NOT_MATCH';
133
  }
134
  } else {
 
135
  $response['status'] = 'ERROR';
136
  $response['message'] = 'CRON_GUID_PATTERN_DOES_NOT_MATCH';
137
  }
138
  } else {
 
139
  $response['status'] = 'ERROR';
140
  $response['message'] = 'INVALID_CRON_GUID';
141
  }
142
  } else {
 
143
  $response['status'] = 'ERROR';
144
  $response['message'] = 'DO_NOT_PROCESS_REQUEST';
145
  }
146
  } else {
 
147
  $response['status'] = 'ERROR';
148
  $response['message'] = 'EMPTY_CRON_GUID';
149
  }
@@ -154,9 +170,22 @@ class ES_Cron {
154
  $response['status'] = 'ERROR';
155
  }
156
 
157
- if($self) {
158
- $message = __('Notification(s) have been sent successfully!', 'email-subscribers');
159
- include ES_PLUGIN_DIR . '/public/partials/subscription-successfull.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  die();
161
  } else {
162
  echo json_encode( $response );
@@ -169,15 +198,41 @@ class ES_Cron {
169
 
170
  public function set_cron() {
171
  $args['es'] = 'cron';
172
- $es_c_cronurl = get_option( 'ig_es_cronurl' );
173
- parse_str( $es_c_cronurl, $output );
174
- $args['guid'] = $output['guid'];
175
- if ( ! wp_next_scheduled( 'es_cron_hourly', array( $args['es'], $args['guid'] ) ) ) {
176
- wp_clear_scheduled_hook( 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
177
- wp_schedule_event( time(), 'hourly', 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
 
 
 
178
  }
179
  }
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  }
182
 
183
  add_action( 'init', function () {
28
  $time_diff = ( ! empty( $_GET['es_pro'] ) && ( $_GET['es_pro'] == 1 || $_GET['es_pro'] === true || $_GET['es_pro'] === 'true' ) ) ? 1 : floor( $time_diff / 3600 );
29
  if ( 'cron' === $es_request ) {
30
 
31
+ if ( $time_diff >= 1 || $self == 1 ) {
32
  $guid = ( ! empty( $guid ) ) ? $guid : Email_Subscribers::get_request( 'guid' );
33
  if ( ! empty( $guid ) ) {
34
 
45
  if ( $security1 == 34 && $security2 == 30 ) {
46
  if ( ! preg_match( '/[^a-z]/', $es_c_cronguid_noslash ) ) {
47
  $es_c_cronurl = get_option( 'ig_es_cronurl' );
48
+ $es_c_croncount = get_option( 'ig_es_hourly_email_send_limit', 50 );
49
 
50
  // Modify cron count?
51
  $es_c_croncount = apply_filters( 'es_email_sending_limit', $es_c_croncount );
65
  */
66
 
67
  // Get GUID from sentdetails report which are in queue
68
+ $campign_hash = Email_Subscribers::get_request( 'campaign_hash' );
69
+
70
+ if ( $self ) {
71
+ $es_c_croncount = ceil( $es_c_croncount / 4 ); // Send 1/4 of total limit
72
+ }
73
+
74
+ $notification = ES_DB_Mailing_Queue::get_notification_to_be_sent( $campign_hash );
75
  $notification_guid = isset( $notification['hash'] ) ? $notification['hash'] : null;
76
 
77
  if ( ! is_null( $notification_guid ) ) {
78
  ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
79
 
80
  // Get subscribers from the deliverreport table based on fetched guid
81
+ $emails = ES_DB_Sending_Queue::get_emails_to_be_sent_by_hash( $notification_guid, $es_c_croncount );
82
+ $total_emails = count( $emails );
83
  // Found Subscribers to send notification?
84
+ if ( $total_emails > 0 ) {
85
  $ids = array();
86
  foreach ( $emails as $email ) {
87
  $ids[] = $email['id'];
94
  ES_DB_Sending_Queue::update_sent_status( $ids, 'Sent' );
95
  }
96
 
97
+
98
+ $total_remaining_emails = ES_DB_Sending_Queue::get_total_emails_to_be_sent_by_hash( $notification_guid );
99
 
100
  // No emails left for the $notification_guid??? Send admin notification for the
101
  // Completion of a job
102
+ if ( $total_remaining_emails == 0 ) {
103
  ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sent' );
 
104
  // Stop sending CRON emails for now.
105
  // We will check whether to enable it or not in future
106
  /*
119
 
120
  }
121
 
122
+ $remainig_emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
123
+
124
+ $response['total_emails_sent'] = $total_emails;
125
  $response['es_remaining_email_count'] = $remainig_emails_to_be_sent;
126
  $response['message'] = 'EMAILS_SENT';
127
  $response['status'] = 'SUCCESS';
131
  $response['es_remaining_email_count'] = 0;
132
  $response['message'] = 'EMAILS_NOT_FOUND';
133
  $response['status'] = 'SUCCESS';
134
+ ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sent' );
135
  }
136
  } else {
137
  $response['es_remaining_email_count'] = 0;
139
  $response['status'] = 'SUCCESS';
140
  }
141
  } else {
142
+ $self = false;
143
  $response['status'] = 'ERROR';
144
  $response['message'] = 'CRON_GUID_DOES_NOT_MATCH';
145
  }
146
  } else {
147
+ $self = false;
148
  $response['status'] = 'ERROR';
149
  $response['message'] = 'CRON_GUID_PATTERN_DOES_NOT_MATCH';
150
  }
151
  } else {
152
+ $self = false;
153
  $response['status'] = 'ERROR';
154
  $response['message'] = 'INVALID_CRON_GUID';
155
  }
156
  } else {
157
+ $self = false;
158
  $response['status'] = 'ERROR';
159
  $response['message'] = 'DO_NOT_PROCESS_REQUEST';
160
  }
161
  } else {
162
+ $self = false;
163
  $response['status'] = 'ERROR';
164
  $response['message'] = 'EMPTY_CRON_GUID';
165
  }
170
  $response['status'] = 'ERROR';
171
  }
172
 
173
+ if ( $self ) {
174
+
175
+ $total_emails_sent = ! empty( $response['total_emails_sent'] ) ? $response['total_emails_sent'] : 0;
176
+ $status = ! empty( $response['status'] ) ? $response['status'] : 'ERROR';
177
+ $total_emails_to_be_sent = ! empty( $response['es_remaining_email_count'] ) ? $response['es_remaining_email_count'] : 0;
178
+ $cron_url = ES_Common::get_cron_url( true );
179
+
180
+ $send_now_text = __(sprintf("<a href='%s'>Send Now</a>", $cron_url), 'email-subscribers');
181
+
182
+ if ( 'SUCCESS' === $status ) {
183
+ $message = __( sprintf( 'Email(s) have been sent successfully!' ), 'email-subscribers' );
184
+ } else {
185
+ $message = $this->get_status_messages( $response['message'] );
186
+ }
187
+
188
+ include ES_PLUGIN_DIR . '/public/partials/cron-message.php';
189
  die();
190
  } else {
191
  echo json_encode( $response );
198
 
199
  public function set_cron() {
200
  $args['es'] = 'cron';
201
+ $es_c_cronurl = get_option( 'ig_es_cronurl', '' );
202
+
203
+ if(!empty($es_c_cronurl)) {
204
+ parse_str( $es_c_cronurl, $output );
205
+ $args['guid'] = $output['guid'];
206
+ if ( ! wp_next_scheduled( 'es_cron_hourly', array( $args['es'], $args['guid'] ) ) ) {
207
+ wp_clear_scheduled_hook( 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
208
+ wp_schedule_event( time(), 'hourly', 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
209
+ }
210
  }
211
  }
212
 
213
+ public function get_status_messages( $message = '' ) {
214
+
215
+ if ( empty( $message ) ) {
216
+ return '';
217
+ }
218
+
219
+ $status_messages = array(
220
+ 'EMAILS_SENT' => __( 'Emails sent succssfully!', 'email-susbscribers' ),
221
+ 'EMAILS_NOT_FOUND' => __( 'Emails not found.', 'email-susbscribers' ),
222
+ 'NOTIFICATION_NOT_FOUND' => __( 'No notifications found to send.', 'email-susbscribers' ),
223
+ 'CRON_GUID_DOES_NOT_MATCH' => __( 'Invalid GUID.', 'email-susbscribers' ),
224
+ 'CRON_GUID_PATTERN_DOES_NOT_MATCH' => __( 'Invalid GUID.', 'email-susbscribers' ),
225
+ 'INVALID_CRON_GUID' => __( 'Invalid GUID.', 'email-susbscribers' ),
226
+ 'DO_NOT_PROCESS_REQUEST' => __( 'Not allowed to process request.', 'email-susbscribers' ),
227
+ 'EMPTY_CRON_GUID' => __( 'GUID is empty.', 'email-susbscribers' ),
228
+ 'PLEAE_TRY_AGAIN_LATER' => __( 'Please try after sometime.', 'email-susbscribers' ),
229
+ );
230
+
231
+ $message_text = ! empty( $status_messages[ $message ] ) ? $status_messages[ $message ] : '';
232
+
233
+ return $message_text;
234
+ }
235
+
236
  }
237
 
238
  add_action( 'init', function () {
includes/admin/class-es-export-subscribers.php CHANGED
@@ -245,9 +245,9 @@ class Export_Subscribers {
245
 
246
  public function show_message( $message = '', $status = 'success' ) {
247
 
248
- $class = 'notice notice-success';
249
  if ( 'error' === $status ) {
250
- $class = 'notice notice-error';
251
  }
252
  echo "<div class='{$class}'><p>{$message}</p></div>";
253
  }
245
 
246
  public function show_message( $message = '', $status = 'success' ) {
247
 
248
+ $class = 'notice notice-success is-dismissible';
249
  if ( 'error' === $status ) {
250
+ $class = 'notice notice-error is-dismissible';
251
  }
252
  echo "<div class='{$class}'><p>{$message}</p></div>";
253
  }
includes/admin/class-es-forms-table.php CHANGED
@@ -154,6 +154,7 @@ class ES_Forms_Table extends WP_List_Table {
154
 
155
  $submitted = Email_Subscribers::get_request( 'submitted' );
156
 
 
157
  if ( 'submitted' === $submitted ) {
158
 
159
  $nonce = esc_attr( Email_Subscribers::get_request( '_wpnonce' ) );
@@ -161,6 +162,7 @@ class ES_Forms_Table extends WP_List_Table {
161
  $lists = Email_Subscribers::get_request( 'lists' );
162
  $form_data['lists'] = $lists;
163
 
 
164
  $validate_data = array(
165
  'nonce' => $nonce,
166
  'name' => $form_data['name'],
@@ -243,7 +245,7 @@ class ES_Forms_Table extends WP_List_Table {
243
  <label for="tag-link"><?php echo __( 'Form Name', 'email-subscribers' ); ?></label>
244
  </th>
245
  <td>
246
- <input type="text" name="form_data[name]" id="ig_es_title" value="<?php echo $form_data['name']; ?>" size="30" maxlength="100"/>
247
  </td>
248
  </tr>
249
  <tr>
@@ -251,7 +253,7 @@ class ES_Forms_Table extends WP_List_Table {
251
  <label for="tag-link"><?php echo __( 'Description', 'email-subscribers' ); ?></label>
252
  </th>
253
  <td>
254
- <input type="text" name="form_data[desc]" id="ig_es_title" value="<?php echo $form_data['desc']; ?>" size="30" maxlength="100"/>
255
  </td>
256
  </tr>
257
  <tr>
@@ -452,7 +454,6 @@ class ES_Forms_Table extends WP_List_Table {
452
  $body_data = maybe_unserialize( $data['body'] );
453
  $settings_data = maybe_unserialize( $data['settings'] );
454
 
455
-
456
  $desc = ! empty( $settings_data['desc'] ) ? $settings_data['desc'] : '';
457
 
458
  $form_data = array( 'form_id' => $id, 'name' => $name, 'af_id' => $af_id, 'desc' => $desc );
@@ -484,7 +485,7 @@ class ES_Forms_Table extends WP_List_Table {
484
 
485
  $order_by = Email_Subscribers::get_request( 'orderby' );
486
  $order = Email_Subscribers::get_request( 'order' );
487
- $search = Email_Subscribers::get_request( 's' );
488
 
489
  if ( $do_count_only ) {
490
  $sql = "SELECT count(*) as total FROM " . IG_FORMS_TABLE;
@@ -612,7 +613,7 @@ class ES_Forms_Table extends WP_List_Table {
612
 
613
  $list_nonce = wp_create_nonce( 'es_form' );
614
 
615
- $title = '<strong>' . $item['name'] . '</strong>';
616
  $actions = array(
617
  'edit' => sprintf( '<a href="?page=%s&action=%s&form=%s&_wpnonce=%s">Edit</a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'edit', absint( $item['id'] ), $list_nonce ),
618
  'delete' => sprintf( '<a href="?page=%s&action=%s&form=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'delete', absint( $item['id'] ), $list_nonce )
@@ -685,7 +686,7 @@ class ES_Forms_Table extends WP_List_Table {
685
  $this->process_bulk_action();
686
  $this->search_box( Email_Subscribers::get_request( 's' ), 'form-search-input' );
687
 
688
- $per_page = $this->get_items_per_page( 'forms_per_page', 5 );
689
  $current_page = $this->get_pagenum();
690
  $total_items = $this->get_lists( 0, 0, true );
691
 
@@ -722,10 +723,11 @@ class ES_Forms_Table extends WP_List_Table {
722
  // If the delete bulk action is triggered
723
  if ( ( 'bulk_delete' === $action ) || ( 'bulk_delete' === $action2 ) ) {
724
 
725
- $forms = esc_sql( Email_Subscribers::get_request( 'forms' ) );
726
 
727
  if ( ! empty( $forms ) > 0 ) {
728
  $this->delete_list( $forms );
 
729
  $message = __( 'Form(s) have been deleted successfully!', 'email-subscribers' );
730
  $this->show_message( $message, 'success' );
731
  } else {
@@ -739,9 +741,9 @@ class ES_Forms_Table extends WP_List_Table {
739
 
740
  public function show_message( $message = '', $status = 'success' ) {
741
 
742
- $class = 'notice notice-success';
743
  if ( 'error' === $status ) {
744
- $class = 'notice notice-error';
745
  }
746
  echo "<div class='{$class}'><p>{$message}</p></div>";
747
  }
154
 
155
  $submitted = Email_Subscribers::get_request( 'submitted' );
156
 
157
+
158
  if ( 'submitted' === $submitted ) {
159
 
160
  $nonce = esc_attr( Email_Subscribers::get_request( '_wpnonce' ) );
162
  $lists = Email_Subscribers::get_request( 'lists' );
163
  $form_data['lists'] = $lists;
164
 
165
+
166
  $validate_data = array(
167
  'nonce' => $nonce,
168
  'name' => $form_data['name'],
245
  <label for="tag-link"><?php echo __( 'Form Name', 'email-subscribers' ); ?></label>
246
  </th>
247
  <td>
248
+ <input type="text" name="form_data[name]" id="ig_es_title" value="<?php echo stripslashes( $form_data['name'] ); ?>" size="30" maxlength="100"/>
249
  </td>
250
  </tr>
251
  <tr>
253
  <label for="tag-link"><?php echo __( 'Description', 'email-subscribers' ); ?></label>
254
  </th>
255
  <td>
256
+ <input type="text" name="form_data[desc]" id="ig_es_title" value="<?php echo stripslashes( $form_data['desc'] ); ?>" size="30" maxlength="100"/>
257
  </td>
258
  </tr>
259
  <tr>
454
  $body_data = maybe_unserialize( $data['body'] );
455
  $settings_data = maybe_unserialize( $data['settings'] );
456
 
 
457
  $desc = ! empty( $settings_data['desc'] ) ? $settings_data['desc'] : '';
458
 
459
  $form_data = array( 'form_id' => $id, 'name' => $name, 'af_id' => $af_id, 'desc' => $desc );
485
 
486
  $order_by = Email_Subscribers::get_request( 'orderby' );
487
  $order = Email_Subscribers::get_request( 'order' );
488
+ $search = stripslashes( Email_Subscribers::get_request( 's' ) );
489
 
490
  if ( $do_count_only ) {
491
  $sql = "SELECT count(*) as total FROM " . IG_FORMS_TABLE;
613
 
614
  $list_nonce = wp_create_nonce( 'es_form' );
615
 
616
+ $title = '<strong>' . stripslashes( $item['name'] ) . '</strong>';
617
  $actions = array(
618
  'edit' => sprintf( '<a href="?page=%s&action=%s&form=%s&_wpnonce=%s">Edit</a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'edit', absint( $item['id'] ), $list_nonce ),
619
  'delete' => sprintf( '<a href="?page=%s&action=%s&form=%s&_wpnonce=%s" onclick="return checkDelete()">Delete</a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'delete', absint( $item['id'] ), $list_nonce )
686
  $this->process_bulk_action();
687
  $this->search_box( Email_Subscribers::get_request( 's' ), 'form-search-input' );
688
 
689
+ $per_page = $this->get_items_per_page( 'forms_per_page', 25 );
690
  $current_page = $this->get_pagenum();
691
  $total_items = $this->get_lists( 0, 0, true );
692
 
723
  // If the delete bulk action is triggered
724
  if ( ( 'bulk_delete' === $action ) || ( 'bulk_delete' === $action2 ) ) {
725
 
726
+ $forms = Email_Subscribers::get_request( 'forms' );
727
 
728
  if ( ! empty( $forms ) > 0 ) {
729
  $this->delete_list( $forms );
730
+
731
  $message = __( 'Form(s) have been deleted successfully!', 'email-subscribers' );
732
  $this->show_message( $message, 'success' );
733
  } else {
741
 
742
  public function show_message( $message = '', $status = 'success' ) {
743
 
744
+ $class = 'notice notice-success is-dismissible';
745
  if ( 'error' === $status ) {
746
+ $class = 'notice notice-error is-dismissible';
747
  }
748
  echo "<div class='{$class}'><p>{$message}</p></div>";
749
  }
includes/admin/class-es-handle-post-notification.php CHANGED
@@ -7,7 +7,6 @@ class ES_Handle_Post_Notification {
7
  }
8
 
9
 
10
-
11
  public function es_post_publish_callback( $post_status, $original_post_status, $post_id ) {
12
 
13
  if ( ( $post_status == 'publish' ) && ( $original_post_status != 'publish' ) ) {
@@ -15,17 +14,14 @@ class ES_Handle_Post_Notification {
15
  add entry to DB
16
 
17
  */
18
- $notification = array();
19
-
20
  if ( is_object( $post_id ) ) {
21
  $post_id = $post_id->ID;
22
  }
23
 
24
  $notifications = ES_DB_Notifications::get_notifications_by_post_id( $post_id );
25
-
26
  if ( count( $notifications ) > 0 ) {
27
  foreach ( $notifications as $notification ) {
28
- $template_id = $notification["base_template_id"];
29
  $template = get_post( $template_id ); // to confirm if template exists in ES->Templates
30
  if ( is_object( $template ) ) {
31
  $list_id = $notification['list_ids'];
@@ -40,7 +36,7 @@ class ES_Handle_Post_Notification {
40
  * Add entry into deliverreport table
41
  */
42
  $post = get_post( $post_id );
43
-
44
  if ( is_object( $post ) ) {
45
  // Prepare subject
46
  $post_subject = self::prepare_subject( $post, $template );
@@ -66,13 +62,12 @@ class ES_Handle_Post_Notification {
66
 
67
  // Add entry into mailing queue table
68
  $insert = ES_DB_Mailing_Queue::add_notification( $data );
69
-
70
  if ( $insert ) {
71
  // Add entry into sending queue table
72
- $delivery_data = array();
73
- $delivery_data['hash'] = $guid;
74
- $delivery_data['subscribers'] = $subscribers;
75
- $delivery_data['campaign_id'] = $notification['id'];
76
  $delivery_data['mailing_queue_id'] = $insert;
77
  ES_DB_Sending_Queue::do_batch_insert( $delivery_data );
78
 
7
  }
8
 
9
 
 
10
  public function es_post_publish_callback( $post_status, $original_post_status, $post_id ) {
11
 
12
  if ( ( $post_status == 'publish' ) && ( $original_post_status != 'publish' ) ) {
14
  add entry to DB
15
 
16
  */
 
 
17
  if ( is_object( $post_id ) ) {
18
  $post_id = $post_id->ID;
19
  }
20
 
21
  $notifications = ES_DB_Notifications::get_notifications_by_post_id( $post_id );
 
22
  if ( count( $notifications ) > 0 ) {
23
  foreach ( $notifications as $notification ) {
24
+ $template_id = $notification['base_template_id'];
25
  $template = get_post( $template_id ); // to confirm if template exists in ES->Templates
26
  if ( is_object( $template ) ) {
27
  $list_id = $notification['list_ids'];
36
  * Add entry into deliverreport table
37
  */
38
  $post = get_post( $post_id );
39
+
40
  if ( is_object( $post ) ) {
41
  // Prepare subject
42
  $post_subject = self::prepare_subject( $post, $template );
62
 
63
  // Add entry into mailing queue table
64
  $insert = ES_DB_Mailing_Queue::add_notification( $data );
 
65
  if ( $insert ) {
66
  // Add entry into sending queue table
67
+ $delivery_data = array();
68
+ $delivery_data['hash'] = $guid;
69
+ $delivery_data['subscribers'] = $subscribers;
70
+ $delivery_data['campaign_id'] = $notification['id'];
71
  $delivery_data['mailing_queue_id'] = $insert;
72
  ES_DB_Sending_Queue::do_batch_insert( $delivery_data );
73
 
includes/admin/class-es-handle-subscription.php CHANGED
@@ -57,7 +57,7 @@ class ES_Handle_Subscription {
57
  exit;
58
  }
59
 
60
- $form_data = $_POST;
61
  $validate_response = $this->validate_data( $form_data );
62
  if ( $validate_response['status'] === 'ERROR' ) {
63
 
@@ -72,14 +72,19 @@ class ES_Handle_Subscription {
72
  exit;
73
  }
74
 
75
- $name = ! empty( $form_data['esfpx_name'] ) ? trim( $form_data['esfpx_name'] ) : $form_data['esfpx_email'];
76
-
77
- // Get First Name and Last Name from Name
78
- $name_parts = ES_Common::prepare_first_name_last_name( $name );
79
- $first_name = $name_parts['first_name'];
80
- $last_name = $name_parts['last_name'];
 
 
 
 
 
81
 
82
- $this->name = ! empty( $form_data['esfpx_name'] ) ? trim( $form_data['esfpx_name'] ) : $form_data['esfpx_email'];
83
  $this->first_name = $first_name;
84
  $this->last_name = $last_name;
85
  $this->email = isset( $form_data['esfpx_email'] ) ? trim( $form_data['esfpx_email'] ) : '';
57
  exit;
58
  }
59
 
60
+ $form_data = wp_unslash( $_POST );
61
  $validate_response = $this->validate_data( $form_data );
62
  if ( $validate_response['status'] === 'ERROR' ) {
63
 
72
  exit;
73
  }
74
 
75
+ $first_name = $last_name = '';
76
+ if ( ! empty( $form_data['esfpx_name'] ) ) {
77
+ $name = trim( $form_data['esfpx_name'] );
78
+ // Get First Name and Last Name from Name
79
+ $name_parts = ES_Common::prepare_first_name_last_name( $name );
80
+ $first_name = $name_parts['first_name'];
81
+ $last_name = $name_parts['last_name'];
82
+ } else {
83
+ $email = trim( $form_data['esfpx_email'] );
84
+ $first_name = ES_Common::get_name_from_email( $email );
85
+ }
86
 
87
+ $this->name = $first_name;
88
  $this->first_name = $first_name;
89
  $this->last_name = $last_name;
90
  $this->email = isset( $form_data['esfpx_email'] ) ? trim( $form_data['esfpx_email'] ) : '';
includes/admin/class-es-handle-sync-wp-user.php CHANGED
@@ -34,6 +34,7 @@ class ES_Handle_Sync_Wp_User {
34
  'status' => 'verified',
35
  'hash' => ES_Common::generate_guid(),
36
  'created_at' => ig_get_current_date_time(),
 
37
  );
38
  $check = ES_DB_Contacts::is_subscriber_exist_in_list( $email, $list_id );
39
  if ( empty( $check['contact_id'] ) ) {
@@ -133,9 +134,9 @@ class ES_Handle_Sync_Wp_User {
133
 
134
  public function show_message( $message = '', $status = 'success' ) {
135
 
136
- $class = 'notice notice-success';
137
  if ( 'error' === $status ) {
138
- $class = 'notice notice-error';
139
  }
140
  echo "<div class='{$class}'><p>{$message}</p></div>";
141
  }
34
  'status' => 'verified',
35
  'hash' => ES_Common::generate_guid(),
36
  'created_at' => ig_get_current_date_time(),
37
+ 'wp_user_id' => $user_id
38
  );
39
  $check = ES_DB_Contacts::is_subscriber_exist_in_list( $email, $list_id );
40
  if ( empty( $check['contact_id'] ) ) {
134
 
135
  public function show_message( $message = '', $status = 'success' ) {
136
 
137
+ $class = 'notice notice-success is-dismissible';
138
  if ( 'error' === $status ) {
139
+ $class = 'notice notice-error is-dismissible';
140
  }
141
  echo "<div class='{$class}'><p>{$message}</p></div>";
142
  }
includes/admin/class-es-import-subscribers.php CHANGED
@@ -209,7 +209,7 @@ class ES_Import_Subscribers {
209
 
210
  $class = 'notice notice-success is-dismissible';
211
  if ( 'error' === $status ) {
212
- $class = 'notice notice-error';
213
  }
214
  echo "<div class='{$class}'><p>{$message}</p></div>";
215
  }
209
 
210
  $class = 'notice notice-success is-dismissible';
211
  if ( 'error' === $status ) {
212
+ $class = 'notice notice-error is-dismissible';
213
  }
214
  echo "<div class='{$class}'><p>{$message}</p></div>";
215
  }
includes/admin/class-es-lists-table.php CHANGED
@@ -125,7 +125,7 @@ class ES_Lists_Table extends WP_List_Table {
125
  );
126
 
127
  $this->save_list( null, $data );
128
- $message = __( 'List have been added successfully', 'email-subscribers' );
129
  $this->show_message( $message, 'success' );
130
  }
131
 
@@ -166,7 +166,7 @@ class ES_Lists_Table extends WP_List_Table {
166
  );
167
 
168
  $this->save_list( $id, $data );
169
- $message = __( 'List have been updated successfully', 'email-subscribers' );
170
  $this->show_message( $message, 'success' );
171
  } else {
172
  $id = $list[0]->id;
@@ -503,7 +503,7 @@ class ES_Lists_Table extends WP_List_Table {
503
  $this->show_message( $message, 'error' );
504
  } else {
505
  $this->edit_list( absint( Email_Subscribers::get_request( 'list' ) ) );
506
- $message = __( 'List have been edit successfully', 'email-subscribers' );
507
  $this->show_message( $message, 'success' );
508
  }
509
 
@@ -520,7 +520,7 @@ class ES_Lists_Table extends WP_List_Table {
520
  } else {
521
  if ( Email_Subscribers::get_request( 'list' ) != 1 ) {
522
  $this->delete_list( array( absint( Email_Subscribers::get_request( 'list' ) ) ) );
523
- $message = __( 'List have been deleted successfully', 'email-subscribers' );
524
  $this->show_message( $message, 'success' );
525
  }
526
  }
@@ -548,9 +548,9 @@ class ES_Lists_Table extends WP_List_Table {
548
 
549
  public function show_message( $message = '', $status = 'success' ) {
550
 
551
- $class = 'notice notice-success';
552
  if ( 'error' === $status ) {
553
- $class = 'notice notice-error';
554
  }
555
  echo "<div class='{$class}'><p>{$message}</p></div>";
556
  }
125
  );
126
 
127
  $this->save_list( null, $data );
128
+ $message = __( 'List has been added successfully!', 'email-subscribers' );
129
  $this->show_message( $message, 'success' );
130
  }
131
 
166
  );
167
 
168
  $this->save_list( $id, $data );
169
+ $message = __( 'List has been updated successfully!', 'email-subscribers' );
170
  $this->show_message( $message, 'success' );
171
  } else {
172
  $id = $list[0]->id;
503
  $this->show_message( $message, 'error' );
504
  } else {
505
  $this->edit_list( absint( Email_Subscribers::get_request( 'list' ) ) );
506
+ $message = __( 'List has been updated successfully!', 'email-subscribers' );
507
  $this->show_message( $message, 'success' );
508
  }
509
 
520
  } else {
521
  if ( Email_Subscribers::get_request( 'list' ) != 1 ) {
522
  $this->delete_list( array( absint( Email_Subscribers::get_request( 'list' ) ) ) );
523
+ $message = __( 'List has been deleted successfully!', 'email-subscribers' );
524
  $this->show_message( $message, 'success' );
525
  }
526
  }
548
 
549
  public function show_message( $message = '', $status = 'success' ) {
550
 
551
+ $class = 'notice notice-success is-dismissible';
552
  if ( 'error' === $status ) {
553
+ $class = 'notice notice-error is-dismissible';
554
  }
555
  echo "<div class='{$class}'><p>{$message}</p></div>";
556
  }
includes/admin/class-es-newsletters.php CHANGED
@@ -58,8 +58,8 @@ class ES_Newsletters {
58
 
59
  self::es_send_email_callback( $data );
60
 
61
- $cron_url = ES_Common::get_cron_url(true);
62
- $message = __( sprintf( 'A new broadcast has been created successfully! Contacts from selected list will be notified within an hour. Want to notify now? <a href="%s" target="_blank">Click here</a>', $cron_url ), 'email-subscribers' );
63
 
64
  $this->show_message( $message, 'success' );
65
  }
@@ -244,9 +244,9 @@ class ES_Newsletters {
244
 
245
  public function show_message( $message = '', $status = 'success' ) {
246
 
247
- $class = 'notice notice-success';
248
  if ( 'error' === $status ) {
249
- $class = 'notice notice-error';
250
  }
251
  echo "<div class='{$class}'><p>{$message}</p></div>";
252
  }
58
 
59
  self::es_send_email_callback( $data );
60
 
61
+ $reports_url = admin_url('admin.php?page=es_reports');
62
+ $message = __( sprintf( 'A new broadcast has been created successfully! Contacts from selected list will be notified within an hour. Want to notify now? <a href="%s" target="_blank">Click here</a>', $reports_url ), 'email-subscribers' );
63
 
64
  $this->show_message( $message, 'success' );
65
  }
244
 
245
  public function show_message( $message = '', $status = 'success' ) {
246
 
247
+ $class = 'notice notice-success is-dismissible';
248
  if ( 'error' === $status ) {
249
+ $class = 'notice notice-error is-dismissible';
250
  }
251
  echo "<div class='{$class}'><p>{$message}</p></div>";
252
  }
includes/admin/class-es-post-notifications.php CHANGED
@@ -172,15 +172,22 @@ class ES_Post_Notifications_Table {
172
  $categories = Email_Subscribers::get_request( 'es_note_cat' );
173
 
174
  $data = array(
175
- 'categories' => stripslashes(ES_Common::convert_categories_array_to_string( $categories )),
176
  'list_ids' => Email_Subscribers::get_request( 'list_id' ),
177
  'base_template_id' => Email_Subscribers::get_request( 'template_id' ),
178
  'status' => Email_Subscribers::get_request( 'status' )
179
  );
180
- $title = get_the_title( $data['base_template_id'] );
 
 
 
 
 
181
  $data['name'] = $title;
182
 
183
  $this->save_list( $data, $id );
 
 
184
  $message = __( 'Post notification has been updated successfully!', 'email-subscribers' );
185
  $this->show_message( $message, 'success' );
186
  } else {
@@ -347,9 +354,9 @@ class ES_Post_Notifications_Table {
347
 
348
  public function show_message( $message = '', $status = 'success' ) {
349
 
350
- $class = 'notice notice-success';
351
  if ( 'error' === $status ) {
352
- $class = 'notice notice-error';
353
  }
354
  echo "<div class='{$class}'><p>{$message}</p></div>";
355
  }
172
  $categories = Email_Subscribers::get_request( 'es_note_cat' );
173
 
174
  $data = array(
175
+ 'categories' => ES_Common::convert_categories_array_to_string( $categories ),
176
  'list_ids' => Email_Subscribers::get_request( 'list_id' ),
177
  'base_template_id' => Email_Subscribers::get_request( 'template_id' ),
178
  'status' => Email_Subscribers::get_request( 'status' )
179
  );
180
+
181
+ $title = '';
182
+ if(!empty($data['base_template_id'])) {
183
+ $title = get_the_title( $data['base_template_id'] );
184
+ }
185
+
186
  $data['name'] = $title;
187
 
188
  $this->save_list( $data, $id );
189
+
190
+ $data['categories'] = ES_Common::convert_categories_string_to_array($data['categories']);
191
  $message = __( 'Post notification has been updated successfully!', 'email-subscribers' );
192
  $this->show_message( $message, 'success' );
193
  } else {
354
 
355
  public function show_message( $message = '', $status = 'success' ) {
356
 
357
+ $class = 'notice notice-success is-dismissible';
358
  if ( 'error' === $status ) {
359
+ $class = 'notice notice-error is-dismissible';
360
  }
361
  echo "<div class='{$class}'><p>{$message}</p></div>";
362
  }
includes/admin/class-es-reports-table.php CHANGED
@@ -41,7 +41,16 @@ class ES_Reports_Table extends WP_List_Table {
41
 
42
  <div class="wrap">
43
  <h1 class="wp-heading-inline"><?php _e( 'Reports', 'email-subscribers' ); ?></h1>
44
- <?php Email_Subscribers_Admin::es_feedback(); ?>
 
 
 
 
 
 
 
 
 
45
  <div id="poststuff">
46
  <div id="post-body" class="metabox-holder column-1">
47
  <div id="post-body-content">
@@ -175,13 +184,6 @@ class ES_Reports_Table extends WP_List_Table {
175
  $type = ucwords( str_replace( '_', ' ', $type ) );
176
 
177
  return $type;
178
- case 'status':
179
- if ( $item[ $column_name ] == 'Sent' ) {
180
- return __( 'Completed', 'email-subscribers' );
181
- } else {
182
- return $item[ $column_name ];
183
- }
184
- break;
185
  case 'subject':
186
  // case 'type':
187
  // return ucwords($item[ $column_name ]);
@@ -192,6 +194,18 @@ class ES_Reports_Table extends WP_List_Table {
192
  }
193
  }
194
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  /**
196
  * Render the bulk edit checkbox
197
  *
@@ -242,12 +256,43 @@ class ES_Reports_Table extends WP_List_Table {
242
  'status' => __( 'Status', 'email-subscribers' ),
243
  'start_at' => __( 'Start Date', 'email-subscribers' ),
244
  'finish_at' => __( 'End Date', 'email-subscribers' ),
245
- 'count' => __( 'Total Contacts', 'email-subscribers' )
246
  );
247
 
248
  return $columns;
249
  }
250
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
 
252
  /**
253
  * Columns to make sortable.
@@ -325,6 +370,7 @@ class ES_Reports_Table extends WP_List_Table {
325
  $this->show_message( $message, 'error' );
326
  } else {
327
  ES_DB_Mailing_Queue::delete_notifications( array( absint( Email_Subscribers::get_request( 'list' ) ) ) );
 
328
  $message = __( 'Notification has been deleted successfully!', 'email-subscribers' );
329
  $this->show_message( $message, 'success' );
330
  }
@@ -351,6 +397,7 @@ class ES_Reports_Table extends WP_List_Table {
351
 
352
  if ( count( $notification_ids ) > 0 ) {
353
  ES_DB_Mailing_Queue::delete_notifications( $notification_ids );
 
354
  $message = __( 'Notifications have been deleted successfully', 'email-subscribers' );
355
  $this->show_message( $message, 'success' );
356
  }
41
 
42
  <div class="wrap">
43
  <h1 class="wp-heading-inline"><?php _e( 'Reports', 'email-subscribers' ); ?></h1>
44
+ <?php $emails_to_be_sent = ES_DB_Sending_Queue::get_total_emails_to_be_sent();
45
+ if($emails_to_be_sent > 0) {
46
+ $cron_url = ES_Common::get_cron_url(true);
47
+ $content = __(sprintf("<a href='%s' target='_blank' class='page-title-action es-imp-button'>Send Queued Emails Now</a>", $cron_url), 'email-subscribers');
48
+ ?>
49
+ <span style="float: right"><?php echo $content; ?></span>
50
+ <?php } ?>
51
+
52
+
53
+
54
  <div id="poststuff">
55
  <div id="post-body" class="metabox-holder column-1">
56
  <div id="post-body-content">
184
  $type = ucwords( str_replace( '_', ' ', $type ) );
185
 
186
  return $type;
 
 
 
 
 
 
 
187
  case 'subject':
188
  // case 'type':
189
  // return ucwords($item[ $column_name ]);
194
  }
195
  }
196
 
197
+ function column_status($item) {
198
+ if ( $item[ 'status' ] == 'Sent' ) {
199
+ return __( 'Completed', 'email-subscribers' );
200
+ } else {
201
+
202
+ $actions = array(
203
+ 'send_now' => $this->prepare_send_now_url($item)
204
+ );
205
+
206
+ return $item[ 'status' ] . $this->row_actions($actions, true);
207
+ }
208
+ }
209
  /**
210
  * Render the bulk edit checkbox
211
  *
256
  'status' => __( 'Status', 'email-subscribers' ),
257
  'start_at' => __( 'Start Date', 'email-subscribers' ),
258
  'finish_at' => __( 'End Date', 'email-subscribers' ),
259
+ 'count' => __( 'Total Contacts', 'email-subscribers' ),
260
  );
261
 
262
  return $columns;
263
  }
264
 
265
+ function column_count($item) {
266
+
267
+ $campaign_hash = $item['hash'];
268
+
269
+ $total_emails_sent = $total_emails_to_be_sent = $item['count'];
270
+ if(!empty($campaign_hash)) {
271
+ //$total_emails_sent = ES_DB_Sending_Queue::get_total_emails_sent_by_hash( $campaign_hash );
272
+ }
273
+
274
+ // $content = $total_emails_sent . "/" . $total_emails_to_be_sent;
275
+
276
+ return $total_emails_to_be_sent;
277
+
278
+ }
279
+
280
+ function prepare_send_now_url($item) {
281
+ $campaign_hash = $item['hash'];
282
+
283
+ $cron_url = '';
284
+ if(!empty($campaign_hash)) {
285
+ $cron_url = ES_Common::get_cron_url(true, false, $campaign_hash);
286
+ }
287
+
288
+
289
+ $content = '';
290
+ if(!empty($cron_url)) {
291
+ $content = __(sprintf("<a href='%s' target='_blank'>Send</a>", $cron_url), 'email-subscribers');
292
+ }
293
+
294
+ return $content;
295
+ }
296
 
297
  /**
298
  * Columns to make sortable.
370
  $this->show_message( $message, 'error' );
371
  } else {
372
  ES_DB_Mailing_Queue::delete_notifications( array( absint( Email_Subscribers::get_request( 'list' ) ) ) );
373
+ ES_DB_Sending_Queue::delete_sending_queue_by_mailing_id( array( absint( Email_Subscribers::get_request( 'list' ) ) ) );
374
  $message = __( 'Notification has been deleted successfully!', 'email-subscribers' );
375
  $this->show_message( $message, 'success' );
376
  }
397
 
398
  if ( count( $notification_ids ) > 0 ) {
399
  ES_DB_Mailing_Queue::delete_notifications( $notification_ids );
400
+ ES_DB_Sending_Queue::delete_sending_queue_by_mailing_id( $notification_ids );
401
  $message = __( 'Notifications have been deleted successfully', 'email-subscribers' );
402
  $this->show_message( $message, 'success' );
403
  }
includes/admin/class-es-subscribers-table.php CHANGED
@@ -47,7 +47,7 @@ class ES_Subscribers_Table extends WP_List_Table {
47
  $this->es_newsubscriber_callback();
48
  } elseif ( 'edit' === $action ) {
49
  echo $this->edit_list( absint( Email_Subscribers::get_request( 'subscriber' ) ) );
50
- } elseif ( 'sync' === $action ) {
51
  $this->load_sync();
52
  } else { ?>
53
  <h1 class="wp-heading-inline"><?php _e( 'Audience > Contacts', 'email-subscribers' ); ?>
@@ -90,7 +90,7 @@ class ES_Subscribers_Table extends WP_List_Table {
90
  $import->import_subscribers_page();
91
  }
92
 
93
- public function load_sync(){
94
  $sync = new ES_Handle_Sync_Wp_User();
95
  $sync->prepare_sync_user();
96
  }
@@ -197,9 +197,9 @@ class ES_Subscribers_Table extends WP_List_Table {
197
 
198
  public function show_message( $message = '', $status = 'success' ) {
199
 
200
- $class = 'notice notice-success';
201
  if ( 'error' === $status ) {
202
- $class = 'notice notice-error';
203
  }
204
  echo "<div class='{$class}'><p>{$message}</p></div>";
205
  }
@@ -219,6 +219,7 @@ class ES_Subscribers_Table extends WP_List_Table {
219
  $order = Email_Subscribers::get_request( 'order' );
220
  $search = Email_Subscribers::get_request( 's' );
221
  $filter_by_list_id = Email_Subscribers::get_request( 'filter_by_list_id' );
 
222
 
223
  $add_where_clause = false;
224
 
@@ -232,11 +233,13 @@ class ES_Subscribers_Table extends WP_List_Table {
232
  $query = array();
233
 
234
  // Prepare filter by list query
235
- if ( ! empty( $filter_by_list_id ) ) {
236
  $add_where_clause = true;
237
-
238
- $list_sql = "SELECT contact_id FROM " . IG_LISTS_CONTACTS_TABLE . " WHERE list_id = $filter_by_list_id";
239
- $query[] = "id IN ( $list_sql )";
 
 
240
  }
241
 
242
  // Prepare search query
@@ -306,6 +309,7 @@ class ES_Subscribers_Table extends WP_List_Table {
306
  $nonce = esc_attr( Email_Subscribers::get_request( '_wpnonce' ) );
307
 
308
  $data = array(
 
309
  'action' => "admin.php?page=es_subscribers&action=edit&subscriber={$id}&_wpnonce={$nonce}&status=updated",
310
  'name' => $title,
311
  'email' => $email,
@@ -315,7 +319,8 @@ class ES_Subscribers_Table extends WP_List_Table {
315
  );
316
 
317
  if ( Email_Subscribers::get_request( 'subscriber_name' ) ) {
318
- $updated = '<div class="updated"><p>' . __( 'Contact updated successfully!', 'email-subscribers' ) . '</p></div>';
 
319
  }
320
 
321
  $editform = '<div class="wrap">
@@ -337,6 +342,7 @@ class ES_Subscribers_Table extends WP_List_Table {
337
 
338
  public function prepare_contact_form( $data = array() ) {
339
 
 
340
  $created = ! empty( $data['created'] ) ? $data['created'] : '';
341
  $guid = ! empty( $data['guid'] ) ? $data['guid'] : '';
342
  $action = ! empty( $data['action'] ) ? $data['action'] : '#';
@@ -347,7 +353,7 @@ class ES_Subscribers_Table extends WP_List_Table {
347
  $lists_id_name_map = ES_DB_Lists::get_list_id_name_map();
348
 
349
  if ( count( $lists_id_name_map ) ) {
350
- $list_html = ES_Shortcode::prepare_lists_checkboxes( $lists_id_name_map, array_keys( $lists_id_name_map ), 4, $selected_list_ids );
351
  } else {
352
  $list_html = "<tr><td>" . __( 'No list found', 'email-subscribers' ) . "</td></tr>";
353
  }
@@ -443,14 +449,8 @@ class ES_Subscribers_Table extends WP_List_Table {
443
  $item = apply_filters( 'es_subscribers_col_data', $item, $column_name );
444
  switch ( $column_name ) {
445
  case 'lists':
446
- return implode( ", ", ES_DB_Lists::get_all_lists_name_by_contact( $item['id'] ) );
447
- case 'status':
448
-
449
- if ( $item['unsubscribed'] == 0 ) {
450
- return __( 'Subscribed', 'email-subscribers' );
451
- } else {
452
- return __( 'Unsubscribed', 'email-subscribers' );
453
- }
454
  case 'created_at':
455
  return ig_es_format_date_time( $item[ $column_name ] );
456
  case 'first_name':
@@ -460,6 +460,23 @@ class ES_Subscribers_Table extends WP_List_Table {
460
  }
461
  }
462
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  public function status_label_map( $status ) {
464
 
465
  $statuses = array(
@@ -513,9 +530,9 @@ class ES_Subscribers_Table extends WP_List_Table {
513
 
514
  $optin_type = get_option( 'ig_es_optin_type' );
515
 
516
- if ( in_array( $optin_type, array( 'double_optin', 'double_opt_in' ) ) ) {
517
- $actions['resend'] = sprintf( '<a href="?page=%s&action=%s&subscriber=%s&_wpnonce=%s">Resend<a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'resend', absint( $item['id'] ), $delete_nonce );
518
- }
519
 
520
  return $title . $this->row_actions( $actions );
521
  }
@@ -531,7 +548,6 @@ class ES_Subscribers_Table extends WP_List_Table {
531
  'cb' => '<input type="checkbox" />',
532
  'name' => __( 'Name', 'email-subscribers' ),
533
  'email' => __( 'Email', 'email-subscribers' ),
534
- 'status' => __( 'Status', 'email-subscribers' ),
535
  'lists' => __( 'List(s)', 'email-subscribers' ),
536
  'created_at' => __( 'Created', 'email-subscribers' ),
537
  );
@@ -549,7 +565,7 @@ class ES_Subscribers_Table extends WP_List_Table {
549
  $sortable_columns = array(
550
  'first_name' => array( 'first_name', true ),
551
  'email' => array( 'email', false ),
552
- 'status' => array( 'status', false ),
553
  'created_at' => array( 'created_at', false )
554
  );
555
 
@@ -578,6 +594,12 @@ class ES_Subscribers_Table extends WP_List_Table {
578
  <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>"/>
579
  <?php submit_button( 'Search Contacts', 'button', false, false, array( 'id' => 'search-submit' ) ); ?>
580
  </p>
 
 
 
 
 
 
581
  <p class="search-box search-group-box box-ma10">
582
  <?php $filter_by_list_id = Email_Subscribers::get_request( 'filter_by_list_id' ); ?>
583
  <select name="filter_by_list_id">
@@ -717,7 +739,7 @@ class ES_Subscribers_Table extends WP_List_Table {
717
  $deleted = ES_DB_Contacts::delete_subscribers( $subscriber_ids );
718
 
719
  if ( $deleted ) {
720
- $message = __( 'Contacts(s) have been deleted successfully!', 'email-subscribers' );
721
  $this->show_message( $message, 'success' );
722
  }
723
 
47
  $this->es_newsubscriber_callback();
48
  } elseif ( 'edit' === $action ) {
49
  echo $this->edit_list( absint( Email_Subscribers::get_request( 'subscriber' ) ) );
50
+ } elseif ( 'sync' === $action ) {
51
  $this->load_sync();
52
  } else { ?>
53
  <h1 class="wp-heading-inline"><?php _e( 'Audience > Contacts', 'email-subscribers' ); ?>
90
  $import->import_subscribers_page();
91
  }
92
 
93
+ public function load_sync() {
94
  $sync = new ES_Handle_Sync_Wp_User();
95
  $sync->prepare_sync_user();
96
  }
197
 
198
  public function show_message( $message = '', $status = 'success' ) {
199
 
200
+ $class = 'notice notice-success is-dismissible';
201
  if ( 'error' === $status ) {
202
+ $class = 'notice notice-error is-dismissible';
203
  }
204
  echo "<div class='{$class}'><p>{$message}</p></div>";
205
  }
219
  $order = Email_Subscribers::get_request( 'order' );
220
  $search = Email_Subscribers::get_request( 's' );
221
  $filter_by_list_id = Email_Subscribers::get_request( 'filter_by_list_id' );
222
+ $filter_by_status = Email_Subscribers::get_request( 'filter_by_status' );
223
 
224
  $add_where_clause = false;
225
 
233
  $query = array();
234
 
235
  // Prepare filter by list query
236
+ if ( ! empty( $filter_by_list_id ) || ! empty( $filter_by_status ) ) {
237
  $add_where_clause = true;
238
+ $list_sql = "SELECT contact_id FROM " . IG_LISTS_CONTACTS_TABLE;
239
+ $filter_sql = ! empty( $filter_by_list_id ) ? " list_id = $filter_by_list_id " : ' ';
240
+ $filter_sql .= ! empty( $filter_by_status ) ? ( ( ! empty( $filter_by_list_id ) ) ? "AND status = '$filter_by_status' " : " status = '$filter_by_status' " ) : ' ';
241
+ $list_sql = ! empty( $filter_sql ) ? $list_sql . " WHERE " . $filter_sql : $list_sql;
242
+ $query[] = "id IN ( $list_sql )";
243
  }
244
 
245
  // Prepare search query
309
  $nonce = esc_attr( Email_Subscribers::get_request( '_wpnonce' ) );
310
 
311
  $data = array(
312
+ 'id' => $id,
313
  'action' => "admin.php?page=es_subscribers&action=edit&subscriber={$id}&_wpnonce={$nonce}&status=updated",
314
  'name' => $title,
315
  'email' => $email,
319
  );
320
 
321
  if ( Email_Subscribers::get_request( 'subscriber_name' ) ) {
322
+ $message = __( 'Contact updated successfully!', 'email-subscribers' );
323
+ $this->show_message( $message, 'success' );
324
  }
325
 
326
  $editform = '<div class="wrap">
342
 
343
  public function prepare_contact_form( $data = array() ) {
344
 
345
+ $id = ! empty( $data['id'] ) ? $data['id'] : '';
346
  $created = ! empty( $data['created'] ) ? $data['created'] : '';
347
  $guid = ! empty( $data['guid'] ) ? $data['guid'] : '';
348
  $action = ! empty( $data['action'] ) ? $data['action'] : '#';
353
  $lists_id_name_map = ES_DB_Lists::get_list_id_name_map();
354
 
355
  if ( count( $lists_id_name_map ) ) {
356
+ $list_html = ES_Shortcode::prepare_lists_checkboxes( $lists_id_name_map, array_keys( $lists_id_name_map ), 4, $selected_list_ids, $id );
357
  } else {
358
  $list_html = "<tr><td>" . __( 'No list found', 'email-subscribers' ) . "</td></tr>";
359
  }
449
  $item = apply_filters( 'es_subscribers_col_data', $item, $column_name );
450
  switch ( $column_name ) {
451
  case 'lists':
452
+ return $this->get_lists_to_show( $item['id'] );
453
+ //implode( ", ", ES_DB_Lists::get_all_lists_name_by_contact( $item['id'] ) );
 
 
 
 
 
 
454
  case 'created_at':
455
  return ig_es_format_date_time( $item[ $column_name ] );
456
  case 'first_name':
460
  }
461
  }
462
 
463
+ public function get_lists_to_show( $contact_id ) {
464
+ $contact_lists = ES_DB_Lists_Contacts::get_list_details_by_contact( $contact_id );
465
+ $list_str = '';
466
+ if ( count( $contact_lists ) > 0 ) {
467
+ $contact_lists_to_display = array_slice( $contact_lists, 0, 4 );
468
+ $list_id_name_map = ES_DB_Lists::get_list_id_name_map();
469
+
470
+ foreach ( $contact_lists_to_display as $contact_list ) {
471
+ if(!empty( $list_id_name_map[ $contact_list['list_id'] ] )){
472
+ $list_str .= '<span class="es_list_contact_status ' . strtolower($contact_list['status']) . '" title="' . ucwords( $contact_list['status'] ) . '">' . $list_id_name_map[ $contact_list['list_id'] ] . '</span> ';
473
+ }
474
+ }
475
+ }
476
+
477
+ return $list_str;
478
+ }
479
+
480
  public function status_label_map( $status ) {
481
 
482
  $statuses = array(
530
 
531
  $optin_type = get_option( 'ig_es_optin_type' );
532
 
533
+ //if ( in_array( $optin_type, array( 'double_optin', 'double_opt_in' ) ) ) {
534
+ $actions['resend'] = sprintf( '<a href="?page=%s&action=%s&subscriber=%s&_wpnonce=%s">Resend<a>', esc_attr( Email_Subscribers::get_request( 'page' ) ), 'resend', absint( $item['id'] ), $delete_nonce );
535
+ //}
536
 
537
  return $title . $this->row_actions( $actions );
538
  }
548
  'cb' => '<input type="checkbox" />',
549
  'name' => __( 'Name', 'email-subscribers' ),
550
  'email' => __( 'Email', 'email-subscribers' ),
 
551
  'lists' => __( 'List(s)', 'email-subscribers' ),
552
  'created_at' => __( 'Created', 'email-subscribers' ),
553
  );
565
  $sortable_columns = array(
566
  'first_name' => array( 'first_name', true ),
567
  'email' => array( 'email', false ),
568
+ // 'status' => array( 'status', false ),
569
  'created_at' => array( 'created_at', false )
570
  );
571
 
594
  <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>"/>
595
  <?php submit_button( 'Search Contacts', 'button', false, false, array( 'id' => 'search-submit' ) ); ?>
596
  </p>
597
+ <p class="search-box search-group-box box-ma10">
598
+ <?php $filter_by_status = Email_Subscribers::get_request( 'filter_by_status' ); ?>
599
+ <select name="filter_by_status">
600
+ <?php echo ES_Common::prepare_statuses_dropdown_options( $filter_by_status, 'All Status' ); ?>
601
+ </select>
602
+ </p>
603
  <p class="search-box search-group-box box-ma10">
604
  <?php $filter_by_list_id = Email_Subscribers::get_request( 'filter_by_list_id' ); ?>
605
  <select name="filter_by_list_id">
739
  $deleted = ES_DB_Contacts::delete_subscribers( $subscriber_ids );
740
 
741
  if ( $deleted ) {
742
+ $message = __( 'Contact(s) have been deleted successfully!', 'email-subscribers' );
743
  $this->show_message( $message, 'success' );
744
  }
745
 
includes/admin/class-es-tools.php CHANGED
@@ -168,9 +168,9 @@ class ES_Tools {
168
 
169
  public function show_message( $message = '', $status = 'success' ) {
170
 
171
- $class = 'notice notice-success';
172
  if ( 'error' === $status ) {
173
- $class = 'notice notice-error';
174
  }
175
  echo "<div class='{$class}'><p>{$message}</p></div>";
176
  }
168
 
169
  public function show_message( $message = '', $status = 'success' ) {
170
 
171
+ $class = 'notice notice-success is-dismissible';
172
  if ( 'error' === $status ) {
173
+ $class = 'notice notice-error is-dismissible';
174
  }
175
  echo "<div class='{$class}'><p>{$message}</p></div>";
176
  }
includes/class-email-subscribers.php CHANGED
@@ -362,7 +362,7 @@ class Email_Subscribers {
362
 
363
  public static function get_request( $request ) {
364
  if ( isset( $_REQUEST[ $request ] ) ) {
365
- return $_REQUEST[ $request ];
366
  }
367
 
368
  return '';
362
 
363
  public static function get_request( $request ) {
364
  if ( isset( $_REQUEST[ $request ] ) ) {
365
+ return wp_unslash($_REQUEST[ $request ]);
366
  }
367
 
368
  return '';
includes/class-es-common.php CHANGED
@@ -111,12 +111,13 @@ Class ES_Common {
111
  return $options;
112
  }
113
 
114
- public static function prepare_statuses_dropdown_options( $selected = '' ) {
115
 
116
- $default_status = array(
117
- '' => __( 'Select Status', 'email-subscribers' ),
118
 
119
- );
 
120
 
121
  $statuses = self::get_statuses_key_name_map();
122
  $statuses = array_merge( $default_status, $statuses );
@@ -513,14 +514,28 @@ Class ES_Common {
513
  return trim( $first_name . ' ' . $last_name );
514
  }
515
 
516
- public static function get_cron_url( $self = false, $pro = false ) {
517
- $cron_url = get_option( 'ig_es_cronurl' );
 
 
 
 
 
 
 
 
 
518
 
 
519
  $result = array();
520
  parse_str( $cron_url, $result );
521
  $cron_url = add_query_arg( 'es', 'cron', site_url() );
522
  $cron_url = add_query_arg( 'guid', $result['guid'], $cron_url );
523
 
 
 
 
 
524
  if ( $self ) {
525
  $cron_url = add_query_arg( 'self', true, $cron_url );
526
  }
@@ -529,7 +544,14 @@ Class ES_Common {
529
  $cron_url = add_query_arg( 'es_pro', true, $cron_url );
530
  }
531
 
 
532
  return $cron_url;
533
  }
534
 
 
 
 
 
 
 
535
  }
111
  return $options;
112
  }
113
 
114
+ public static function prepare_statuses_dropdown_options( $selected = '', $default_label = 'Select Status' ) {
115
 
116
+ // $default_status = array(
117
+ // '' => __( 'Select Status', 'email-subscribers' ),
118
 
119
+ // );
120
+ $default_status[0] = __( $default_label, 'email-subscribers' );
121
 
122
  $statuses = self::get_statuses_key_name_map();
123
  $statuses = array_merge( $default_status, $statuses );
514
  return trim( $first_name . ' ' . $last_name );
515
  }
516
 
517
+ public static function get_cron_url( $self = false, $pro = false, $campaign_hash = '' ) {
518
+
519
+ /*
520
+ if(empty($cron_url)) {
521
+ $guid = ES_Common::generate_guid();
522
+ $url = add_query_arg( 'es', 'cron', site_url() );
523
+ $url = add_query_arg( 'guid', $guid, $url );
524
+ $cron_url = $url;
525
+ update_option('ig_es_cronurl', $cron_url);
526
+ }
527
+ */
528
 
529
+ $cron_url = get_option( 'ig_es_cronurl', '' );
530
  $result = array();
531
  parse_str( $cron_url, $result );
532
  $cron_url = add_query_arg( 'es', 'cron', site_url() );
533
  $cron_url = add_query_arg( 'guid', $result['guid'], $cron_url );
534
 
535
+ if ( ! empty( $campaign_hash ) ) {
536
+ $cron_url = add_query_arg( 'campaign_hash', $campaign_hash, $cron_url );
537
+ }
538
+
539
  if ( $self ) {
540
  $cron_url = add_query_arg( 'self', true, $cron_url );
541
  }
544
  $cron_url = add_query_arg( 'es_pro', true, $cron_url );
545
  }
546
 
547
+
548
  return $cron_url;
549
  }
550
 
551
+ public static function get_name_from_email( $email ) {
552
+ $name = strstr( $email, '@', true );
553
+
554
+ return trim( $name );
555
+ }
556
+
557
  }
includes/class-es-install.php CHANGED
@@ -77,6 +77,12 @@ class ES_Install {
77
  '4.0.2' => array(
78
  'ig_es_update_402_migrate_post_notification_es_template_type',
79
  'ig_es_update_402_db_version'
 
 
 
 
 
 
80
  )
81
  );
82
 
@@ -361,8 +367,8 @@ class ES_Install {
361
  $tables = "
362
  CREATE TABLE `{$wpdb->prefix}ig_campaigns` (
363
  `id` int(10) NOT NULL AUTO_INCREMENT,
364
- `slug` varchar(50) DEFAULT NULL,
365
- `name` varchar(50) DEFAULT NULL,
366
  `type` varchar(50) DEFAULT NULL,
367
  `from_name` varchar(50) DEFAULT NULL,
368
  `from_email` varchar(50) DEFAULT NULL,
@@ -459,7 +465,7 @@ class ES_Install {
459
  `id` int(10) NOT NULL AUTO_INCREMENT,
460
  `hash` varchar(50) NOT NULL,
461
  `campaign_id` int(10) NOT NULL DEFAULT '0',
462
- `subject` varchar(50) NOT NULL,
463
  `body` longtext,
464
  `count` int(10) UNSIGNED NOT NULL DEFAULT '0',
465
  `status` varchar(10) NOT NULL,
@@ -477,7 +483,7 @@ class ES_Install {
477
  `mailing_queue_hash` varchar(50) DEFAULT NULL,
478
  `campaign_id` int(10) NOT NULL DEFAULT '0',
479
  `contact_id` int(10) NOT NULL DEFAULT '0',
480
- `contact_hash` varchar(50) DEFAULT NULL,
481
  `email` varchar(50) DEFAULT NULL,
482
  `status` varchar(50) DEFAULT NULL,
483
  `links` longtext,
77
  '4.0.2' => array(
78
  'ig_es_update_402_migrate_post_notification_es_template_type',
79
  'ig_es_update_402_db_version'
80
+ ),
81
+
82
+ '4.0.3' => array(
83
+ 'ig_es_update_403_alter_campaigns_table',
84
+ 'ig_es_update_403_alter_mailing_queue_table',
85
+ 'ig_es_update_403_db_version'
86
  )
87
  );
88
 
367
  $tables = "
368
  CREATE TABLE `{$wpdb->prefix}ig_campaigns` (
369
  `id` int(10) NOT NULL AUTO_INCREMENT,
370
+ `slug` varchar(255) DEFAULT NULL,
371
+ `name` varchar(255) DEFAULT NULL,
372
  `type` varchar(50) DEFAULT NULL,
373
  `from_name` varchar(50) DEFAULT NULL,
374
  `from_email` varchar(50) DEFAULT NULL,
465
  `id` int(10) NOT NULL AUTO_INCREMENT,
466
  `hash` varchar(50) NOT NULL,
467
  `campaign_id` int(10) NOT NULL DEFAULT '0',
468
+ `subject` text DEFAULT '',
469
  `body` longtext,
470
  `count` int(10) UNSIGNED NOT NULL DEFAULT '0',
471
  `status` varchar(10) NOT NULL,
483
  `mailing_queue_hash` varchar(50) DEFAULT NULL,
484
  `campaign_id` int(10) NOT NULL DEFAULT '0',
485
  `contact_id` int(10) NOT NULL DEFAULT '0',
486
+ `contact_hash` varchar(255) DEFAULT NULL,
487
  `email` varchar(50) DEFAULT NULL,
488
  `status` varchar(50) DEFAULT NULL,
489
  `links` longtext,
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 = $emails_name_map[ $email ];
39
 
40
  $keywords = array(
41
  'name' => $email_name,
@@ -108,7 +108,7 @@ class ES_Mailer {
108
  public static function prepare_welcome_email( $data ) {
109
 
110
  $blog_name = get_option( 'blogname' );
111
- $content = stripslashes( get_option( 'ig_es_welcome_email_content', true ) );
112
 
113
  $name = isset( $data['name'] ) ? $data['name'] : '';
114
  $email = isset( $data['email'] ) ? $data['email'] : '';
@@ -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 = get_option( 'ig_es_confirmation_mail_content', true );
138
  $subscribe_link = get_option( 'ig_es_optin_link', true );
139
 
140
  $db_id = isset( $data['db_id'] ) ? $data['db_id'] : '';
@@ -204,7 +204,7 @@ class ES_Mailer {
204
 
205
  public static function get_unsubscribe_text( $unsublink ) {
206
 
207
- $unsubtext = get_option( 'ig_es_unsubscribe_link_content' );
208
  $unsubtext = stripslashes( $unsubtext );
209
  $unsubtext = str_replace( "{{LINK}}", $unsublink, $unsubtext );
210
  $unsubtext = str_replace( "{{UNSUBSCRIBE-LINK}}", $unsublink, $unsubtext );
@@ -272,12 +272,14 @@ class ES_Mailer {
272
  "From: \"$sender_name\" <$sender_email>",
273
  "Reply-To: \"$sender_name\" <$sender_email>",
274
  "Return-Path: <$sender_email>",
275
- "MIME-Version: 1.0"
 
276
  );
277
 
278
  if ( in_array( $get_email_type, array( 'wp_html_mail', 'php_html_mail' ) ) ) {
279
- $headers[] = "Content-type: text/html; charset=UTF-8";
280
  } else {
 
281
  $email_template = str_replace( "<br />", "\r\n", $email_template );
282
  $email_template = str_replace( "<br>", "\r\n", $email_template );
283
  $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,
108
  public static function prepare_welcome_email( $data ) {
109
 
110
  $blog_name = get_option( 'blogname' );
111
+ $content = stripslashes( get_option( 'ig_es_welcome_email_content', '' ) );
112
 
113
  $name = isset( $data['name'] ) ? $data['name'] : '';
114
  $email = isset( $data['email'] ) ? $data['email'] : '';
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'] : '';
204
 
205
  public static function get_unsubscribe_text( $unsublink ) {
206
 
207
+ $unsubtext = get_option( 'ig_es_unsubscribe_link_content', '' );
208
  $unsubtext = stripslashes( $unsubtext );
209
  $unsubtext = str_replace( "{{LINK}}", $unsublink, $unsubtext );
210
  $unsubtext = str_replace( "{{UNSUBSCRIBE-LINK}}", $unsublink, $unsubtext );
272
  "From: \"$sender_name\" <$sender_email>",
273
  "Reply-To: \"$sender_name\" <$sender_email>",
274
  "Return-Path: <$sender_email>",
275
+ "MIME-Version: 1.0",
276
+ "X-Mailer: PHP" . phpversion()
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-campaigns.php CHANGED
@@ -191,7 +191,7 @@ class ES_DB_Campaigns {
191
  $campaigns_data[ $key ]['categories'] = $categories;
192
  $campaigns_data[ $key ]['list_ids'] = ( ! empty( $notification['es_note_group'] ) && ! empty( $list_is_name_map[ $notification['es_note_group'] ] ) ) ? $list_is_name_map[ $notification['es_note_group'] ] : 0;
193
  $campaigns_data[ $key ]['base_template_id'] = $template_id;
194
- $campaigns_data[ $key ]['status'] = ( ! empty( $notification['es_note_status'] ) && $notification['es_note_status'] === 'Enable' ) ? 1 : 0;
195
  $campaigns_data[ $key ]['created_at'] = ig_get_current_date_time();
196
  $campaigns_data[ $key ]['updated_at'] = null;
197
  $campaigns_data[ $key ]['deleted_at'] = null;
191
  $campaigns_data[ $key ]['categories'] = $categories;
192
  $campaigns_data[ $key ]['list_ids'] = ( ! empty( $notification['es_note_group'] ) && ! empty( $list_is_name_map[ $notification['es_note_group'] ] ) ) ? $list_is_name_map[ $notification['es_note_group'] ] : 0;
193
  $campaigns_data[ $key ]['base_template_id'] = $template_id;
194
+ $campaigns_data[ $key ]['status'] = ( ! empty( $notification['es_note_status'] ) && $notification['es_note_status'] === 'Disable' ) ? 0 : 1;
195
  $campaigns_data[ $key ]['created_at'] = ig_get_current_date_time();
196
  $campaigns_data[ $key ]['updated_at'] = null;
197
  $campaigns_data[ $key ]['deleted_at'] = null;
includes/db/class-es-db-contacts.php CHANGED
@@ -170,6 +170,7 @@ class ES_DB_Contacts {
170
 
171
  $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET list_id = %s WHERE contact_id IN ($ids)";
172
  $query = $wpdb->prepare( $sql, array( $list_id ) );
 
173
  return $wpdb->query( $query );
174
  }
175
 
@@ -180,10 +181,10 @@ class ES_DB_Contacts {
180
 
181
  $current_date = ig_get_current_date_time();
182
 
183
- if('subscribed' === $status) {
184
- $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET status = %s, subscribed_at = %s WHERE contact_id IN ($ids)";
185
- } elseif('unsubscribed' === $status) {
186
- $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET status = %s, unsubscribed_at = %s WHERE contact_id IN ($ids)";
187
  }
188
  $query = $wpdb->prepare( $sql, array( $status, $current_date ) );
189
 
@@ -259,14 +260,14 @@ class ES_DB_Contacts {
259
 
260
  }
261
 
262
- public static function get_contact_ids_by_emails( $emails = array()) {
263
  global $wpdb;
264
 
265
- $query = "SELECT id FROM " . IG_CONTACTS_TABLE;
266
 
267
- if(count($emails) > 0) {
268
- $emails_str = "'" . implode("', '", $emails) . "'";
269
- $query .= " WHERE email IN ({$emails_str})";
270
  }
271
 
272
  $ids = $wpdb->get_col( $query );
@@ -274,17 +275,17 @@ class ES_DB_Contacts {
274
  return $ids;
275
  }
276
 
277
- public static function get_email_id_map( $emails = array()) {
278
  global $wpdb;
279
 
280
- $query = "SELECT id, email FROM " . IG_CONTACTS_TABLE;
281
 
282
- if(count($emails) > 0) {
283
- $emails_str = implode(', ', $emails);
284
- $query .= " WHERE email IN ({$emails_str})";
285
  }
286
  $results = $wpdb->get_results( $query, ARRAY_A );
287
- $map = array();
288
  if ( count( $results ) > 0 ) {
289
  foreach ( $results as $result ) {
290
  $map[ $result['email'] ] = $result['id'];
@@ -374,8 +375,8 @@ class ES_DB_Contacts {
374
  $batch_size = IG_DEFAULT_BATCH_SIZE;
375
  $total_bataches = ( $total > IG_DEFAULT_BATCH_SIZE ) ? ceil( $total / $batch_size ) : 1;
376
  $lists_contacts = array();
377
- $exclude_status = array( 'Unsubscribed', 'Unconfirmed' );
378
- $j = 0;
379
  for ( $i = 0; $i < $total_bataches; $i ++ ) {
380
  $batch_start = $i * $batch_size;
381
  $query = "SELECT * FROM " . ES_EMAILLIST_TABLE . " LIMIT {$batch_start}, {$batch_size} ";
@@ -386,7 +387,7 @@ class ES_DB_Contacts {
386
  $email = $result['es_email_mail'];
387
  if ( ! in_array( $email, $emails ) ) {
388
 
389
- $contacts[$key] = $result;
390
 
391
  $contacts[ $key ]['first_name'] = $result['es_email_name'];
392
  $contacts[ $key ]['email'] = $email;
@@ -401,13 +402,13 @@ class ES_DB_Contacts {
401
  }
402
 
403
  //Collect all contacts based on Lists
404
- if ( ! in_array( $result['es_email_status'], $exclude_status ) ) {
405
- $lists_contacts[ $result['es_email_group'] ][ $j ]['email'] = $email;
406
- $lists_contacts[ $result['es_email_group'] ][ $j ]['status'] = $result['es_email_status'];
407
- $lists_contacts[ $result['es_email_group'] ][ $j ]['subscribed_at'] = $result['es_email_created'];
408
- $lists_contacts[ $result['es_email_group'] ][ $j ]['subscribed_ip'] = null;
409
- $j ++;
410
- }
411
  }
412
 
413
  self::do_batch_insert( $contacts );
170
 
171
  $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET list_id = %s WHERE contact_id IN ($ids)";
172
  $query = $wpdb->prepare( $sql, array( $list_id ) );
173
+
174
  return $wpdb->query( $query );
175
  }
176
 
181
 
182
  $current_date = ig_get_current_date_time();
183
 
184
+ if ( 'subscribed' === $status ) {
185
+ $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET status = %s, subscribed_at = %s WHERE contact_id IN ($ids)";
186
+ } elseif ( 'unsubscribed' === $status ) {
187
+ $sql = "UPDATE " . IG_LISTS_CONTACTS_TABLE . " SET status = %s, unsubscribed_at = %s WHERE contact_id IN ($ids)";
188
  }
189
  $query = $wpdb->prepare( $sql, array( $status, $current_date ) );
190
 
260
 
261
  }
262
 
263
+ public static function get_contact_ids_by_emails( $emails = array() ) {
264
  global $wpdb;
265
 
266
+ $query = "SELECT id FROM " . IG_CONTACTS_TABLE;
267
 
268
+ if ( count( $emails ) > 0 ) {
269
+ $emails_str = "'" . implode( "', '", $emails ) . "'";
270
+ $query .= " WHERE email IN ({$emails_str})";
271
  }
272
 
273
  $ids = $wpdb->get_col( $query );
275
  return $ids;
276
  }
277
 
278
+ public static function get_email_id_map( $emails = array() ) {
279
  global $wpdb;
280
 
281
+ $query = "SELECT id, email FROM " . IG_CONTACTS_TABLE;
282
 
283
+ if ( count( $emails ) > 0 ) {
284
+ $emails_str = implode( ', ', $emails );
285
+ $query .= " WHERE email IN ({$emails_str})";
286
  }
287
  $results = $wpdb->get_results( $query, ARRAY_A );
288
+ $map = array();
289
  if ( count( $results ) > 0 ) {
290
  foreach ( $results as $result ) {
291
  $map[ $result['email'] ] = $result['id'];
375
  $batch_size = IG_DEFAULT_BATCH_SIZE;
376
  $total_bataches = ( $total > IG_DEFAULT_BATCH_SIZE ) ? ceil( $total / $batch_size ) : 1;
377
  $lists_contacts = array();
378
+ //$exclude_status = array( 'Unsubscribed', 'Unconfirmed' );
379
+ $j = 0;
380
  for ( $i = 0; $i < $total_bataches; $i ++ ) {
381
  $batch_start = $i * $batch_size;
382
  $query = "SELECT * FROM " . ES_EMAILLIST_TABLE . " LIMIT {$batch_start}, {$batch_size} ";
387
  $email = $result['es_email_mail'];
388
  if ( ! in_array( $email, $emails ) ) {
389
 
390
+ $contacts[ $key ] = $result;
391
 
392
  $contacts[ $key ]['first_name'] = $result['es_email_name'];
393
  $contacts[ $key ]['email'] = $email;
402
  }
403
 
404
  //Collect all contacts based on Lists
405
+ //if ( ! in_array( $result['es_email_status'], $exclude_status ) ) {
406
+ $lists_contacts[ $result['es_email_group'] ][ $j ]['email'] = $email;
407
+ $lists_contacts[ $result['es_email_group'] ][ $j ]['status'] = $result['es_email_status'];
408
+ $lists_contacts[ $result['es_email_group'] ][ $j ]['subscribed_at'] = $result['es_email_created'];
409
+ $lists_contacts[ $result['es_email_group'] ][ $j ]['subscribed_ip'] = null;
410
+ $j ++;
411
+ //}
412
  }
413
 
414
  self::do_batch_insert( $contacts );
includes/db/class-es-db-lists-contacts.php CHANGED
@@ -31,6 +31,24 @@ class ES_DB_Lists_Contacts {
31
  return $res;
32
  }
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  public static function update_list_contacts( $contact_id, $list_ids ) {
35
  global $wpdb;
36
  $query = "DELETE FROM " . IG_LISTS_CONTACTS_TABLE . " WHERE contact_id = $contact_id";
@@ -94,6 +112,9 @@ class ES_DB_Lists_Contacts {
94
  } elseif ( $contact['status'] === 'Unconfirmed' ) {
95
  $optin_type = IG_DOUBLE_OPTIN;
96
  $status = 'Unconfirmed';
 
 
 
97
  }
98
 
99
  array_push( $values, $list_id, $email_id_map[ $contact['email'] ], $status, $optin_type, $contact['subscribed_at'] );
@@ -158,4 +179,6 @@ class ES_DB_Lists_Contacts {
158
  return $total_count;
159
 
160
  }
 
 
161
  }
31
  return $res;
32
  }
33
 
34
+ public static function get_list_details_by_contact( $id ) {
35
+ global $wpdb;
36
+ $query = "SELECT * FROM " . IG_LISTS_CONTACTS_TABLE . " WHERE contact_id = $id";
37
+ $res = $wpdb->get_results( $query, ARRAY_A );
38
+
39
+ return $res;
40
+ }
41
+
42
+ public static function get_list_contact_status_map( $id ){
43
+ global $wpdb;
44
+ $query = "SELECT list_id, status FROM " . IG_LISTS_CONTACTS_TABLE . " WHERE contact_id = $id";
45
+ $res = $wpdb->get_results( $query, ARRAY_A );
46
+ foreach ( $res as $list ) {
47
+ $lists_contact_status_map[ $list['list_id'] ] = $list['status'];
48
+ }
49
+ return $lists_contact_status_map;
50
+ }
51
+
52
  public static function update_list_contacts( $contact_id, $list_ids ) {
53
  global $wpdb;
54
  $query = "DELETE FROM " . IG_LISTS_CONTACTS_TABLE . " WHERE contact_id = $contact_id";
112
  } elseif ( $contact['status'] === 'Unconfirmed' ) {
113
  $optin_type = IG_DOUBLE_OPTIN;
114
  $status = 'Unconfirmed';
115
+ } elseif($contact['status'] === 'Unsubscribed') {
116
+ $optin_type = IG_DOUBLE_OPTIN;
117
+ $status = 'unsubscribed';
118
  }
119
 
120
  array_push( $values, $list_id, $email_id_map[ $contact['email'] ], $status, $optin_type, $contact['subscribed_at'] );
179
  return $total_count;
180
 
181
  }
182
+
183
+
184
  }
includes/db/class-es-db-mailing-queue.php CHANGED
@@ -73,12 +73,19 @@ class ES_DB_Mailing_Queue {
73
 
74
  }
75
 
76
- public static function get_notification_to_be_sent() {
77
  global $wpdb;
78
 
79
  $notification = array();
80
- $query = "SELECT * FROM " . IG_MAILING_QUEUE_TABLE . " WHERE status IN ('Sending', 'In Queue') ORDER BY id LIMIT 0, 1";
81
- $results = $wpdb->get_results( $query, ARRAY_A );
 
 
 
 
 
 
 
82
 
83
  if ( count( $results ) > 0 ) {
84
  $notification = array_shift( $results );
@@ -173,7 +180,6 @@ class ES_DB_Mailing_Queue {
173
  $query = "DELETE FROM " . IG_MAILING_QUEUE_TABLE . " WHERE id IN ($ids)";
174
 
175
  $wpdb->query( $query );
176
-
177
  }
178
 
179
  public static function add_notification( $data ) {
@@ -254,7 +260,7 @@ class ES_DB_Mailing_Queue {
254
 
255
  if ( $total > 0 ) {
256
  $columns = self::get_columns();
257
- unset( $columns[0] );
258
  $fields = array_keys( $columns );
259
 
260
  $batch_size = IG_DEFAULT_BATCH_SIZE;
73
 
74
  }
75
 
76
+ public static function get_notification_to_be_sent( $campaign_hash = '' ) {
77
  global $wpdb;
78
 
79
  $notification = array();
80
+
81
+ if ( ! empty( $campaign_hash ) ) {
82
+ $query = "SELECT * FROM " . IG_MAILING_QUEUE_TABLE . " WHERE hash = %s";
83
+ $query = $wpdb->prepare( $query, array( $campaign_hash ) );
84
+ } else {
85
+ $query = "SELECT * FROM " . IG_MAILING_QUEUE_TABLE . " WHERE status IN ('Sending', 'In Queue') ORDER BY id LIMIT 0, 1";
86
+ }
87
+
88
+ $results = $wpdb->get_results( $query, ARRAY_A );
89
 
90
  if ( count( $results ) > 0 ) {
91
  $notification = array_shift( $results );
180
  $query = "DELETE FROM " . IG_MAILING_QUEUE_TABLE . " WHERE id IN ($ids)";
181
 
182
  $wpdb->query( $query );
 
183
  }
184
 
185
  public static function add_notification( $data ) {
260
 
261
  if ( $total > 0 ) {
262
  $columns = self::get_columns();
263
+ unset( $columns['id'] );
264
  $fields = array_keys( $columns );
265
 
266
  $batch_size = IG_DEFAULT_BATCH_SIZE;
includes/db/class-es-db-notifications.php CHANGED
@@ -27,7 +27,7 @@ class ES_DB_Notifications {
27
 
28
  if ( $post_id > 0 ) {
29
  $post_type = get_post_type( $post_id );
30
- $sSql = "SELECT * FROM " . IG_CAMPAIGNS_TABLE . " WHERE status = 1 AND deleted_at IS NULL";
31
  if ( $post_type == "post" ) {
32
  $categories = get_the_category( $post_id );
33
  $total_categories = count( $categories );
27
 
28
  if ( $post_id > 0 ) {
29
  $post_type = get_post_type( $post_id );
30
+ $sSql = "SELECT * FROM " . IG_CAMPAIGNS_TABLE . " WHERE status = 1 AND (deleted_at IS NULL OR deleted_at = '0000-00-00 00:00:00') AND type = 'post_notification'";
31
  if ( $post_type == "post" ) {
32
  $categories = get_the_category( $post_id );
33
  $total_categories = count( $categories );
includes/db/class-es-db-sending-queue.php CHANGED
@@ -74,11 +74,11 @@ class ES_DB_Sending_Queue {
74
 
75
  $updated = false;
76
  if ( ! empty( $id_str ) ) {
77
- $sql = "UPDATE " . IG_SENDING_QUEUE_TABLE . " SET status = %s";
78
 
79
- if('Sent' === $status) {
80
  $current_time = ig_get_current_date_time();
81
- $sql .= ", sent_at = '{$current_time}' ";
82
  }
83
 
84
  $sql .= " WHERE id IN ($id_str)";
@@ -92,12 +92,12 @@ class ES_DB_Sending_Queue {
92
  }
93
 
94
  /* count cron email */
95
- public static function get_total_emails_to_be_sent_by_hash( $notification_hash ) {
96
 
97
  global $wpdb;
98
 
99
  $result = 0;
100
- if ( $notification_hash != "" ) {
101
  $query = $wpdb->prepare( "SELECT COUNT(*) AS count
102
  FROM " . IG_SENDING_QUEUE_TABLE . "
103
  WHERE mailing_queue_hash = %s AND status = %s", array( $notification_hash, "In Queue" ) );
@@ -108,6 +108,35 @@ class ES_DB_Sending_Queue {
108
 
109
  }
110
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  public static function get_emails_by_hash( $notification_hash ) {
112
  global $wpdb;
113
 
@@ -120,7 +149,6 @@ class ES_DB_Sending_Queue {
120
  return $emails;
121
  }
122
 
123
-
124
 
125
  public static function do_batch_insert( $delivery_data ) {
126
 
@@ -149,8 +177,8 @@ class ES_DB_Sending_Queue {
149
  $data['contact_id'] = $contact_id;
150
  $data['email'] = $email;
151
  $data['contact_hash'] = $subscriber['hash'];
152
- $data = wp_parse_args( $data, self::get_column_defaults() );
153
- $formats = array();
154
  foreach ( $columns as $column => $format ) {
155
  $values[] = $data[ $column ];
156
  $formats[] = $format;
@@ -256,4 +284,14 @@ class ES_DB_Sending_Queue {
256
  }
257
  }
258
 
 
 
 
 
 
 
 
 
 
 
259
  }
74
 
75
  $updated = false;
76
  if ( ! empty( $id_str ) ) {
77
+ $sql = "UPDATE " . IG_SENDING_QUEUE_TABLE . " SET status = %s";
78
 
79
+ if ( 'Sent' === $status ) {
80
  $current_time = ig_get_current_date_time();
81
+ $sql .= ", sent_at = '{$current_time}' ";
82
  }
83
 
84
  $sql .= " WHERE id IN ($id_str)";
92
  }
93
 
94
  /* count cron email */
95
+ public static function get_total_emails_to_be_sent_by_hash( $notification_hash = '' ) {
96
 
97
  global $wpdb;
98
 
99
  $result = 0;
100
+ if ( ! empty( $notification_hash ) ) {
101
  $query = $wpdb->prepare( "SELECT COUNT(*) AS count
102
  FROM " . IG_SENDING_QUEUE_TABLE . "
103
  WHERE mailing_queue_hash = %s AND status = %s", array( $notification_hash, "In Queue" ) );
108
 
109
  }
110
 
111
+ public static function get_total_emails_to_be_sent() {
112
+
113
+ global $wpdb;
114
+
115
+ $query = $wpdb->prepare( "SELECT COUNT(*) AS count
116
+ FROM " . IG_SENDING_QUEUE_TABLE . "
117
+ WHERE status = %s", array( "In Queue" ) );
118
+ $result = $wpdb->get_var( $query );
119
+
120
+ return $result;
121
+
122
+ }
123
+
124
+ public static function get_total_emails_sent_by_hash( $notification_hash ) {
125
+
126
+ global $wpdb;
127
+
128
+ $result = 0;
129
+ if ( $notification_hash != "" ) {
130
+ $query = $wpdb->prepare( "SELECT COUNT(*) AS count
131
+ FROM " . IG_SENDING_QUEUE_TABLE . "
132
+ WHERE mailing_queue_hash = %s AND status = %s", array( $notification_hash, "Sent" ) );
133
+ $result = $wpdb->get_var( $query );
134
+ }
135
+
136
+ return $result;
137
+
138
+ }
139
+
140
  public static function get_emails_by_hash( $notification_hash ) {
141
  global $wpdb;
142
 
149
  return $emails;
150
  }
151
 
 
152
 
153
  public static function do_batch_insert( $delivery_data ) {
154
 
177
  $data['contact_id'] = $contact_id;
178
  $data['email'] = $email;
179
  $data['contact_hash'] = $subscriber['hash'];
180
+ $data = wp_parse_args( $data, self::get_column_defaults() );
181
+ $formats = array();
182
  foreach ( $columns as $column => $format ) {
183
  $values[] = $data[ $column ];
184
  $formats[] = $format;
284
  }
285
  }
286
 
287
+ public static function delete_sending_queue_by_mailing_id( $mailing_queue_ids ){
288
+ global $wpdb;
289
+
290
+ $mailing_queue_ids = implode( ',', array_map( 'absint', $mailing_queue_ids ) );
291
+
292
+ $query = "DELETE FROM " . IG_SENDING_QUEUE_TABLE . " WHERE mailing_queue_id IN ($mailing_queue_ids)";
293
+
294
+ $wpdb->query( $query );
295
+ }
296
+
297
  }
includes/es-backward.php CHANGED
@@ -9,38 +9,51 @@ class es_cls_dbquery {
9
 
10
  public static function es_view_subscriber_group() {
11
  $res = ES_DB_Lists::get_list_id_name_map();
12
- foreach ($res as $id => $name) {
13
- $list['id'] = $id;
14
  $list['es_email_group'] = $name;
15
- $es_lists[] = $list;
16
  }
 
17
  return $es_lists;
18
  }
19
 
20
- public static function es_view_subscriber_ins($data = array(), $action = "insert") {
 
 
 
 
 
 
 
 
 
 
 
21
  $sub_data = array(
22
- 'first_name' => $data['es_email_name'],
23
- 'email' => $data['es_email_mail'],
 
24
  'source' => 'api',
25
  'status' => 'verified',
26
  'hash' => ES_Common::generate_guid(),
27
  'created_at' => ig_get_current_date_time(),
28
  );
29
 
30
- $added = ES_DB_Contacts::add_subscriber( $sub_data );
31
- $optin_type = get_option( 'ig_es_optin_type', true);
32
- $optin_type = ( $optin_type === 'double_opt_in') ? 2 : 1;
33
- $list_data = ES_DB_Lists::get_list_by_name( $data['es_email_group'] );
34
- $list_id = ! empty( $list_data['id'] ) ? $list_data['id'] : 1;
35
  $list_contact_data = array(
36
- 'list_id' => array($list_id),
37
- 'contact_id' => $added,
38
- 'status' => 'subscribed',
39
- 'optin_type' => $optin_type,
40
  'subscribed_at' => ig_get_current_date_time(),
41
  'subscribed_ip' => ES_Subscription_Throttaling::getUserIP()
42
- );
43
- $result = ES_DB_Lists_Contacts::add_lists_contacts( $list_contact_data );
44
 
45
  }
46
 
9
 
10
  public static function es_view_subscriber_group() {
11
  $res = ES_DB_Lists::get_list_id_name_map();
12
+ foreach ( $res as $id => $name ) {
13
+ $list['id'] = $id;
14
  $list['es_email_group'] = $name;
15
+ $es_lists[] = $list;
16
  }
17
+
18
  return $es_lists;
19
  }
20
 
21
+ public static function es_view_subscriber_ins( $data = array(), $action = "insert" ) {
22
+
23
+ $last_name = '';
24
+ if ( ! empty( $data['es_email_name'] ) ) {
25
+ $name = trim( $data['es_email_name'] );
26
+ $name_parts = ES_Common::prepare_first_name_last_name( $name );
27
+ $first_name = $name_parts['first_name'];
28
+ $last_name = $name_parts['last_name'];
29
+ } else {
30
+ $first_name = ES_Common::get_name_from_email( $data['es_email_mail'] );
31
+ }
32
+
33
  $sub_data = array(
34
+ 'first_name' => $first_name,
35
+ 'last_name' => $last_name,
36
+ 'email' => $data['es_email_mail'],
37
  'source' => 'api',
38
  'status' => 'verified',
39
  'hash' => ES_Common::generate_guid(),
40
  'created_at' => ig_get_current_date_time(),
41
  );
42
 
43
+ $added = ES_DB_Contacts::add_subscriber( $sub_data );
44
+ $optin_type = get_option( 'ig_es_optin_type', true );
45
+ $optin_type = ( $optin_type === 'double_opt_in' ) ? 2 : 1;
46
+ $list_data = ES_DB_Lists::get_list_by_name( $data['es_email_group'] );
47
+ $list_id = ! empty( $list_data['id'] ) ? $list_data['id'] : 1;
48
  $list_contact_data = array(
49
+ 'list_id' => array( $list_id ),
50
+ 'contact_id' => $added,
51
+ 'status' => 'subscribed',
52
+ 'optin_type' => $optin_type,
53
  'subscribed_at' => ig_get_current_date_time(),
54
  'subscribed_ip' => ES_Subscription_Throttaling::getUserIP()
55
+ );
56
+ $result = ES_DB_Lists_Contacts::add_lists_contacts( $list_contact_data );
57
 
58
  }
59
 
includes/upgrade/es-update-functions.php CHANGED
@@ -401,7 +401,7 @@ function ig_es_update_3516_create_subscribers_ips_table() {
401
  global $wpdb;
402
 
403
  $charset_collate = $wpdb->get_charset_collate();
404
- $es_subscriber_ips_table = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}_ig_contacts_ips (
405
  ip varchar(45) NOT NULL,
406
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
407
  PRIMARY KEY (created_at, ip),
@@ -567,4 +567,37 @@ function ig_es_update_402_db_version() {
567
  $logger->info( 'Run ig_es_update_402_db_version' );
568
  }
569
 
570
- /* --------------------- ES 4.0.2(End)--------------------------- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  global $wpdb;
402
 
403
  $charset_collate = $wpdb->get_charset_collate();
404
+ $es_subscriber_ips_table = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}es_subscriber_ips (
405
  ip varchar(45) NOT NULL,
406
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
407
  PRIMARY KEY (created_at, ip),
567
  $logger->info( 'Run ig_es_update_402_db_version' );
568
  }
569
 
570
+ /* --------------------- ES 4.0.2(End)--------------------------- */
571
+
572
+ 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' );
584
+ }
585
+
586
+ function ig_es_update_403_alter_mailing_queue_table() {
587
+ global $wpdb;
588
+
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() {
596
+ ES_Install::update_db_version( '4.0.3' );
597
+ $db_update_option = '403_db_updated_at';
598
+ ES_Common::set_ig_option( $db_update_option, ig_get_current_date_time() );
599
+ $logger = get_ig_logger();
600
+ $logger->info( 'Run ig_es_update_403_db_version' );
601
+ }
602
+
603
+ /* --------------------- ES 4.0.3(End)--------------------------- */
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-04 13:07+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"
@@ -26,20 +26,18 @@ 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:450
30
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:467
31
  msgid "Subscribed"
32
  msgstr ""
33
 
34
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:90
35
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:468
36
  msgid "Unconfirmed"
37
  msgstr ""
38
 
39
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:91
40
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
41
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:452
42
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:469
43
  msgid "Unsubscribed"
44
  msgstr ""
45
 
@@ -55,81 +53,80 @@ msgstr ""
55
  msgid "Send email via cron job"
56
  msgstr ""
57
 
58
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:117
59
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:228
60
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:266
61
  msgid "Select Status"
62
  msgstr ""
63
 
64
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:229
65
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:752
66
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:561
 
67
  msgid "Enable"
68
  msgstr ""
69
 
70
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:230
71
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:753
72
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:562
 
73
  msgid "Disable"
74
  msgstr ""
75
 
76
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:269
77
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:121
78
  msgid "Select Template"
79
  msgstr ""
80
 
81
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:298
82
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:187
83
  msgid "Active"
84
  msgstr ""
85
 
86
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:299
87
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:187
88
  msgid "Inactive"
89
  msgstr ""
90
 
91
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:385
92
  msgid "No Custom Post Types Available"
93
  msgstr ""
94
 
95
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:406
96
  msgid "Single Opt-In"
97
  msgstr ""
98
 
99
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:407
100
  msgid "Double Opt-In"
101
  msgstr ""
102
 
103
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:415
104
  msgid "Full Size"
105
  msgstr ""
106
 
107
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:416
108
  msgid "Medium Size"
109
  msgstr ""
110
 
111
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:417
112
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:192
113
  msgid "Thumbnail"
114
  msgstr ""
115
 
116
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:109
117
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:372
118
  msgid "Please enter email address"
119
  msgstr ""
120
 
121
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:110
122
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:373
123
  msgid "You need to wait for sometime before subscribing again"
124
  msgstr ""
125
 
126
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:111
127
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:374
128
  msgid "Successfully Subscribed."
129
  msgstr ""
130
 
131
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:112
132
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:375
133
  msgid ""
134
  "Your subscription was successful! Kindly check your mailbox and confirm your "
135
  "subscription. If you don't see the email within a few minutes, check the "
@@ -137,22 +134,22 @@ msgid ""
137
  msgstr ""
138
 
139
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:113
140
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:376
141
  msgid "Email Address already exists!"
142
  msgstr ""
143
 
144
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:114
145
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:377
146
  msgid "Oops.. Unexpected error occurred."
147
  msgstr ""
148
 
149
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:115
150
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:378
151
  msgid "Invalid email address"
152
  msgstr ""
153
 
154
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:116
155
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:380
156
  msgid "Please try after some time"
157
  msgstr ""
158
 
@@ -622,23 +619,23 @@ msgid "Forms"
622
  msgstr ""
623
 
624
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:83
625
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:227
626
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:41
627
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:54
628
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:76
629
  msgid "Campaigns"
630
  msgstr ""
631
 
632
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:84
633
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:288
634
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:66
 
635
  msgid "Lists"
636
  msgstr ""
637
 
638
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:85
639
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:20
640
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:43
641
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:69
642
  msgid "Reports"
643
  msgstr ""
644
 
@@ -719,477 +716,302 @@ msgstr ""
719
  msgid "Version: %s"
720
  msgstr ""
721
 
722
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:85
723
- msgid "You do not have permission to edit this form."
 
724
  msgstr ""
725
 
726
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:88
727
- msgid "Please add form name."
728
  msgstr ""
729
 
730
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:93
731
- msgid "Please select list(s) in which contact will be subscribed."
732
  msgstr ""
733
 
734
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:138
735
- msgid "Form has been added successfully!"
736
  msgstr ""
737
 
738
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:181
739
- msgid "Form has been updated successfully!"
740
  msgstr ""
741
 
742
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:190
743
- msgid "Sorry, form not found"
744
  msgstr ""
745
 
746
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:224
747
- msgid "New Form"
 
 
 
748
  msgstr ""
749
 
750
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:226
751
- msgid "Edit Form"
 
 
 
 
 
752
  msgstr ""
753
 
754
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:243
755
- msgid "Form Name"
756
  msgstr ""
757
 
758
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:251
759
- msgid "Description"
 
 
 
760
  msgstr ""
761
 
762
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:259
763
- msgid "Form Fields"
 
 
764
  msgstr ""
765
 
766
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:264
767
- msgid "Field"
 
768
  msgstr ""
769
 
770
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:265
771
- msgid "Show?"
772
  msgstr ""
773
 
774
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:266
775
- msgid "Required?"
 
776
  msgstr ""
777
 
778
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:269
779
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:84
780
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:144
781
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:223
782
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:363
783
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:533
784
- msgid "Email"
785
  msgstr ""
786
 
787
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:274
788
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:633
789
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:223
790
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:425
791
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:135
792
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:138
793
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:222
794
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:359
795
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:532
796
- #: ../../../../wpRepos/gitlab/email-subscribers/public/partials/class-es-shortcode.php:136
797
- msgid "Name"
798
  msgstr ""
799
 
800
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:289
801
- msgid "Contacts will be added into selected list(s)"
802
  msgstr ""
803
 
804
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:307
805
- msgid "Allow contact to choose list(s)"
806
  msgstr ""
807
 
808
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:308
809
- msgid "Allow contacts to choose list(s) in which they want to subscribe."
 
 
 
 
810
  msgstr ""
811
 
812
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:313
813
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:108
814
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:354
815
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
816
- msgid "Yes"
817
  msgstr ""
818
 
819
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:317
820
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:83
821
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:107
822
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:355
823
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:58
824
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
825
- msgid "No"
 
 
 
 
826
  msgstr ""
827
 
 
 
 
 
 
 
828
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:634
829
- msgid "Shortcode"
 
 
 
830
  msgstr ""
831
 
832
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:635
833
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:428
834
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:536
835
- msgid "Created"
 
 
 
836
  msgstr ""
837
 
838
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:662
839
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:455
840
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:566
841
- msgid "Delete"
842
  msgstr ""
843
 
844
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:708
845
- msgid "You do not have permission to delete this form."
 
846
  msgstr ""
847
 
848
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:715
849
- msgid "Form has been deleted successfully!"
850
  msgstr ""
851
 
852
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:729
853
- msgid "Form(s) have been deleted successfully!"
 
854
  msgstr ""
855
 
856
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:732
857
- msgid "Please select form(s) to delete."
858
  msgstr ""
859
 
860
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:765
861
- msgid "No Forms avaliable."
862
  msgstr ""
863
 
864
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:19
865
- msgid "Report"
866
  msgstr ""
867
 
868
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:85
869
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:242
870
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:224
871
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:534
872
- msgid "Status"
873
  msgstr ""
874
 
875
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:86
876
- msgid "Sent Date"
877
  msgstr ""
878
 
879
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:87
880
- msgid "Viewed Status"
881
  msgstr ""
882
 
883
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:88
884
- msgid "Viewed Date"
885
  msgstr ""
886
 
887
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:141
888
- msgid "Viewed"
889
  msgstr ""
890
 
891
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:141
892
- msgid "No Data"
893
  msgstr ""
894
 
895
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:154
896
- msgid "No Reports avaliable."
897
  msgstr ""
898
 
899
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:174
900
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:190
901
- msgid "Broadcast"
902
  msgstr ""
903
 
904
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:180
905
- msgid "Completed"
906
  msgstr ""
907
 
908
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:240
909
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:298
910
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:326
911
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:371
912
- msgid "Subject"
913
  msgstr ""
914
 
915
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:241
916
- msgid "Type"
 
917
  msgstr ""
918
 
919
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:243
920
- msgid "Start Date"
921
  msgstr ""
922
 
923
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:244
924
- msgid "End Date"
925
  msgstr ""
926
 
927
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:245
928
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:60
929
- msgid "Total Contacts"
930
  msgstr ""
931
 
932
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:312
933
- msgid "You do not have permission to view notification"
 
 
934
  msgstr ""
935
 
936
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:324
937
- msgid "You do not have permission to delete notification"
 
 
938
  msgstr ""
939
 
940
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:328
941
- msgid "Notification has been deleted successfully!"
942
  msgstr ""
943
 
944
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:337
945
- msgid "You do not have permission to preview notification"
946
  msgstr ""
947
 
948
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:354
949
- msgid "Notifications have been deleted successfully"
950
  msgstr ""
951
 
952
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:375
953
- msgid "Preview Email"
954
  msgstr ""
955
 
956
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:376
957
- msgid "Help"
 
958
  msgstr ""
959
 
960
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:379
961
- msgid ""
962
- "This is how the email you sent may look. <br>Note: Different email services "
963
- "(like gmail, yahoo etc) display email content differently. So there could be "
964
- "a slight variation on how your customer will view the email content."
965
  msgstr ""
966
 
967
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-tools.php:53
968
- msgid "Please add email"
969
  msgstr ""
970
 
971
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-tools.php:160
972
- #, php-format
973
- msgid "Test email to %s"
 
974
  msgstr ""
975
 
976
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:15
977
- msgid "Import Subscribers"
978
- msgstr ""
979
-
980
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:109
981
- #, php-format
982
- msgid "Total %d Subscribers have been imported successfully"
983
- msgstr ""
984
-
985
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:113
986
- msgid "Error: Please Select List"
987
- msgstr ""
988
-
989
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:117
990
- msgid "Error: Please select status"
991
- msgstr ""
992
-
993
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:121
994
- msgid "Error: Please Upload only CSV File"
995
- msgstr ""
996
-
997
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:125
998
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:129
999
- msgid "Error: Please Upload File"
1000
- msgstr ""
1001
-
1002
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:148
1003
- msgid "Select CSV file"
1004
- msgstr ""
1005
-
1006
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:150
1007
- msgid "Check CSV structure"
1008
- msgstr ""
1009
-
1010
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:162
1011
- msgid "Select status"
1012
- msgstr ""
1013
-
1014
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:174
1015
- msgid "Select list"
1016
- msgstr ""
1017
-
1018
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:197
1019
- msgid "Audience > Import Contacts"
1020
- msgstr ""
1021
-
1022
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:198
1023
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:68
1024
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:103
1025
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:54
1026
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:120
1027
- msgid "Add New Contact"
1028
- msgstr ""
1029
-
1030
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:199
1031
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:69
1032
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:50
1033
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:55
1034
- msgid "Export Contacts"
1035
- msgstr ""
1036
-
1037
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:200
1038
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:212
1039
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:70
1040
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:105
1041
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:58
1042
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:121
1043
- msgid "Manage Lists"
1044
- msgstr ""
1045
-
1046
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:42
1047
- msgid "Audience > Lists"
1048
- msgstr ""
1049
-
1050
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:83
1051
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:502
1052
- msgid "You do not have permission to edit list"
1053
- msgstr ""
1054
-
1055
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:85
1056
- msgid "Please add list name"
1057
- msgstr ""
1058
-
1059
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:128
1060
- msgid "List have been added successfully"
1061
- msgstr ""
1062
-
1063
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:169
1064
- msgid "List have been updated successfully"
1065
- msgstr ""
1066
-
1067
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:206
1068
- msgid "Add New"
1069
- msgstr ""
1070
-
1071
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:208
1072
- msgid "Edit List"
1073
- msgstr ""
1074
-
1075
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:426
1076
- msgid "Active Contacts"
1077
- msgstr ""
1078
-
1079
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:427
1080
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:70
1081
- msgid "All Contacts"
1082
- msgstr ""
1083
-
1084
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:506
1085
- msgid "List have been edit successfully"
1086
- msgstr ""
1087
-
1088
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:518
1089
- msgid "You do not have permission to delete list"
1090
- msgstr ""
1091
-
1092
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:523
1093
- msgid "List have been deleted successfully"
1094
- msgstr ""
1095
-
1096
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:538
1097
- msgid "List(s) have been deleted successfully"
1098
- msgstr ""
1099
-
1100
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:541
1101
- msgid "Please select list"
1102
- msgstr ""
1103
-
1104
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:43
1105
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:752
1106
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:49
1107
- msgid "Please select list."
1108
- msgstr ""
1109
-
1110
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:51
1111
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:46
1112
- msgid "Please select template."
1113
- msgstr ""
1114
-
1115
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:59
1116
- msgid "Please select categories."
1117
- msgstr ""
1118
-
1119
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:78
1120
- msgid "Post notification has been added successfully!"
1121
- msgstr ""
1122
-
1123
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:184
1124
- msgid "Post notification has been updated successfully!"
1125
- msgstr ""
1126
-
1127
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:211
1128
- msgid "Campaigns > New Post Notification"
1129
- msgstr ""
1130
-
1131
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:214
1132
- msgid "Campigns > Edit Post Notification"
1133
- msgstr ""
1134
-
1135
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:231
1136
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:57
1137
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:77
1138
- msgid "Manage Templates"
1139
  msgstr ""
1140
 
1141
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:240
1142
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:133
 
1143
  msgid "Select List"
1144
  msgstr ""
1145
 
1146
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:241
1147
- msgid ""
1148
- "Contacts from the selected list will be notified about new post notification."
1149
- msgstr ""
1150
-
1151
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:252
1152
- msgid "Select template"
1153
- msgstr ""
1154
-
1155
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:253
1156
- msgid "Content of the selected template will be sent out as post notification."
1157
- msgstr ""
1158
-
1159
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:278
1160
- msgid "Select Post Category"
1161
- msgstr ""
1162
-
1163
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:279
1164
- msgid ""
1165
- "Notification will be sent out when any post from selected categories will be "
1166
- "published."
1167
- msgstr ""
1168
-
1169
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:292
1170
- msgid "Select custom post type(s)"
1171
- msgstr ""
1172
-
1173
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:293
1174
- msgid ""
1175
- "(Optional) Select custom post type for which you want to send notification."
1176
- msgstr ""
1177
-
1178
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:19
1179
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:20
1180
- msgid "Campaign"
1181
- msgstr ""
1182
-
1183
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:55
1184
- msgid "Create Post Notification"
1185
  msgstr ""
1186
 
1187
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:56
1188
- msgid "Send Broadcast"
1189
  msgstr ""
1190
 
1191
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:163
1192
- msgid "No Post Notifications avaliable."
 
1193
  msgstr ""
1194
 
1195
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:12
@@ -1197,23 +1019,23 @@ msgstr ""
1197
  msgid "Sync"
1198
  msgstr ""
1199
 
1200
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:67
1201
  msgid "Audience > Sync Contacts"
1202
  msgstr ""
1203
 
1204
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:82
1205
  msgid "Please select List"
1206
  msgstr ""
1207
 
1208
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:102
1209
  msgid "Sync newly registered users to subscribers list"
1210
  msgstr ""
1211
 
1212
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:115
1213
  msgid "Select list to add newly registered users to"
1214
  msgstr ""
1215
 
1216
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:128
1217
  msgid "Sync Now"
1218
  msgstr ""
1219
 
@@ -1261,7 +1083,7 @@ msgid "Subscription Success/ Error Messages"
1261
  msgstr ""
1262
 
1263
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:204
1264
- msgid "You have been successfully subscribed."
1265
  msgstr ""
1266
 
1267
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:206
@@ -1325,6 +1147,13 @@ msgstr ""
1325
  msgid "Send welcome email to new contact after signup."
1326
  msgstr ""
1327
 
 
 
 
 
 
 
 
1328
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:308
1329
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:337
1330
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:379
@@ -1378,89 +1207,290 @@ msgid ""
1378
  "confirmed. Available Keywords: {{NAME}}, {{EMAIL}}, {{LIST}}"
1379
  msgstr ""
1380
 
1381
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:398
1382
  msgid "Cron URL"
1383
  msgstr ""
1384
 
1385
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:402
1386
  msgid "Maximum Emails Send In An Hour"
1387
  msgstr ""
1388
 
1389
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:402
1390
  msgid "Total emails your host can send in an hour."
1391
  msgstr ""
1392
 
1393
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:408
1394
  msgid "Blocked Domain(s)"
1395
  msgstr ""
1396
 
1397
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:410
1398
  msgid ""
1399
  "System won't allow email addresses which ends with any of domain availble in "
1400
  "above lists. Add list of domain(s) one per line to block."
1401
  msgstr ""
1402
 
1403
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:27
1404
- msgid "No data available"
 
1405
  msgstr ""
1406
 
1407
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:59
1408
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:21
1409
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:107
1410
- msgid "Contacts"
1411
  msgstr ""
1412
 
1413
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:61
1414
- msgid "Export"
1415
  msgstr ""
1416
 
1417
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:71
1418
- msgid "Subscribed Contacts"
1419
  msgstr ""
1420
 
1421
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:72
1422
- msgid "Unsubscribed Contacts"
 
1423
  msgstr ""
1424
 
1425
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:89
1426
- msgid "Download"
1427
  msgstr ""
1428
 
1429
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:102
1430
- msgid "Audience > Export Contacts"
1431
  msgstr ""
1432
 
1433
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:104
1434
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:56
1435
- msgid "Import Contacts"
1436
  msgstr ""
1437
 
1438
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:192
1439
- msgid "Export the Subscribers"
1440
  msgstr ""
1441
 
1442
- #. __( 'List', 'email-subscribers' ),
1443
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:225
1444
- msgid "Created On"
1445
  msgstr ""
1446
 
1447
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:379
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1448
  msgid "Invalid name"
1449
  msgstr ""
1450
 
1451
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:381
1452
  msgid "Oops...unable to add subscriber"
1453
  msgstr ""
1454
 
1455
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:382
1456
  msgid "You do not have permission to add subscriber"
1457
  msgstr ""
1458
 
1459
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:383
1460
  msgid "Please select the list"
1461
  msgstr ""
1462
 
1463
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:384
1464
  msgid "Invalid Captcha"
1465
  msgstr ""
1466
 
@@ -1484,104 +1514,60 @@ msgstr ""
1484
  msgid "Contact already exist."
1485
  msgstr ""
1486
 
1487
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:318
1488
  msgid "Contact updated successfully!"
1489
  msgstr ""
1490
 
1491
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:322
1492
  msgid "Edit Contact"
1493
  msgstr ""
1494
 
1495
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:352
1496
  msgid "No list found"
1497
  msgstr ""
1498
 
1499
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:367
1500
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:535
1501
  msgid "List(s)"
1502
  msgstr ""
1503
 
1504
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:567
1505
  msgid "Move To List"
1506
  msgstr ""
1507
 
1508
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:568
1509
  msgid "Change Status"
1510
  msgstr ""
1511
 
1512
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:645
1513
  msgid "Contact have been updated successfully!"
1514
  msgstr ""
1515
 
1516
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:662
 
1517
  msgid "Contact(s) have been deleted successfully!"
1518
  msgstr ""
1519
 
1520
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:708
1521
  msgid "Please select subscribers to update."
1522
  msgstr ""
1523
 
1524
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:720
1525
- msgid "Contacts(s) have been deleted successfully!"
1526
- msgstr ""
1527
-
1528
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:731
1529
  msgid "Please select status."
1530
  msgstr ""
1531
 
1532
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:741
1533
  msgid "Status has been changed successfully!"
1534
  msgstr ""
1535
 
1536
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:761
1537
  msgid "Contact(s) have been moved to list successfully!"
1538
  msgstr ""
1539
 
1540
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:771
1541
  msgid "No contacts avaliable."
1542
  msgstr ""
1543
 
1544
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:45
1545
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:49
1546
- msgid "Available Keywords"
1547
- msgstr ""
1548
-
1549
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:49
1550
- msgid "for Newsletter:"
1551
- msgstr ""
1552
-
1553
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:87
1554
- msgid "Preview Template"
1555
- msgstr ""
1556
-
1557
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:191
1558
- msgid "Template Type"
1559
- msgstr ""
1560
-
1561
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
1562
- msgid "Email Subscribers Widget"
1563
- msgstr ""
1564
-
1565
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
1566
- msgid "Email Subscribers"
1567
- msgstr ""
1568
-
1569
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-cron.php:158
1570
- msgid "Notification(s) have been sent successfully!"
1571
- msgstr ""
1572
-
1573
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:75
1574
- msgid "Campaigns > Broadcast"
1575
- msgstr ""
1576
-
1577
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:127
1578
- msgid "Content of the selected template will be broadcasted."
1579
- msgstr ""
1580
-
1581
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:139
1582
- msgid "Contacts from the selected list will be notified."
1583
- msgstr ""
1584
-
1585
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/class-es-admin-notices.php:97
1586
  msgid "Action failed. Please refresh the page and retry."
1587
  msgstr ""
@@ -1600,6 +1586,14 @@ msgstr ""
1600
  msgid "Email *"
1601
  msgstr ""
1602
 
 
 
 
 
 
 
 
 
1603
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/views/html-notice-update.php:19
1604
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/views/html-notice-updating.php:19
1605
  msgid "Email Subscribers data update"
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"
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
 
30
  msgid "Subscribed"
31
  msgstr ""
32
 
33
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:90
34
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:485
35
  msgid "Unconfirmed"
36
  msgstr ""
37
 
38
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:91
39
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
40
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:486
 
41
  msgid "Unsubscribed"
42
  msgstr ""
43
 
53
  msgid "Send email via cron job"
54
  msgstr ""
55
 
56
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:229
57
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:273
 
58
  msgid "Select Status"
59
  msgstr ""
60
 
61
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:230
 
62
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:561
63
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:754
64
  msgid "Enable"
65
  msgstr ""
66
 
67
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:231
 
68
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:562
69
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:755
70
  msgid "Disable"
71
  msgstr ""
72
 
73
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:270
74
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:121
75
  msgid "Select Template"
76
  msgstr ""
77
 
78
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:299
79
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:187
80
  msgid "Active"
81
  msgstr ""
82
 
83
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:300
84
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:187
85
  msgid "Inactive"
86
  msgstr ""
87
 
88
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:386
89
  msgid "No Custom Post Types Available"
90
  msgstr ""
91
 
92
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:407
93
  msgid "Single Opt-In"
94
  msgstr ""
95
 
96
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:408
97
  msgid "Double Opt-In"
98
  msgstr ""
99
 
100
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:416
101
  msgid "Full Size"
102
  msgstr ""
103
 
104
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:417
105
  msgid "Medium Size"
106
  msgstr ""
107
 
108
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:418
109
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:192
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"
116
  msgstr ""
117
 
118
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:110
119
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:378
120
  msgid "You need to wait for sometime before subscribing again"
121
  msgstr ""
122
 
123
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:111
124
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:379
125
  msgid "Successfully Subscribed."
126
  msgstr ""
127
 
128
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:112
129
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:380
130
  msgid ""
131
  "Your subscription was successful! Kindly check your mailbox and confirm your "
132
  "subscription. If you don't see the email within a few minutes, check the "
134
  msgstr ""
135
 
136
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:113
137
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:381
138
  msgid "Email Address already exists!"
139
  msgstr ""
140
 
141
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:114
142
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:382
143
  msgid "Oops.. Unexpected error occurred."
144
  msgstr ""
145
 
146
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:115
147
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:383
148
  msgid "Invalid email address"
149
  msgstr ""
150
 
151
  #: ../../../../wpRepos/gitlab/email-subscribers/public/class-email-subscribers-public.php:116
152
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:385
153
  msgid "Please try after some time"
154
  msgstr ""
155
 
619
  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
 
629
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:84
 
630
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:66
631
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:290
632
  msgid "Lists"
633
  msgstr ""
634
 
635
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:85
636
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:20
637
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:43
638
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:78
639
  msgid "Reports"
640
  msgstr ""
641
 
716
  msgid "Version: %s"
717
  msgstr ""
718
 
719
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:45
720
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:49
721
+ msgid "Available Keywords"
722
  msgstr ""
723
 
724
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:49
725
+ msgid "for Newsletter:"
726
  msgstr ""
727
 
728
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:87
729
+ msgid "Preview Template"
730
  msgstr ""
731
 
732
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-templates-table.php:191
733
+ msgid "Template Type"
734
  msgstr ""
735
 
736
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
737
+ msgid "Email Subscribers Widget"
738
  msgstr ""
739
 
740
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
741
+ msgid "Email Subscribers"
742
  msgstr ""
743
 
744
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
745
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:109
746
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:354
747
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:315
748
+ msgid "Yes"
749
  msgstr ""
750
 
751
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
752
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:58
753
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:108
754
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:355
755
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:319
756
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:92
757
+ msgid "No"
758
  msgstr ""
759
 
760
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:27
761
+ msgid "No data available"
762
  msgstr ""
763
 
764
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:50
765
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:199
766
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:70
767
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:55
768
+ msgid "Export Contacts"
769
  msgstr ""
770
 
771
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:59
772
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:21
773
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:107
774
+ msgid "Contacts"
775
  msgstr ""
776
 
777
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:60
778
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:259
779
+ msgid "Total Contacts"
780
  msgstr ""
781
 
782
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:61
783
+ msgid "Export"
784
  msgstr ""
785
 
786
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:70
787
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:427
788
+ msgid "All Contacts"
789
  msgstr ""
790
 
791
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:71
792
+ msgid "Subscribed Contacts"
 
 
 
 
 
793
  msgstr ""
794
 
795
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:72
796
+ msgid "Unsubscribed Contacts"
 
 
 
 
 
 
 
 
 
797
  msgstr ""
798
 
799
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:89
800
+ msgid "Download"
801
  msgstr ""
802
 
803
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:102
804
+ msgid "Audience > Export Contacts"
805
  msgstr ""
806
 
807
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:103
808
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:198
809
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:69
810
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:54
811
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:120
812
+ msgid "Add New Contact"
813
  msgstr ""
814
 
815
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:104
816
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:56
817
+ msgid "Import Contacts"
 
 
818
  msgstr ""
819
 
820
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:105
821
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:200
822
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:212
823
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:71
824
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:58
825
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:121
826
+ msgid "Manage Lists"
827
+ msgstr ""
828
+
829
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:192
830
+ msgid "Export the Subscribers"
831
  msgstr ""
832
 
833
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:222
834
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:223
835
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:425
836
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:135
837
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:138
838
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:276
839
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:634
840
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:365
841
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:549
842
+ #: ../../../../wpRepos/gitlab/email-subscribers/public/partials/class-es-shortcode.php:136
843
+ msgid "Name"
844
  msgstr ""
845
 
846
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:223
847
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:144
848
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:271
849
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:93
850
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:369
851
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:550
852
+ msgid "Email"
853
  msgstr ""
854
 
855
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:224
856
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:94
857
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:256
858
+ msgid "Status"
859
  msgstr ""
860
 
861
+ #. __( 'List', 'email-subscribers' ),
862
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:225
863
+ msgid "Created On"
864
  msgstr ""
865
 
866
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:15
867
+ msgid "Import Subscribers"
868
  msgstr ""
869
 
870
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:109
871
+ #, php-format
872
+ msgid "Total %d Subscribers have been imported successfully"
873
  msgstr ""
874
 
875
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:113
876
+ msgid "Error: Please Select List"
877
  msgstr ""
878
 
879
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:117
880
+ msgid "Error: Please select status"
881
  msgstr ""
882
 
883
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:121
884
+ msgid "Error: Please Upload only CSV File"
885
  msgstr ""
886
 
887
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:125
888
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:129
889
+ msgid "Error: Please Upload File"
 
 
890
  msgstr ""
891
 
892
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:148
893
+ msgid "Select CSV file"
894
  msgstr ""
895
 
896
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:150
897
+ msgid "Check CSV structure"
898
  msgstr ""
899
 
900
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:162
901
+ msgid "Select status"
902
  msgstr ""
903
 
904
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:174
905
+ msgid "Select list"
906
  msgstr ""
907
 
908
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-import-subscribers.php:197
909
+ msgid "Audience > Import Contacts"
910
  msgstr ""
911
 
912
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:42
913
+ msgid "Audience > Lists"
914
  msgstr ""
915
 
916
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:83
917
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:502
918
+ msgid "You do not have permission to edit list"
919
  msgstr ""
920
 
921
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:85
922
+ msgid "Please add list name"
923
  msgstr ""
924
 
925
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:128
926
+ msgid "List has been added successfully!"
 
 
 
927
  msgstr ""
928
 
929
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:169
930
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:506
931
+ msgid "List has been updated successfully!"
932
  msgstr ""
933
 
934
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:206
935
+ msgid "Add New"
936
  msgstr ""
937
 
938
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:208
939
+ msgid "Edit List"
940
  msgstr ""
941
 
942
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:426
943
+ msgid "Active Contacts"
 
944
  msgstr ""
945
 
946
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:428
947
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:636
948
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:552
949
+ msgid "Created"
950
  msgstr ""
951
 
952
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:455
953
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:663
954
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:582
955
+ msgid "Delete"
956
  msgstr ""
957
 
958
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:518
959
+ msgid "You do not have permission to delete list"
960
  msgstr ""
961
 
962
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:523
963
+ msgid "List has been deleted successfully!"
964
  msgstr ""
965
 
966
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:538
967
+ msgid "List(s) have been deleted successfully"
968
  msgstr ""
969
 
970
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:541
971
+ msgid "Please select list"
972
  msgstr ""
973
 
974
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:46
975
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:51
976
+ msgid "Please select template."
977
  msgstr ""
978
 
979
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:49
980
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:43
981
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:774
982
+ msgid "Please select list."
 
983
  msgstr ""
984
 
985
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:75
986
+ 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
 
995
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:127
996
+ msgid "Content of the selected template will be broadcasted."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
997
  msgstr ""
998
 
 
999
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:133
1000
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:247
1001
  msgid "Select List"
1002
  msgstr ""
1003
 
1004
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:139
1005
+ msgid "Contacts from the selected list will be notified."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1006
  msgstr ""
1007
 
1008
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-tools.php:53
1009
+ msgid "Please add email"
1010
  msgstr ""
1011
 
1012
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-tools.php:160
1013
+ #, php-format
1014
+ msgid "Test email to %s"
1015
  msgstr ""
1016
 
1017
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:12
1019
  msgid "Sync"
1020
  msgstr ""
1021
 
1022
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:68
1023
  msgid "Audience > Sync Contacts"
1024
  msgstr ""
1025
 
1026
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:83
1027
  msgid "Please select List"
1028
  msgstr ""
1029
 
1030
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:103
1031
  msgid "Sync newly registered users to subscribers list"
1032
  msgstr ""
1033
 
1034
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:116
1035
  msgid "Select list to add newly registered users to"
1036
  msgstr ""
1037
 
1038
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:129
1039
  msgid "Sync Now"
1040
  msgstr ""
1041
 
1083
  msgstr ""
1084
 
1085
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:204
1086
+ msgid "You have been subscribed successfully!"
1087
  msgstr ""
1088
 
1089
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:206
1147
  msgid "Send welcome email to new contact after signup."
1148
  msgstr ""
1149
 
1150
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:298
1151
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:326
1152
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:371
1153
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:254
1154
+ msgid "Subject"
1155
+ msgstr ""
1156
+
1157
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:308
1158
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:337
1159
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:379
1207
  "confirmed. Available Keywords: {{NAME}}, {{EMAIL}}, {{LIST}}"
1208
  msgstr ""
1209
 
1210
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:396
1211
  msgid "Cron URL"
1212
  msgstr ""
1213
 
1214
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:407
1215
  msgid "Maximum Emails Send In An Hour"
1216
  msgstr ""
1217
 
1218
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:408
1219
  msgid "Total emails your host can send in an hour."
1220
  msgstr ""
1221
 
1222
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:415
1223
  msgid "Blocked Domain(s)"
1224
  msgstr ""
1225
 
1226
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:417
1227
  msgid ""
1228
  "System won't allow email addresses which ends with any of domain availble in "
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 ""
1257
 
1258
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:88
1259
+ msgid "Please add form name."
1260
  msgstr ""
1261
 
1262
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:93
1263
+ msgid "Please select list(s) in which contact will be subscribed."
 
1264
  msgstr ""
1265
 
1266
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:138
1267
+ msgid "Form has been added successfully!"
1268
  msgstr ""
1269
 
1270
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:183
1271
+ msgid "Form has been updated successfully!"
 
1272
  msgstr ""
1273
 
1274
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:192
1275
+ msgid "Sorry, form not found"
1276
+ msgstr ""
1277
+
1278
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:226
1279
+ msgid "New Form"
1280
+ msgstr ""
1281
+
1282
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:228
1283
+ msgid "Edit Form"
1284
+ msgstr ""
1285
+
1286
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:245
1287
+ msgid "Form Name"
1288
+ msgstr ""
1289
+
1290
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:253
1291
+ msgid "Description"
1292
+ msgstr ""
1293
+
1294
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:261
1295
+ msgid "Form Fields"
1296
+ msgstr ""
1297
+
1298
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:266
1299
+ msgid "Field"
1300
+ msgstr ""
1301
+
1302
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:267
1303
+ msgid "Show?"
1304
+ msgstr ""
1305
+
1306
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:268
1307
+ msgid "Required?"
1308
+ msgstr ""
1309
+
1310
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:291
1311
+ msgid "Contacts will be added into selected list(s)"
1312
+ msgstr ""
1313
+
1314
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:309
1315
+ msgid "Allow contact to choose list(s)"
1316
+ msgstr ""
1317
+
1318
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:310
1319
+ msgid "Allow contacts to choose list(s) in which they want to subscribe."
1320
+ msgstr ""
1321
+
1322
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:635
1323
+ msgid "Shortcode"
1324
+ msgstr ""
1325
+
1326
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:709
1327
+ msgid "You do not have permission to delete this form."
1328
+ msgstr ""
1329
+
1330
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:716
1331
+ msgid "Form has been deleted successfully!"
1332
+ msgstr ""
1333
+
1334
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:731
1335
+ msgid "Form(s) have been deleted successfully!"
1336
+ msgstr ""
1337
+
1338
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:734
1339
+ msgid "Please select form(s) to delete."
1340
+ msgstr ""
1341
+
1342
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:767
1343
+ msgid "No Forms avaliable."
1344
+ msgstr ""
1345
+
1346
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:59
1347
+ msgid "Please select categories."
1348
+ msgstr ""
1349
+
1350
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:78
1351
+ msgid "Post notification has been added successfully!"
1352
+ msgstr ""
1353
+
1354
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:191
1355
+ msgid "Post notification has been updated successfully!"
1356
+ msgstr ""
1357
+
1358
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:218
1359
+ msgid "Campaigns > New Post Notification"
1360
+ msgstr ""
1361
+
1362
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:221
1363
+ msgid "Campigns > Edit Post Notification"
1364
+ msgstr ""
1365
+
1366
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:248
1367
+ msgid ""
1368
+ "Contacts from the selected list will be notified about new post notification."
1369
+ msgstr ""
1370
+
1371
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:259
1372
+ msgid "Select template"
1373
+ msgstr ""
1374
+
1375
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:260
1376
+ msgid "Content of the selected template will be sent out as post notification."
1377
+ msgstr ""
1378
+
1379
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:285
1380
+ msgid "Select Post Category"
1381
+ msgstr ""
1382
+
1383
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:286
1384
+ msgid ""
1385
+ "Notification will be sent out when any post from selected categories will be "
1386
+ "published."
1387
+ msgstr ""
1388
+
1389
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:299
1390
+ msgid "Select custom post type(s)"
1391
+ msgstr ""
1392
+
1393
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:300
1394
+ msgid ""
1395
+ "(Optional) Select custom post type for which you want to send notification."
1396
+ msgstr ""
1397
+
1398
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:19
1399
+ msgid "Report"
1400
+ msgstr ""
1401
+
1402
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:95
1403
+ msgid "Sent Date"
1404
+ msgstr ""
1405
+
1406
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:96
1407
+ msgid "Viewed Status"
1408
+ msgstr ""
1409
+
1410
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:97
1411
+ msgid "Viewed Date"
1412
+ msgstr ""
1413
+
1414
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:150
1415
+ msgid "Viewed"
1416
+ msgstr ""
1417
+
1418
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:150
1419
+ msgid "No Data"
1420
+ msgstr ""
1421
+
1422
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:163
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 ""
1429
+
1430
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:255
1431
+ msgid "Type"
1432
+ msgstr ""
1433
+
1434
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:257
1435
+ msgid "Start Date"
1436
+ msgstr ""
1437
+
1438
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:258
1439
+ msgid "End Date"
1440
+ msgstr ""
1441
+
1442
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:357
1443
+ msgid "You do not have permission to view notification"
1444
+ msgstr ""
1445
+
1446
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:369
1447
+ msgid "You do not have permission to delete notification"
1448
+ msgstr ""
1449
+
1450
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:374
1451
+ msgid "Notification has been deleted successfully!"
1452
+ msgstr ""
1453
+
1454
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:383
1455
+ msgid "You do not have permission to preview notification"
1456
+ msgstr ""
1457
+
1458
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:401
1459
+ msgid "Notifications have been deleted successfully"
1460
+ msgstr ""
1461
+
1462
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:422
1463
+ msgid "Preview Email"
1464
+ msgstr ""
1465
+
1466
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:423
1467
+ msgid "Help"
1468
+ msgstr ""
1469
+
1470
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:426
1471
+ msgid ""
1472
+ "This is how the email you sent may look. <br>Note: Different email services "
1473
+ "(like gmail, yahoo etc) display email content differently. So there could be "
1474
+ "a slight variation on how your customer will view the email content."
1475
+ msgstr ""
1476
+
1477
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:384
1478
  msgid "Invalid name"
1479
  msgstr ""
1480
 
1481
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:386
1482
  msgid "Oops...unable to add subscriber"
1483
  msgstr ""
1484
 
1485
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:387
1486
  msgid "You do not have permission to add subscriber"
1487
  msgstr ""
1488
 
1489
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:388
1490
  msgid "Please select the list"
1491
  msgstr ""
1492
 
1493
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-subscription.php:389
1494
  msgid "Invalid Captcha"
1495
  msgstr ""
1496
 
1514
  msgid "Contact already exist."
1515
  msgstr ""
1516
 
1517
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:322
1518
  msgid "Contact updated successfully!"
1519
  msgstr ""
1520
 
1521
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:327
1522
  msgid "Edit Contact"
1523
  msgstr ""
1524
 
1525
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:358
1526
  msgid "No list found"
1527
  msgstr ""
1528
 
1529
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:373
1530
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:551
1531
  msgid "List(s)"
1532
  msgstr ""
1533
 
1534
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:583
1535
  msgid "Move To List"
1536
  msgstr ""
1537
 
1538
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:584
1539
  msgid "Change Status"
1540
  msgstr ""
1541
 
1542
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:667
1543
  msgid "Contact have been updated successfully!"
1544
  msgstr ""
1545
 
1546
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:684
1547
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:742
1548
  msgid "Contact(s) have been deleted successfully!"
1549
  msgstr ""
1550
 
1551
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:730
1552
  msgid "Please select subscribers to update."
1553
  msgstr ""
1554
 
1555
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:753
 
 
 
 
1556
  msgid "Please select status."
1557
  msgstr ""
1558
 
1559
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:763
1560
  msgid "Status has been changed successfully!"
1561
  msgstr ""
1562
 
1563
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:783
1564
  msgid "Contact(s) have been moved to list successfully!"
1565
  msgstr ""
1566
 
1567
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:793
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 ""
1586
  msgid "Email *"
1587
  msgstr ""
1588
 
1589
+ #: ../../../../wpRepos/gitlab/email-subscribers/public/partials/cron-message.php:33
1590
+ msgid "Total Emails Sent"
1591
+ msgstr ""
1592
+
1593
+ #: ../../../../wpRepos/gitlab/email-subscribers/public/partials/cron-message.php:37
1594
+ msgid "Total Emails In Queue"
1595
+ msgstr ""
1596
+
1597
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/views/html-notice-update.php:19
1598
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/notices/views/html-notice-updating.php:19
1599
  msgid "Email Subscribers data update"
public/js/email-subscribers-public.js CHANGED
@@ -63,45 +63,76 @@
63
  var messageContainer = $(form).next('.es_subscription_message');
64
  messageContainer.attr('class', 'es_subscription_message ' + message_class);
65
  messageContainer.html(responseText);
 
 
 
 
 
 
 
 
 
 
66
  }
67
 
68
- $(document).ready(function () {
69
-
70
- // var submitButton = $('.es_subscription_form_submit');
71
-
72
- $(document).on('submit', '.es_subscription_form', function (e) {
73
- var form = $(this);
74
- var formData = {};
75
- formData = prepareFormData(form, formData);
76
- formData['es'] = 'subscribe';
77
- formData['action'] = 'es_add_subscriber';
78
- var actionUrl = es_data.es_ajax_url;
79
- jQuery(form).find('#spinner-image').show();
80
- $.ajax({
81
- type: 'POST',
82
- url: actionUrl,
83
- data: formData,
84
- dataType: 'json',
85
- success: function (response) {
86
  if( response && typeof response.status !== 'undefined' && response.status === "SUCCESS" ) {
87
  jQuery(form).slideUp('slow');
88
  jQuery(form).hide();
89
  } else {
90
  jQuery(form).find('#spinner-image').hide();
91
  }
92
- jQuery(window).trigger('es.send_response', [jQuery(form) , response]);
93
- handleResponse(response, form);
94
- },
95
- error: function (err) {
96
- jQuery(form).find('#spinner-image').hide();
97
- console.log(err, 'error');
98
- },
99
- });
 
 
 
 
 
100
 
 
101
 
102
- return false;
 
 
 
 
 
103
  });
104
 
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  });
107
  })(jQuery);
63
  var messageContainer = $(form).next('.es_subscription_message');
64
  messageContainer.attr('class', 'es_subscription_message ' + message_class);
65
  messageContainer.html(responseText);
66
+ var esSuccessEvent = {
67
+ detail: {
68
+ es_response : message_class,
69
+ msg: responseText
70
+ },
71
+ bubbles: true,
72
+ cancelable: true
73
+ } ;
74
+
75
+ jQuery(form).trigger('es_response', [ esSuccessEvent ]);
76
  }
77
 
78
+ function handleBindFunction(form, is_ig){
79
+ var is_ig = is_ig || false;
80
+ var formData = {};
81
+ formData = prepareFormData(form, formData);
82
+ formData['es'] = 'subscribe';
83
+ formData['action'] = 'es_add_subscriber';
84
+ var actionUrl = es_data.es_ajax_url;
85
+ jQuery(form).find('#spinner-image').show();
86
+ $.ajax({
87
+ type: 'POST',
88
+ url: actionUrl,
89
+ data: formData,
90
+ dataType: 'json',
91
+ success: function (response) {
92
+ if(!is_ig){
 
 
 
93
  if( response && typeof response.status !== 'undefined' && response.status === "SUCCESS" ) {
94
  jQuery(form).slideUp('slow');
95
  jQuery(form).hide();
96
  } else {
97
  jQuery(form).find('#spinner-image').hide();
98
  }
99
+ }
100
+ jQuery(window).trigger('es.send_response', [jQuery(form) , response]);
101
+ handleResponse(response, form);
102
+ },
103
+ error: function (err) {
104
+ jQuery(form).find('#spinner-image').hide();
105
+ console.log(err, 'error');
106
+ },
107
+ });
108
+
109
+
110
+ return false;
111
+ }
112
 
113
+ $(document).ready(function () {
114
 
115
+ // var submitButton = $('.es_subscription_form_submit');
116
+
117
+ $(document).on('submit', '.es_subscription_form', function (e) {
118
+ e.preventDefault();
119
+ var form = $(this);
120
+ handleBindFunction(form);
121
  });
122
 
123
 
124
+ // Compatibility of ES with IG
125
+ jQuery( window ).on( "init.icegram", function(e, ig) {
126
+ if(typeof ig !== 'undefined' && typeof ig.messages !== 'undefined' ) {
127
+ jQuery('.icegram .es_shortcode_form, .icegram form[data-source="ig-es"]').each(function(i, v){
128
+ jQuery(v).bind('submit', function (e) {
129
+ e.preventDefault();
130
+ var form = $(this);
131
+ handleBindFunction(form, true);
132
+ });
133
+ });
134
+ }
135
+ });
136
+
137
  });
138
  })(jQuery);
public/partials/class-es-shortcode.php CHANGED
@@ -47,7 +47,7 @@ class ES_Shortcode {
47
  $data['desc'] = $atts['desc'];
48
 
49
  self::render_form( $data );
50
-
51
  return ob_get_clean();
52
  }
53
 
@@ -168,7 +168,7 @@ class ES_Shortcode {
168
  ?>
169
 
170
  <div class="emaillist">
171
- <form action="#" method="post" class="es_subscription_form" id="es_subscription_form_<?php echo $unique_id; ?>">
172
  <?php if ( $desc != "" ) { ?>
173
  <div class="es_caption"><?php echo $desc; ?></div>
174
  <?php } ?>
@@ -200,18 +200,21 @@ class ES_Shortcode {
200
  <?php
201
  }
202
 
203
- public static function prepare_lists_checkboxes( $lists, $list_ids = array(), $columns = 3, $selected_lists = array() ) {
204
-
205
  $lists_html = '<div><table><tr>';
206
  $i = 0;
207
  foreach ( $lists as $list_id => $list_name ) {
208
  if ( $i != 0 && ( $i % $columns ) === 0 ) {
209
  $lists_html .= "</tr><tr>";
210
  }
211
-
212
  if ( in_array( $list_id, $list_ids ) ) {
213
  if ( in_array( $list_id, $selected_lists ) ) {
214
- $lists_html .= '<td><label><input type="checkbox" name="lists[]" checked="checked" value="' . $list_id . '" />' . $list_name . '</label></td>';
 
 
 
 
215
  } else {
216
  $lists_html .= '<td><label><input type="checkbox" name="lists[]" value="' . $list_id . '" />' . $list_name . '</label></td>';
217
  }
47
  $data['desc'] = $atts['desc'];
48
 
49
  self::render_form( $data );
50
+
51
  return ob_get_clean();
52
  }
53
 
168
  ?>
169
 
170
  <div class="emaillist">
171
+ <form action="#" method="post" class="es_subscription_form es_shortcode_form" id="es_subscription_form_<?php echo $unique_id; ?>" data-source="ig-es" >
172
  <?php if ( $desc != "" ) { ?>
173
  <div class="es_caption"><?php echo $desc; ?></div>
174
  <?php } ?>
200
  <?php
201
  }
202
 
203
+ public static function prepare_lists_checkboxes( $lists, $list_ids = array(), $columns = 3, $selected_lists = array(), $contact_id = 0 ) {
 
204
  $lists_html = '<div><table><tr>';
205
  $i = 0;
206
  foreach ( $lists as $list_id => $list_name ) {
207
  if ( $i != 0 && ( $i % $columns ) === 0 ) {
208
  $lists_html .= "</tr><tr>";
209
  }
210
+ $status_span = '';
211
  if ( in_array( $list_id, $list_ids ) ) {
212
  if ( in_array( $list_id, $selected_lists ) ) {
213
+ if( !empty( $contact_id )){
214
+ $list_contact_status_map = ES_DB_Lists_Contacts::get_list_contact_status_map( $contact_id );
215
+ $status_span = '<span class="es_list_contact_status '.$list_contact_status_map[$list_id].'" title="'.ucwords($list_contact_status_map[$list_id]).'">';
216
+ }
217
+ $lists_html .= '<td>'.$status_span.'<label><input type="checkbox" name="lists[]" checked="checked" value="' . $list_id . '" />' . $list_name . '</label></td>';
218
  } else {
219
  $lists_html .= '<td><label><input type="checkbox" name="lists[]" value="' . $list_id . '" />' . $list_name . '</label></td>';
220
  }
public/partials/cron-message.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ $es_page_request = $_GET['es'];
9
+
10
+ $blogname = get_option( 'blogname' );
11
+ $noerror = true;
12
+ $home_url = home_url( '/' );
13
+ ?>
14
+ <html>
15
+ <head>
16
+ <title><?php echo $blogname; ?></title>
17
+ <?php do_action( 'es_message_head' ); ?>
18
+
19
+ <style type="text/css">
20
+ .es_center_info {
21
+ margin: auto;
22
+ width: 50%;
23
+ padding: 10px;
24
+ text-align: center;
25
+ }
26
+ </style>
27
+ </head>
28
+ <body>
29
+ <div class="es_center_info es_successfully_subscribed">
30
+ <p> <?php echo $message; ?> </p>
31
+ <table class="table">
32
+ <tr>
33
+ <td><?php _e('Total Emails Sent', 'email-subscribers'); ?></td>
34
+ <td><?php echo $total_emails_sent; ?></td>
35
+ </tr>
36
+ <tr>
37
+ <td><?php _e('Total Emails In Queue', 'email-subscribers'); ?></td>
38
+ <td><?php
39
+ echo $total_emails_to_be_sent;
40
+ if($total_emails_to_be_sent > 0) {
41
+ echo ' ' . $send_now_text; ?>
42
+ <?php } ?>
43
+ </td>
44
+
45
+ </tr>
46
+
47
+ </table>
48
+
49
+ </div>
50
+ </body>
51
+ </html>
52
+ <?php
53
+
54
+ die();
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.2
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
@@ -308,6 +308,14 @@ Use our free plugin [Email Subscribers - Group Selector](https://wordpress.org/p
308
 
309
  == Changelog ==
310
 
 
 
 
 
 
 
 
 
311
  = 4.0.2 (04.03.2019) =
312
  * Update: Added sync WordPress users functionality
313
  * Update: Added status(Subscribed/ Unsubscribed ) column in 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.3
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
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
314
+ * Update: Added status based filtering for contacts
315
+ * Update: Added Icegram compatibility
316
+ * Fix: Post Notification not getting triggered
317
+ * Fix: Incorrect cron url issue when migrated from other domain
318
+
319
  = 4.0.2 (04.03.2019) =
320
  * Update: Added sync WordPress users functionality
321
  * Update: Added status(Subscribed/ Unsubscribed ) column in Audience dashboard