Email Subscribers & Newsletters - Version 4.0.6

Version Description

(12.03.2019) = * Enhancement: Now, queued emails will be processed on every 15 minutes. * Fix: Parse error: syntax error, unexpected T_FUNCTION, expecting ')' * Fix: Parse error: syntax error, unexpected '[', expecting ')' * Update: POT file

Download this release

Release Info

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

Code changes from version 4.0.5 to 4.0.6

admin/class-email-subscribers-admin.php CHANGED
@@ -132,20 +132,20 @@ class Email_Subscribers_Admin {
132
 
133
  public function email_subscribers_admin_menu() {
134
  // This adds the main menu page
135
- add_menu_page( 'Email Subscribers', 'Email Subscribers', 'edit_posts', 'es_dashboard', array( $this, 'es_dashboard_callback' ), 'dashicons-email', 30 );
136
 
137
  // Submenu
138
- add_submenu_page( 'es_dashboard', 'Dashboard', 'Dashboard', 'edit_posts', 'es_dashboard', array( $this, 'es_dashboard_callback' ) );
139
- add_submenu_page( 'es_dashboard', 'Lists', '<span id="ig-es-lists">Lists</span>', 'edit_posts', 'es_lists', array( $this, 'load_lists' ) );
140
- add_submenu_page( 'es_dashboard', 'Post Notifications', '<span id="ig-es-post-notifications">Post Notifications</span>', get_option( 'es_roles_notification', true ), 'es_notifications', array( $this, 'load_post_notifications' ) );
141
- add_submenu_page( 'es_dashboard', 'Broadcast', '<span id="ig-es-broadcast">Broadcast</span>', get_option( 'es_roles_sendmail', true ), 'es_newsletters', array( $this, 'load_newsletters' ) );
142
- add_submenu_page( 'es_dashboard', 'Reports', 'Reports', get_option( 'es_roles_sentmail', true ), 'es_reports', array( $this, 'load_reports' ) );
143
- add_submenu_page( 'es_dashboard', 'Audience', __( 'Audience', 'email-subscribers' ), get_option( 'es_roles_subscriber', true ), 'es_subscribers', array( $this, 'load_audience' ) );
144
- add_submenu_page( 'es_dashboard', 'Campaigns', 'Campaigns', get_option( 'es_roles_notification', true ), 'es_campaigns', array( $this, 'load_campaigns' ) );
145
- add_submenu_page( 'es_dashboard', 'Settings', 'Settings', get_option( 'es_roles_notification', true ), 'es_settings', array( $this, 'load_settings' ) );
146
- add_submenu_page( 'es_dashboard', 'Forms', 'Forms', get_option( 'es_roles_notification', true ), 'es_forms', array( $this, 'load_forms' ) );
147
- add_submenu_page( 'es_dashboard', 'Tools', 'Tools', get_option( 'es_roles_notification', true ), 'es_tools', array( $this, 'load_tools' ) );
148
- add_submenu_page( null, 'Template Preview', 'Template Preview', get_option( 'es_roles_notification', true ), 'es_template_preview', array( $this, 'load_preview' ) );
149
  }
150
 
151
  // Function for Klawoo's Subscribe form on Help & Info page
132
 
133
  public function email_subscribers_admin_menu() {
134
  // This adds the main menu page
135
+ add_menu_page( __('Email Subscribers', 'email-subscribers'), __('Email Subscribers', 'email-subscribers'), 'edit_posts', 'es_dashboard', array( $this, 'es_dashboard_callback' ), 'dashicons-email', 30 );
136
 
137
  // Submenu
138
+ add_submenu_page( 'es_dashboard', __( 'Dashboard', 'email-subscribers') , __( 'Dashboard', 'email-subscribers'), 'edit_posts', 'es_dashboard', array( $this, 'es_dashboard_callback' ) );
139
+ add_submenu_page( 'es_dashboard', __( 'Lists', 'email-subscribers') , '<span id="ig-es-lists">' . __( 'Lists', 'email-subscribers') .'</span>', 'edit_posts', 'es_lists', array( $this, 'load_lists' ) );
140
+ add_submenu_page( 'es_dashboard', __( 'Post Notifications', 'email-subscribers') , '<span id="ig-es-post-notifications">'.__( 'Post Notifications', 'email-subscribers').'</span>', get_option( 'es_roles_notification', true ), 'es_notifications', array( $this, 'load_post_notifications' ) );
141
+ add_submenu_page( 'es_dashboard', __( 'Broadcast', 'email-subscribers') , '<span id="ig-es-broadcast">'.__( 'Broadcast', 'email-subscribers').'</span>', get_option( 'es_roles_sendmail', true ), 'es_newsletters', array( $this, 'load_newsletters' ) );
142
+ add_submenu_page( 'es_dashboard', __( 'Reports', 'email-subscribers') , __( 'Reports', 'email-subscribers') , get_option( 'es_roles_sentmail', true ), 'es_reports', array( $this, 'load_reports' ) );
143
+ add_submenu_page( 'es_dashboard', __( 'Audience', 'email-subscribers') , __( 'Audience', 'email-subscribers' ), get_option( 'es_roles_subscriber', true ), 'es_subscribers', array( $this, 'load_audience' ) );
144
+ add_submenu_page( 'es_dashboard', __( 'Campaigns', 'email-subscribers') , __( 'Campaigns', 'email-subscribers') , get_option( 'es_roles_notification', true ), 'es_campaigns', array( $this, 'load_campaigns' ) );
145
+ add_submenu_page( 'es_dashboard', __( 'Settings', 'email-subscribers') , __( 'Settings', 'email-subscribers'), get_option( 'es_roles_notification', true ), 'es_settings', array( $this, 'load_settings' ) );
146
+ add_submenu_page( 'es_dashboard', __( 'Forms', 'email-subscribers') , __( 'Forms', 'email-subscribers') , get_option( 'es_roles_notification', true ), 'es_forms', array( $this, 'load_forms' ) );
147
+ add_submenu_page( 'es_dashboard', __( 'Tools', 'email-subscribers'), __( 'Tools', 'email-subscribers'), get_option( 'es_roles_notification', true ), 'es_tools', array( $this, 'load_tools' ) );
148
+ add_submenu_page( null, __('Template Preview', 'email-subscribers'), __('Template Preview', 'email-subscribers'), get_option( 'es_roles_notification', true ), 'es_template_preview', array( $this, 'load_preview' ) );
149
  }
150
 
151
  // Function for Klawoo's Subscribe form on Help & Info page
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.5
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.5' );
28
  define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
29
 
30
  if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
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.6
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.6' );
28
  define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
29
 
30
  if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
includes/admin/class-es-cron.php CHANGED
@@ -15,31 +15,42 @@ class ES_Cron {
15
  public function __construct() {
16
  $this->handle_cron_request();
17
  $this->set_cron();
18
- add_action( 'es_cron_hourly', array( $this, 'handle_cron_request' ), 10, 2 );
19
  }
20
 
21
  public function handle_cron_request( $es = '', $guid = '' ) {
 
 
 
 
 
 
 
22
 
23
- $es_request = ( ! empty( $es ) ) ? $es : Email_Subscribers::get_request( 'es' );
24
- $self = ! empty( $_REQUEST['self'] ) ? $_REQUEST['self'] : 0;
25
-
26
- //$ig_es_last_cron_run = get_option( 'ig_es_last_cron_run', true );
27
- //$time_diff = ( time() - $ig_es_last_cron_run );
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
- $time_diff = 1;
30
 
31
  if ( 'cron' === $es_request ) {
32
 
33
- if ( $time_diff >= 1 || $self == 1 ) {
 
 
 
 
 
 
 
 
 
 
 
 
34
  $guid = ( ! empty( $guid ) ) ? $guid : Email_Subscribers::get_request( 'guid' );
35
  if ( ! empty( $guid ) ) {
36
-
37
  $response = array( 'status' => 'SUCCESS', 'es_remaining_email_count' => 100 );
38
  $es_process_request = true;
39
 
40
  // filter request
41
  $es_process_request = apply_filters( 'es_process_request', $es_process_request );
42
-
43
  if ( true === $es_process_request ) {
44
  $security1 = strlen( $guid );
45
  $es_c_cronguid_noslash = str_replace( "-", "", $guid );
@@ -49,6 +60,11 @@ class ES_Cron {
49
  $es_c_cronurl = get_option( 'ig_es_cronurl' );
50
  $es_c_croncount = get_option( 'ig_es_hourly_email_send_limit', 50 );
51
 
 
 
 
 
 
52
  // Modify cron count?
53
  $es_c_croncount = apply_filters( 'es_email_sending_limit', $es_c_croncount );
54
  parse_str( $es_c_cronurl, $output );
@@ -206,9 +222,10 @@ class ES_Cron {
206
  if ( ! empty( $es_c_cronurl ) ) {
207
  parse_str( $es_c_cronurl, $output );
208
  $args['guid'] = $output['guid'];
209
- if ( ! wp_next_scheduled( 'es_cron_hourly', array( $args['es'], $args['guid'] ) ) ) {
 
210
  wp_clear_scheduled_hook( 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
211
- wp_schedule_event( time(), 'hourly', 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
212
  }
213
  }
214
  }
15
  public function __construct() {
16
  $this->handle_cron_request();
17
  $this->set_cron();
18
+ add_action( 'ig_es_cron_fifteen_mins', array( $this, 'handle_cron_request' ), 10, 2 );
19
  }
20
 
21
  public function handle_cron_request( $es = '', $guid = '' ) {
22
+ $is_wp_cron = false;
23
+ if ( ! empty( $es ) ) {
24
+ $es_request = $es;
25
+ $is_wp_cron = true;
26
+ } else {
27
+ $es_request = Email_Subscribers::get_request( 'es' );
28
+ }
29
 
30
+ $self = ! empty( $_REQUEST['self'] ) ? $_REQUEST['self'] : 0;
 
 
 
 
 
 
31
 
32
  if ( 'cron' === $es_request ) {
33
 
34
+ /*
35
+ $ig_es_last_cron_run = get_option( 'ig_es_last_cron_run', true );
36
+ $time_diff = ( time() - $ig_es_last_cron_run );
37
+ $time_diff = ( ! empty( $_GET['es_pro'] ) && ( $_GET['es_pro'] == 1 || $_GET['es_pro'] === true || $_GET['es_pro'] === 'true' ) ) ? 1 : floor( $time_diff / 800 );
38
+ */
39
+
40
+ $server_cron = true;
41
+ $time_diff = 1;
42
+ if ( $is_wp_cron ) {
43
+ $server_cron = false;
44
+ }
45
+
46
+ if ( $server_cron || ( $is_wp_cron && $time_diff >= 1 ) || $self == 1 ) {
47
  $guid = ( ! empty( $guid ) ) ? $guid : Email_Subscribers::get_request( 'guid' );
48
  if ( ! empty( $guid ) ) {
 
49
  $response = array( 'status' => 'SUCCESS', 'es_remaining_email_count' => 100 );
50
  $es_process_request = true;
51
 
52
  // filter request
53
  $es_process_request = apply_filters( 'es_process_request', $es_process_request );
 
54
  if ( true === $es_process_request ) {
55
  $security1 = strlen( $guid );
56
  $es_c_cronguid_noslash = str_replace( "-", "", $guid );
60
  $es_c_cronurl = get_option( 'ig_es_cronurl' );
61
  $es_c_croncount = get_option( 'ig_es_hourly_email_send_limit', 50 );
62
 
63
+ // We are running wp cron at the interval of 15 minutes.
64
+ if($is_wp_cron) {
65
+ $es_c_croncount = floor($es_c_croncount / 4);
66
+ }
67
+
68
  // Modify cron count?
69
  $es_c_croncount = apply_filters( 'es_email_sending_limit', $es_c_croncount );
70
  parse_str( $es_c_cronurl, $output );
222
  if ( ! empty( $es_c_cronurl ) ) {
223
  parse_str( $es_c_cronurl, $output );
224
  $args['guid'] = $output['guid'];
225
+ if ( ! wp_next_scheduled( 'ig_es_cron_fifteen_mins', array( $args['es'], $args['guid'] ) ) ) {
226
+ wp_clear_scheduled_hook( 'ig_es_cron_fifteen_mins', array( $args['es'], $args['guid'] ) );
227
  wp_clear_scheduled_hook( 'es_cron_hourly', array( $args['es'], $args['guid'] ) );
228
+ wp_schedule_event( time(), 'ig_es_fifteen_mins_interval', 'ig_es_cron_fifteen_mins', array( $args['es'], $args['guid'] ) );
229
  }
230
  }
231
  }
includes/admin/class-es-forms-table.php CHANGED
@@ -15,12 +15,12 @@ class ES_Forms_Table extends WP_List_Table {
15
 
16
  public function __construct() {
17
 
18
- parent::__construct( [
19
  'singular' => __( 'Forms', 'email-subscribers' ), //singular name of the listed records
20
  'plural' => __( 'Forms', 'email-subscribers' ), //plural name of the listed records
21
  'ajax' => false, //does this table support ajax?,
22
  'screen' => 'es_forms'
23
- ] );
24
 
25
  add_filter( 'set-screen-option', array( $this, 'set_screen' ), 10, 3 );
26
  }
15
 
16
  public function __construct() {
17
 
18
+ parent::__construct( array(
19
  'singular' => __( 'Forms', 'email-subscribers' ), //singular name of the listed records
20
  'plural' => __( 'Forms', 'email-subscribers' ), //plural name of the listed records
21
  'ajax' => false, //does this table support ajax?,
22
  'screen' => 'es_forms'
23
+ ) );
24
 
25
  add_filter( 'set-screen-option', array( $this, 'set_screen' ), 10, 3 );
26
  }
includes/admin/class-es-handle-post-notification.php CHANGED
@@ -3,7 +3,6 @@
3
  class ES_Handle_Post_Notification {
4
 
5
  public function __construct() {
6
- global $wp_version;
7
 
8
  add_action( 'transition_post_status', array( $this, 'es_post_publish_callback' ), 10, 3 );
9
 
3
  class ES_Handle_Post_Notification {
4
 
5
  public function __construct() {
 
6
 
7
  add_action( 'transition_post_status', array( $this, 'es_post_publish_callback' ), 10, 3 );
8
 
includes/admin/class-es-handle-subscription.php CHANGED
@@ -130,6 +130,7 @@ class ES_Handle_Subscription {
130
 
131
  $contact_id = ES_DB_Contacts::add_subscriber( $data );
132
  }
 
133
  if ( count( $this->list_ids ) > 0 ) {
134
  $contact_lists = ES_DB_Lists_Contacts::get_list_ids_by_contact( $contact_id );
135
  if ( $contact_lists == $this->list_ids ) {
@@ -303,7 +304,6 @@ class ES_Handle_Subscription {
303
  $hp_key = "esfpx_es_hp_" . wp_create_nonce( 'es_hp' );
304
  if ( ! isset( $data[ $hp_key ] ) || ! empty( $data[ $hp_key ] ) ) {
305
  $es_response['message'] = 'es_unexpected_error_notice';
306
-
307
  return $es_response;
308
  }
309
 
130
 
131
  $contact_id = ES_DB_Contacts::add_subscriber( $data );
132
  }
133
+
134
  if ( count( $this->list_ids ) > 0 ) {
135
  $contact_lists = ES_DB_Lists_Contacts::get_list_ids_by_contact( $contact_id );
136
  if ( $contact_lists == $this->list_ids ) {
304
  $hp_key = "esfpx_es_hp_" . wp_create_nonce( 'es_hp' );
305
  if ( ! isset( $data[ $hp_key ] ) || ! empty( $data[ $hp_key ] ) ) {
306
  $es_response['message'] = 'es_unexpected_error_notice';
 
307
  return $es_response;
308
  }
309
 
includes/admin/class-es-subscription-throttaling.php CHANGED
@@ -14,13 +14,13 @@ class ES_Subscription_Throttaling {
14
  if ( ! ( is_user_logged_in() && is_super_admin() ) ) {
15
  $subscriber_ip = self::getUserIP();
16
  if ( ! empty( $subscriber_ip ) ) {
17
- $query = "SELECT count(*) as count from " . IG_CONTACTS_IPS_TABLE . " WHERE ip = %s AND ( `created_at` >= NOW() - INTERVAL %s SECOND )";
18
  $subscribers = $wpdb->get_var( $wpdb->prepare( $query, $subscriber_ip, DAY_IN_SECONDS ) );
19
 
20
  if ( $subscribers > 0 ) {
21
  $timeout = MINUTE_IN_SECONDS * pow( 2, $subscribers - 1 );
22
 
23
- $query = "SELECT count(*) as count from " . IG_CONTACTS_IPS_TABLE . " WHERE ip = %s AND ( `created_at` >= NOW() - INTERVAL %s SECOND ) LIMIT 1";
24
  $subscribers = $wpdb->get_var( $wpdb->prepare( $query, $subscriber_ip, $timeout ) );
25
 
26
  if ( $subscribers > 0 ) {
@@ -33,7 +33,7 @@ class ES_Subscription_Throttaling {
33
  $wpdb->query( $wpdb->prepare( $query, $subscriber_ip ) );
34
 
35
  // Delete older entries
36
- $query = "DELETE FROM " . IG_CONTACTS_IPS_TABLE . " WHERE (`created_at` < NOW() - INTERVAL %s SECOND )";
37
  $wpdb->query( $wpdb->prepare( $query, DAY_IN_SECONDS ) );
38
  }
39
  }
14
  if ( ! ( is_user_logged_in() && is_super_admin() ) ) {
15
  $subscriber_ip = self::getUserIP();
16
  if ( ! empty( $subscriber_ip ) ) {
17
+ $query = "SELECT count(*) as count from " . IG_CONTACTS_IPS_TABLE . " WHERE ip = %s AND ( `created_on` >= NOW() - INTERVAL %s SECOND )";
18
  $subscribers = $wpdb->get_var( $wpdb->prepare( $query, $subscriber_ip, DAY_IN_SECONDS ) );
19
 
20
  if ( $subscribers > 0 ) {
21
  $timeout = MINUTE_IN_SECONDS * pow( 2, $subscribers - 1 );
22
 
23
+ $query = "SELECT count(*) as count from " . IG_CONTACTS_IPS_TABLE . " WHERE ip = %s AND ( `created_on` >= NOW() - INTERVAL %s SECOND ) LIMIT 1";
24
  $subscribers = $wpdb->get_var( $wpdb->prepare( $query, $subscriber_ip, $timeout ) );
25
 
26
  if ( $subscribers > 0 ) {
33
  $wpdb->query( $wpdb->prepare( $query, $subscriber_ip ) );
34
 
35
  // Delete older entries
36
+ $query = "DELETE FROM " . IG_CONTACTS_IPS_TABLE . " WHERE (`created_on` < NOW() - INTERVAL %s SECOND )";
37
  $wpdb->query( $wpdb->prepare( $query, DAY_IN_SECONDS ) );
38
  }
39
  }
includes/class-email-subscribers.php CHANGED
@@ -88,9 +88,9 @@ class Email_Subscribers {
88
  $this->define_public_hooks();
89
 
90
  add_action( 'widgets_init', array( $this, 'register_es_widget' ) );
 
91
  }
92
 
93
-
94
  public function add_version_notice() {
95
  $active_plugins = get_option( 'active_plugins', array() );
96
  if ( is_multisite() ) {
@@ -390,4 +390,12 @@ class Email_Subscribers {
390
  update_option( 'widget_' . $widget_id, $widget_instances );
391
  }
392
 
 
 
 
 
 
 
 
 
393
  }
88
  $this->define_public_hooks();
89
 
90
  add_action( 'widgets_init', array( $this, 'register_es_widget' ) );
91
+ add_filter( 'cron_schedules', array( $this, 'es_add_cron_interval' ));
92
  }
93
 
 
94
  public function add_version_notice() {
95
  $active_plugins = get_option( 'active_plugins', array() );
96
  if ( is_multisite() ) {
390
  update_option( 'widget_' . $widget_id, $widget_instances );
391
  }
392
 
393
+ function es_add_cron_interval( $schedules ) {
394
+ $schedules['ig_es_fifteen_mins_interval'] = array(
395
+ 'interval' => 900,
396
+ 'display' => esc_html__( 'Every Fifteen Minutes' ),
397
+ );
398
+ return $schedules;
399
+ }
400
+
401
  }
includes/class-es-mailer.php CHANGED
@@ -24,10 +24,10 @@ class ES_Mailer {
24
  $subject = $notification['subject'];
25
  $guid = $notification['hash'];
26
  $template_id = ES_DB_Campaigns::get_templateid_by_campaign( $notification['id'] );
27
-
28
- $emails = array_map( function ( $mail ) {
29
  return $mail['email'];
30
- }, $mails );
 
31
 
32
  $emails_name_map = ES_DB_Contacts::get_subsribers_email_name_map( $emails );
33
 
24
  $subject = $notification['subject'];
25
  $guid = $notification['hash'];
26
  $template_id = ES_DB_Campaigns::get_templateid_by_campaign( $notification['id'] );
27
+ function temp_fun( $mail ) {
 
28
  return $mail['email'];
29
+ }
30
+ $emails = array_map( "temp_fun", $mails );
31
 
32
  $emails_name_map = ES_DB_Contacts::get_subsribers_email_name_map( $emails );
33
 
includes/db/class-es-db-contacts.php CHANGED
@@ -79,9 +79,10 @@ class ES_DB_Contacts {
79
 
80
  $subscriber_email_name_map = array();
81
  if ( count( $emails ) > 0 ) {
82
- $emails = array_map( function ( $v ) {
83
  return "'" . esc_sql( $v ) . "'";
84
- }, $emails );
 
85
 
86
  $emails_str = implode( ', ', $emails );
87
  $subscribers = $wpdb->get_results( "SELECT email, first_name FROM " . IG_CONTACTS_TABLE . " WHERE email IN ( " . $emails_str . ")", ARRAY_A );
79
 
80
  $subscriber_email_name_map = array();
81
  if ( count( $emails ) > 0 ) {
82
+ function temp( $v ) {
83
  return "'" . esc_sql( $v ) . "'";
84
+ }
85
+ $emails = array_map( "temp" , $emails );
86
 
87
  $emails_str = implode( ', ', $emails );
88
  $subscribers = $wpdb->get_results( "SELECT email, first_name FROM " . IG_CONTACTS_TABLE . " WHERE email IN ( " . $emails_str . ")", ARRAY_A );
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-11 12:35+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"
@@ -15,11 +15,78 @@ msgstr ""
15
  "X-Generator: Loco https://localise.biz/\n"
16
  "X-Loco-Version: 2.2.0; wp-5.1"
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:143
19
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:81
20
  msgid "Audience"
21
  msgstr ""
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:89
24
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
25
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:484
@@ -308,10 +375,6 @@ msgstr ""
308
  msgid "What data Email Subscribers stores on your end?"
309
  msgstr ""
310
 
311
- #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/help.php:80
312
- msgid "Post Notifications"
313
- msgstr ""
314
-
315
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/help.php:82
316
  msgid "Create and Send Post Notification Emails when new posts are published"
317
  msgstr ""
@@ -611,34 +674,6 @@ msgstr ""
611
  msgid "Here are some quick links"
612
  msgstr ""
613
 
614
- #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:82
615
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:19
616
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:20
617
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:66
618
- msgid "Forms"
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-post-notifications.php:234
624
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:41
625
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:54
626
- msgid "Campaigns"
627
- msgstr ""
628
-
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
-
642
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:89
643
  msgid "Add Subscribe form"
644
  msgstr ""
@@ -689,6 +724,7 @@ msgid "Privacy Policy"
689
  msgstr ""
690
 
691
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:124
 
692
  msgid "Subscribe"
693
  msgstr ""
694
 
@@ -737,13 +773,6 @@ msgstr ""
737
  msgid "Email Subscribers Widget"
738
  msgstr ""
739
 
740
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
741
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-old-widget.php:11
742
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-old-widget.php:12
743
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-form-widget.php:11
744
- msgid "Email Subscribers"
745
- msgstr ""
746
-
747
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
748
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:109
749
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:315
@@ -1301,11 +1330,6 @@ msgstr ""
1301
  msgid "No Campaigns Found."
1302
  msgstr ""
1303
 
1304
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:191
1305
- #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:183
1306
- msgid "Broadcast"
1307
- msgstr ""
1308
-
1309
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:131
1310
  msgid "Sender"
1311
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Email Subscribers & Newsletters\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2019-03-12 10:58+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"
15
  "X-Generator: Loco https://localise.biz/\n"
16
  "X-Loco-Version: 2.2.0; wp-5.1"
17
 
18
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:135
19
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:11
20
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-old-widget.php:11
21
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-old-widget.php:12
22
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-form-widget.php:11
23
+ msgid "Email Subscribers"
24
+ msgstr ""
25
+
26
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:138
27
+ msgid "Dashboard"
28
+ msgstr ""
29
+
30
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:139
31
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:84
32
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-lists-table.php:66
33
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:290
34
+ msgid "Lists"
35
+ msgstr ""
36
+
37
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:140
38
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/help.php:80
39
+ msgid "Post Notifications"
40
+ msgstr ""
41
+
42
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:141
43
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:191
44
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:183
45
+ msgid "Broadcast"
46
+ msgstr ""
47
+
48
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:142
49
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:85
50
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:20
51
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:43
52
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-reports-table.php:78
53
+ msgid "Reports"
54
+ msgstr ""
55
+
56
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:143
57
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:81
58
  msgid "Audience"
59
  msgstr ""
60
 
61
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:144
62
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:83
63
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-newsletters.php:76
64
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-post-notifications.php:234
65
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:41
66
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-campaigns-table.php:54
67
+ msgid "Campaigns"
68
+ msgstr ""
69
+
70
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:145
71
+ msgid "Settings"
72
+ msgstr ""
73
+
74
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:146
75
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:82
76
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:19
77
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:20
78
+ #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:66
79
+ msgid "Forms"
80
+ msgstr ""
81
+
82
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:147
83
+ msgid "Tools"
84
+ msgstr ""
85
+
86
+ #: ../../../../wpRepos/gitlab/email-subscribers/admin/class-email-subscribers-admin.php:148
87
+ msgid "Template Preview"
88
+ msgstr ""
89
+
90
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/class-es-common.php:89
91
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-export-subscribers.php:234
92
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-subscribers-table.php:484
375
  msgid "What data Email Subscribers stores on your end?"
376
  msgstr ""
377
 
 
 
 
 
378
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/help.php:82
379
  msgid "Create and Send Post Notification Emails when new posts are published"
380
  msgstr ""
674
  msgid "Here are some quick links"
675
  msgstr ""
676
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:89
678
  msgid "Add Subscribe form"
679
  msgstr ""
724
  msgstr ""
725
 
726
  #: ../../../../wpRepos/gitlab/email-subscribers/admin/partials/dashboard.php:124
727
+ #: ../../../../wpRepos/gitlab/email-subscribers/public/partials/class-es-shortcode.php:191
728
  msgid "Subscribe"
729
  msgstr ""
730
 
773
  msgid "Email Subscribers Widget"
774
  msgstr ""
775
 
 
 
 
 
 
 
 
776
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-widget.php:49
777
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-handle-sync-wp-user.php:109
778
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-forms-table.php:315
1330
  msgid "No Campaigns Found."
1331
  msgstr ""
1332
 
 
 
 
 
 
1333
  #: ../../../../wpRepos/gitlab/email-subscribers/includes/admin/class-es-admin-settings.php:131
1334
  msgid "Sender"
1335
  msgstr ""
public/partials/class-es-shortcode.php CHANGED
@@ -183,12 +183,12 @@ class ES_Shortcode {
183
  <input type="hidden" name="es_email_page_url" value="<?php echo $current_page_url; ?>"/>
184
  <input type="hidden" name="status" value="Unconfirmed"/>
185
  <input type="hidden" name="es-subscribe" id="es-subscribe" value="<?php echo $nonce; ?>"/>
186
- <label style="<?php echo $hp_style; ?>"><input type="text" name="es_hp_<?php echo wp_create_nonce( 'es_hp' ); ?>" class="es_required_field" tabindex="-1" autocomplete="off"/></label>
187
  <?php do_action( 'es_after_form_fields' ) ?>
188
  <?php if ( ( in_array( 'gdpr/gdpr.php', $active_plugins ) || array_key_exists( 'gdpr/gdpr.php', $active_plugins ) ) ) {
189
  echo GDPR::consent_checkboxes();
190
  } ?>
191
- <input type="submit" name="submit" class="es_subscription_form_submit es_submit_button" id="es_subscription_form_submit_<?php echo $unique_id; ?>" value="Subscribe"/>
192
 
193
 
194
  <?php $spinner_image_path = plugin_dir_url( ES_PLUGIN_BASE_NAME ) . 'public/images/spinner.gif'; ?>
183
  <input type="hidden" name="es_email_page_url" value="<?php echo $current_page_url; ?>"/>
184
  <input type="hidden" name="status" value="Unconfirmed"/>
185
  <input type="hidden" name="es-subscribe" id="es-subscribe" value="<?php echo $nonce; ?>"/>
186
+ <label style="<?php echo $hp_style; ?>"><input type="text" name="es_hp_<?php echo wp_create_nonce( 'es_hp' ); ?>" class="es_required_field" tabindex="-1" autocomplete="-1"/></label>
187
  <?php do_action( 'es_after_form_fields' ) ?>
188
  <?php if ( ( in_array( 'gdpr/gdpr.php', $active_plugins ) || array_key_exists( 'gdpr/gdpr.php', $active_plugins ) ) ) {
189
  echo GDPR::consent_checkboxes();
190
  } ?>
191
+ <input type="submit" name="submit" class="es_subscription_form_submit es_submit_button" id="es_subscription_form_submit_<?php echo $unique_id; ?>" value="<?php _e( 'Subscribe', 'email-subscribers' ) ?>"/>
192
 
193
 
194
  <?php $spinner_image_path = plugin_dir_url( ES_PLUGIN_BASE_NAME ) . 'public/images/spinner.gif'; ?>
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.5
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
@@ -308,6 +308,12 @@ Use our free plugin [Email Subscribers - Group Selector](https://wordpress.org/p
308
 
309
  == Changelog ==
310
 
 
 
 
 
 
 
311
  = 4.0.5 (11.03.2019) =
312
  * Update: Enable admin email notification after campaign sent
313
  * Fix: Migration of old Email Subscriber's widgets
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.6
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
308
 
309
  == Changelog ==
310
 
311
+ = 4.0.6 (12.03.2019) =
312
+ * Enhancement: Now, queued emails will be processed on every 15 minutes.
313
+ * Fix: Parse error: syntax error, unexpected T_FUNCTION, expecting ')'
314
+ * Fix: Parse error: syntax error, unexpected '[', expecting ')'
315
+ * Update: POT file
316
+
317
  = 4.0.5 (11.03.2019) =
318
  * Update: Enable admin email notification after campaign sent
319
  * Fix: Migration of old Email Subscriber's widgets