Email Subscribers & Newsletters - Version 5.4.9

Version Description

  • Enhancement: Added failed status for campaign in case email delivery fails
  • Enhancement: Added workflow trigger for failed campaigns
  • Fix: Form fields were not rendering properly when viewed in popup[PRO]

=

Download this release

Release Info

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

Code changes from version 5.4.8 to 5.4.9

email-subscribers.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
- * Version: 5.4.8
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
@@ -187,7 +187,7 @@ if ( 'premium' === $ig_es_plan ) {
187
  /* ***************************** Initial Compatibility Work (End) ******************* */
188
 
189
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
190
- define( 'ES_PLUGIN_VERSION', '5.4.8' );
191
  }
192
 
193
  // Plugin Folder Path.
@@ -207,6 +207,10 @@ if ( ! defined( 'ES_PLUGIN_URL' ) ) {
207
  define( 'ES_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
208
  }
209
 
 
 
 
 
210
  // Start-IG-Code.
211
  if ( ! defined( 'IG_ES_PLUGIN_PLAN' ) ) {
212
  define( 'IG_ES_PLUGIN_PLAN', 'lite' );
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
+ * Version: 5.4.9
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
187
  /* ***************************** Initial Compatibility Work (End) ******************* */
188
 
189
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
190
+ define( 'ES_PLUGIN_VERSION', '5.4.9' );
191
  }
192
 
193
  // Plugin Folder Path.
207
  define( 'ES_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
208
  }
209
 
210
+ if ( ! defined( 'ES_IMG_URL' ) ) {
211
+ define( 'ES_IMG_URL', ES_PLUGIN_URL . 'lite/admin/images/' );
212
+ }
213
+
214
  // Start-IG-Code.
215
  if ( ! defined( 'IG_ES_PLUGIN_PLAN' ) ) {
216
  define( 'IG_ES_PLUGIN_PLAN', 'lite' );
lite/admin/class-email-subscribers-admin.php CHANGED
@@ -111,6 +111,10 @@ class Email_Subscribers_Admin {
111
  add_action( 'wp_dashboard_setup', array( $this, 'es_add_widgets' ) );
112
 
113
  add_action( 'ig_es_campaign_deleted', array( $this, 'delete_child_campaigns' ) );
 
 
 
 
114
  }
115
 
116
  /**
@@ -820,6 +824,7 @@ class Email_Subscribers_Admin {
820
  'show_tracker_notice',
821
  'show_new_keyword_notice',
822
  'show_membership_integration_notice',
 
823
  );
824
  }
825
 
@@ -1634,6 +1639,43 @@ class Email_Subscribers_Admin {
1634
  }
1635
  }
1636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1637
  /**
1638
  * Method to send email for authentication headers test
1639
  *
111
  add_action( 'wp_dashboard_setup', array( $this, 'es_add_widgets' ) );
112
 
113
  add_action( 'ig_es_campaign_deleted', array( $this, 'delete_child_campaigns' ) );
114
+
115
+ add_action( 'ig_es_campaign_failed', array( $this, 'add_campaign_failed_flag' ) );
116
+ add_action( 'ig_es_campaign_sent', array( $this, 'remove_campaign_failed_flag' ) );
117
+ add_action( 'admin_notices', array( $this, 'show_email_sending_failed_notice' ) );
118
  }
119
 
120
  /**
824
  'show_tracker_notice',
825
  'show_new_keyword_notice',
826
  'show_membership_integration_notice',
827
+ 'show_email_sending_failed_notice',
828
  );
829
  }
830
 
1639
  }
1640
  }
1641
 
1642
+ public function add_campaign_failed_flag() {
1643
+ update_option( 'ig_es_campaign_failed', 1, false );
1644
+ }
1645
+
1646
+ public function remove_campaign_failed_flag() {
1647
+ delete_option( 'ig_es_campaign_failed' );
1648
+ }
1649
+
1650
+ public function show_email_sending_failed_notice() {
1651
+
1652
+ if ( ! ES()->is_es_admin_screen() ) {
1653
+ return;
1654
+ }
1655
+
1656
+ $current_page = ig_es_get_request_data( 'page' );
1657
+
1658
+ if ( 'es_dashboard' === $current_page ) {
1659
+ return;
1660
+ }
1661
+
1662
+ $campaign_failed = get_option( 'ig_es_campaign_failed', 0 );
1663
+ if ( $campaign_failed ) {
1664
+ $email_sending_url = admin_url( 'admin.php?page=es_settings#tabs-email_sending' );
1665
+ ?>
1666
+ <div class="notice notice-error is-dismissible">
1667
+ <p>
1668
+ <?php
1669
+ /* translators: %s: link to new keyword doc */
1670
+ echo sprintf( esc_html__( 'There seems to be some issue in sending your emails. You may have to check your %1$semail sending setting%2$s.', 'email-subscribers' ), '<a href="' . esc_url( $email_sending_url ) . '">', '</a>');
1671
+ ?>
1672
+ </p>
1673
+ </div>
1674
+ <?php
1675
+ delete_option( 'ig_es_campaign_failed' );
1676
+ }
1677
+ }
1678
+
1679
  /**
1680
  * Method to send email for authentication headers test
1681
  *
lite/admin/css/email-subscribers-admin.css CHANGED
@@ -2218,6 +2218,10 @@ body[class*="es_reports"] .recipient-text {
2218
  display: none;
2219
  }
2220
 
 
 
 
 
2221
  /* Campaign Rules CSS - END */
2222
 
2223
  /** Tailwind tooltip Custom CSS - START */
2218
  display: none;
2219
  }
2220
 
2221
+ .ig_es_feature_name .es-tooltip span{
2222
+ background-color: #000 !important;
2223
+ }
2224
+
2225
  /* Campaign Rules CSS - END */
2226
 
2227
  /** Tailwind tooltip Custom CSS - START */
lite/admin/images/mnmatty.jpeg ADDED
Binary file
lite/admin/js/email-subscribers-admin.js CHANGED
@@ -925,9 +925,8 @@
925
  jQuery('.es-form').find('form').find('#es_broadcast_preview').val('');
926
  }
927
  });
928
- //add target new to go pro
929
- jQuery('a[href="admin.php?page=es_pricing"]').attr('target', '_blank').attr('href', 'https://www.icegram.com/email-subscribers-pricing/');
930
 
 
931
  $('.ig-es-campaign-status-toggle-label input[type="checkbox"]').change(function() {
932
  let checkbox_elem = $(this);
933
  let campaign_id = $(checkbox_elem).val();
@@ -1120,7 +1119,7 @@
1120
  ig_es_show_campaign_preview_in_popup();
1121
  });
1122
 
1123
-
1124
  $('#save_campaign_as_template_button').on('click', function(e){
1125
  e.preventDefault();
1126
  ig_es_save_campaign_as_template();
925
  jQuery('.es-form').find('form').find('#es_broadcast_preview').val('');
926
  }
927
  });
 
 
928
 
929
+
930
  $('.ig-es-campaign-status-toggle-label input[type="checkbox"]').change(function() {
931
  let checkbox_elem = $(this);
932
  let campaign_id = $(checkbox_elem).val();
1119
  ig_es_show_campaign_preview_in_popup();
1120
  });
1121
 
1122
+
1123
  $('#save_campaign_as_template_button').on('click', function(e){
1124
  e.preventDefault();
1125
  ig_es_save_campaign_as_template();
lite/includes/class-email-subscribers.php CHANGED
@@ -576,7 +576,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
576
  }
577
  if ( ! defined( 'IG_ES_MAX_EMAIL_SEND_AT_ONCE' ) ) {
578
  define( 'IG_ES_MAX_EMAIL_SEND_AT_ONCE', 30 );
579
- }
580
  if ( ! defined( 'IG_ES_CAMPAIGN_STATUS_IN_ACTIVE' ) ) {
581
  define( 'IG_ES_CAMPAIGN_STATUS_IN_ACTIVE', 0 );
582
  }
@@ -617,6 +617,26 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
617
  define( 'IG_ES_MAILING_QUEUE_STATUS_SENT', 'Sent' );
618
  }
619
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
620
  if ( ! defined( 'IG_ES_WORKFLOW_STATUS_IN_ACTIVE' ) ) {
621
  define( 'IG_ES_WORKFLOW_STATUS_IN_ACTIVE', 0 );
622
  }
@@ -793,6 +813,9 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
793
  'lite/includes/classes/class-ig-es-trial.php',
794
  'lite/includes/classes/class-es-mailchimp-api.php',
795
 
 
 
 
796
  // Core Functions
797
  'lite/includes/es-core-functions.php',
798
 
@@ -897,6 +920,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
897
  'lite/includes/workflows/triggers/class-es-trigger-user-unconfirmed.php',
898
  'lite/includes/workflows/triggers/class-es-trigger-user-unsubscribed.php',
899
  'lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php',
 
900
  'lite/includes/workflows/class-es-workflow-triggers.php',
901
 
902
  // Abstracts workflow actions
@@ -949,7 +973,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
949
  'lite/admin/class-ig-es-campaign-rules.php',
950
  'lite/admin/class-es-campaign-admin.php',
951
  'lite/admin/class-es-gallery.php',
952
-
953
  'lite/admin/class-es-form-admin.php',
954
 
955
  'starter/starter-class-email-subscribers.php',
576
  }
577
  if ( ! defined( 'IG_ES_MAX_EMAIL_SEND_AT_ONCE' ) ) {
578
  define( 'IG_ES_MAX_EMAIL_SEND_AT_ONCE', 30 );
579
+ }
580
  if ( ! defined( 'IG_ES_CAMPAIGN_STATUS_IN_ACTIVE' ) ) {
581
  define( 'IG_ES_CAMPAIGN_STATUS_IN_ACTIVE', 0 );
582
  }
617
  define( 'IG_ES_MAILING_QUEUE_STATUS_SENT', 'Sent' );
618
  }
619
 
620
+ if ( ! defined( 'IG_ES_MAILING_QUEUE_STATUS_FAILED' ) ) {
621
+ define( 'IG_ES_MAILING_QUEUE_STATUS_FAILED', 'Failed' );
622
+ }
623
+
624
+ if ( ! defined( 'IG_ES_SENDING_QUEUE_STATUS_QUEUED' ) ) {
625
+ define( 'IG_ES_SENDING_QUEUE_STATUS_QUEUED', 'In Queue' );
626
+ }
627
+
628
+ if ( ! defined( 'IG_ES_SENDING_QUEUE_STATUS_SENDING' ) ) {
629
+ define( 'IG_ES_SENDING_QUEUE_STATUS_SENDING', 'Sending' );
630
+ }
631
+
632
+ if ( ! defined( 'IG_ES_SENDING_QUEUE_STATUS_SENT' ) ) {
633
+ define( 'IG_ES_SENDING_QUEUE_STATUS_SENT', 'Sent' );
634
+ }
635
+
636
+ if ( ! defined( 'IG_ES_SENDING_QUEUE_STATUS_FAILED' ) ) {
637
+ define( 'IG_ES_SENDING_QUEUE_STATUS_FAILED', 'Failed' );
638
+ }
639
+
640
  if ( ! defined( 'IG_ES_WORKFLOW_STATUS_IN_ACTIVE' ) ) {
641
  define( 'IG_ES_WORKFLOW_STATUS_IN_ACTIVE', 0 );
642
  }
813
  'lite/includes/classes/class-ig-es-trial.php',
814
  'lite/includes/classes/class-es-mailchimp-api.php',
815
 
816
+ // pricing
817
+ 'lite/includes/classes/class-email-subscribers-pricing.php',
818
+
819
  // Core Functions
820
  'lite/includes/es-core-functions.php',
821
 
920
  'lite/includes/workflows/triggers/class-es-trigger-user-unconfirmed.php',
921
  'lite/includes/workflows/triggers/class-es-trigger-user-unsubscribed.php',
922
  'lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php',
923
+ 'lite/includes/workflows/triggers/class-es-trigger-campaign-failed.php',
924
  'lite/includes/workflows/class-es-workflow-triggers.php',
925
 
926
  // Abstracts workflow actions
973
  'lite/admin/class-ig-es-campaign-rules.php',
974
  'lite/admin/class-es-campaign-admin.php',
975
  'lite/admin/class-es-gallery.php',
976
+
977
  'lite/admin/class-es-form-admin.php',
978
 
979
  'starter/starter-class-email-subscribers.php',
lite/includes/class-es-common.php CHANGED
@@ -2734,6 +2734,7 @@ class ES_Common {
2734
  $domain = isset($pieces['host']) ? $pieces['host'] : $pieces['path'];
2735
  return $domain;
2736
  }
 
2737
  public static function get_engagement_score_html( $engagement_score ) {
2738
  if ( is_numeric( $engagement_score ) ) {
2739
  $score_class = 'bad';
2734
  $domain = isset($pieces['host']) ? $pieces['host'] : $pieces['path'];
2735
  return $domain;
2736
  }
2737
+
2738
  public static function get_engagement_score_html( $engagement_score ) {
2739
  if ( is_numeric( $engagement_score ) ) {
2740
  $score_class = 'bad';
lite/includes/classes/class-email-subscribers-pricing.php ADDED
@@ -0,0 +1,781 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly.
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ class Email_Subscribers_Pricing {
9
+
10
+ public static function sm_show_pricing() {
11
+
12
+ $utm_medium = apply_filters( 'ig_es_pricing_page_utm_medium', 'in_app_pricing' );
13
+ $allowedtags = ig_es_allowed_html_tags_in_esc();
14
+
15
+ ?>
16
+ <style type="text/css">
17
+ .update-nag {
18
+ display: none;
19
+ }
20
+ .wrap.about-wrap.ig_es {
21
+ margin: 0 auto;
22
+ max-width: 100%;
23
+ }
24
+ body{
25
+ background-color: white;
26
+ }
27
+ .ig_es_main_heading {
28
+ font-size: 2em;
29
+ background-color: #252f3f !important;
30
+ color: #ffffff;
31
+ text-align: center;
32
+ font-weight: 500;
33
+ margin: auto;
34
+ padding-top: 0.75em;
35
+ padding-bottom: 0.5em;
36
+ /* max-width: 1375px; */
37
+ }
38
+ .ig_es_discount_code {
39
+ /* color: #6875F5; */
40
+ font-weight: 600;
41
+ font-size: 2.5rem;
42
+ }
43
+ .ig_es_sub_headline {
44
+ font-size: 1.6em;
45
+ font-weight: 400;
46
+ color: #00848D !important;
47
+ text-align: center;
48
+ line-height: 1.5em;
49
+ margin: 0 auto 1em;
50
+ }
51
+ .ig_es_row {
52
+ /* padding: 1em !important;
53
+ margin: 1.5em !important; */
54
+ clear: both;
55
+ position: relative;
56
+ }
57
+ #ig_es_price_column_container {
58
+ display: -webkit-box;
59
+ display: -webkit-flex;
60
+ display: -ms-flexbox;
61
+ display: flex;
62
+ max-width: 1190px;
63
+ margin-right: auto;
64
+ margin-left: auto;
65
+ margin-top: 4em;
66
+ padding-bottom: 4em;
67
+ }
68
+ .ig_es_column {
69
+ padding: 2em;
70
+ margin: 0 1em;
71
+ background-color: #fff;
72
+ border: 1px solid rgba(0, 0, 0, 0.1);
73
+ text-align: center;
74
+ color: rgba(0, 0, 0, 0.75);
75
+ }
76
+ .column_one_fourth {
77
+ width: 30%;
78
+ border-radius: 3px;
79
+ margin-right: 4%;
80
+ }
81
+ .ig_es_last {
82
+ margin-right: 0;
83
+ }
84
+ .ig_es_price {
85
+ margin: 1.5em 0;
86
+ color: #1e73be;
87
+ }
88
+ .ig_es_button {
89
+ color: #FFFFFF !important;
90
+ padding: 15px 32px;
91
+ text-align: center;
92
+ text-decoration: none;
93
+ display: inline-block;
94
+ font-size: 16px;
95
+ font-weight: 500;
96
+ margin: 2em 2px 1em 2px;
97
+ cursor: pointer;
98
+ }
99
+ .ig_es_button.green {
100
+ background: #23B191;
101
+ border-color: #23B191;
102
+ }
103
+ .ig_es_button.green:hover {
104
+ background: #66C78E;
105
+ border-color: #66C78E;
106
+ }
107
+
108
+ .ig_es_button.small {
109
+ text-transform: uppercase !important;
110
+ box-shadow: none;
111
+ padding: 0.8em;
112
+ font-size: 1rem;
113
+ border-radius: 0.25rem;
114
+ margin-top: 1em;
115
+ font-weight: 600;
116
+ }
117
+ .ig_es_discount_amount {
118
+ font-size: 1.3em !important;
119
+ }
120
+ .dashicons.dashicons-yes {
121
+ color: green;
122
+ font-size: 2em;
123
+ }
124
+ .dashicons.dashicons-no-alt {
125
+ color: #ed4337;
126
+ font-size: 2em;
127
+ }
128
+ .dashicons.dashicons-yes.yellow {
129
+ color: #BDB76B;
130
+ line-height: unset;
131
+ }
132
+ .dashicons.dashicons-awards,
133
+ .dashicons.dashicons-testimonial {
134
+ margin-right: 0.25em !important;
135
+ color: #15576F;
136
+ font-size: 1.25em;
137
+ }
138
+ .ig_es_license_name {
139
+ font-size: 1.1em !important;
140
+ color: #1a72bf !important;
141
+ font-weight: 500 !important;
142
+ }
143
+ .ig_es_old_price {
144
+ font-size: 1.3em;
145
+ color: #ed4337;
146
+ vertical-align: top;
147
+ }
148
+ .ig_es_new_price {
149
+ font-size: 1.6em;
150
+ padding-left: 0.2em;
151
+ font-weight: 400;
152
+ }
153
+ .ig_es_most_popular {
154
+ position: absolute;
155
+ right: 0px;
156
+ top: -39px;
157
+ background-color: #41495b;
158
+ background-color: #596174;
159
+ text-align: center;
160
+ color: white;
161
+ padding: 10px;
162
+ font-size: 18px;
163
+ border-top-right-radius: 4px;
164
+ border-top-left-radius: 4px;
165
+ font-weight: 500;
166
+ width: 275px;
167
+ }
168
+ #ig-es-testimonial {
169
+ text-align: center;
170
+ }
171
+ .ig-es-testimonial-content {
172
+ width: 50%;
173
+ margin: 0 auto;
174
+ margin-bottom: 1em;
175
+ background-color: #FCFEE9;
176
+ }
177
+ .ig-es-testimonial-content img {
178
+ width: 12% !important;
179
+ border-radius: 9999px;
180
+ margin: 0 auto;
181
+ }
182
+ .ig_es_testimonial_headline {
183
+ margin: 0.6em 0 !important;
184
+ font-weight: 500 !important;
185
+ font-size: 1.5em !important;
186
+ }
187
+ .ig_es_testimonial_text {
188
+ text-align: left;
189
+ font-size: 1.2em;
190
+ line-height: 1.6;
191
+ padding: 1em;
192
+ }
193
+ .pricing {
194
+ border-radius: 5px;
195
+ position: relative;
196
+ padding: 0.25em;
197
+ margin: 2em auto;
198
+ background-color: #fff;
199
+ border: 1px solid rgba(0, 0, 0, 0.1);
200
+ text-align: center;
201
+ color: rgba(0, 0, 0, 0.75);
202
+ }
203
+ .pricing h4 {
204
+ margin-top: 1em;
205
+ margin-bottom: 1em;
206
+ }
207
+ .pricing del {
208
+ font-size: 1.3em;
209
+ color: grey;
210
+ }
211
+ .pricing h2 {
212
+ margin-top: 0!important;
213
+ margin-bottom: 0.5em;
214
+ text-align: center;
215
+ font-weight: 600;
216
+ line-height: 1.218;
217
+ color: #515151;
218
+ font-size: 2.5em;
219
+ }
220
+ .pricing p {
221
+ text-align: center;
222
+ margin: 0em;
223
+ }
224
+ .pricing:hover{
225
+ border-color: #15576F;
226
+ }
227
+ .pricing.scaleup{
228
+ transform: scale(1.2);
229
+ }
230
+ .fidget.spin{
231
+ animation: spin 1.2s 0s linear both infinite;
232
+ }
233
+ @keyframes spin {
234
+ 0% {
235
+ transform: rotate(0deg);
236
+ }
237
+ 100% {
238
+ transform: rotate(360deg);
239
+ }
240
+ }
241
+ table.ig_es_feature_table {
242
+ width: 90%;
243
+ margin-left: 5%;
244
+ margin-right: 5%;
245
+ }
246
+ table.ig_es_feature_table th,
247
+ table.ig_es_feature_table tr,
248
+ table.ig_es_feature_table td,
249
+ table.ig_es_feature_table td span {
250
+ padding: 0.5em;
251
+ text-align: center !important;
252
+ background-color: transparent !important;
253
+ vertical-align: middle !important;
254
+ }
255
+ table.ig_es_feature_table,
256
+ table.ig_es_feature_table th,
257
+ table.ig_es_feature_table tr,
258
+ table.ig_es_feature_table td {
259
+ border: 1px solid #eaeaea;
260
+ }
261
+ table.ig_es_feature_table.widefat th,
262
+ table.ig_es_feature_table.widefat td {
263
+ color: #515151;
264
+ }
265
+ table.ig_es_feature_table th {
266
+ font-weight: bolder !important;
267
+ font-size: 1.3em;
268
+ }
269
+ table.ig_es_feature_table tr td {
270
+ font-size: 15px;
271
+ }
272
+ table.ig_es_feature_table th.ig_es_features {
273
+ background-color: #F4F4F4 !important;
274
+ color: #A1A1A1 !important;
275
+ width:16em;
276
+ }
277
+ table.ig_es_feature_table th.ig_es_free_features {
278
+ background-color: #F7E9C8 !important;
279
+ color: #D39E22 !important;
280
+ }
281
+ table.ig_es_feature_table th.ig_es_starter_features {
282
+ background-color: #CCFCBF !important;
283
+ color: #14C38E !important;
284
+ width:16em;
285
+ }
286
+ table.ig_es_feature_table th.ig_es_pro_features {
287
+ background-color: #DCDDFC !important;
288
+ color: #6875F5 !important;
289
+ }
290
+ table.ig_es_feature_table td{
291
+ padding: 0.5em;
292
+ }
293
+ table.ig_es_feature_table td.ig_es_feature_name {
294
+ text-transform: capitalize;
295
+ padding:1em 2em;
296
+ }
297
+ table.ig_es_feature_table td.ig_es_free_feature_name {
298
+ background-color: #FCF7EC !important;
299
+ padding:1em 2em;
300
+ }
301
+ table.ig_es_feature_table td.ig_es_starter_feature_name {
302
+ background-color: #E3FCBF !important;
303
+ padding:1em 3em;
304
+ }
305
+ table.ig_es_feature_table td.ig_es_pro_feature_name {
306
+ background-color: #F4F5FD !important;
307
+ padding:1em 2em;
308
+ }
309
+ #ig_es_product_page_link {
310
+ text-align: center;
311
+ font-size: 1.1em;
312
+ margin-top: 2em;
313
+ line-height: 2em;
314
+ }
315
+ .clr-a {
316
+ color: #00848D !important;
317
+ }
318
+ .update-nag , .error, .updated{
319
+ display:none;
320
+ }
321
+ table .dashicons {
322
+ padding-top: 0 !important;
323
+ }
324
+ #wpcontent {
325
+ padding-left: 0!important;
326
+ }
327
+ #ig-es-testimonial-others{
328
+ margin-top: 4em;
329
+ }
330
+ #ig_es_comparison_table{
331
+ margin-top: 4em;
332
+ }
333
+
334
+ </style>
335
+
336
+ <div class="wrap about-wrap ig_es">
337
+ <div class="ig_es_row" id="ig-es-pricing">
338
+ <div class="ig_es_main_heading">
339
+ <div style="display: inline-flex;">
340
+ <div style="padding-right: 0.5rem;">🎉</div>
341
+ <div style="line-height: 1.5rem;">
342
+ <?php
343
+ /* translators: %s: Offer text */
344
+ echo sprintf( esc_html__( 'Congratulations! You just unlocked %s on Email Subscribers Premium!', 'email-subscribers' ), '<span class="ig_es_discount_code">' . esc_html__( '25% off', 'email-subscribers' ) . '</span>' );
345
+ ?>
346
+ </div>
347
+ <div style="padding-left: 0.5rem;">🎉</div>
348
+ </div>
349
+ <div style="padding-top: 1em;font-size: 0.5em;"><?php echo esc_html__( '⏰ Limited time offer', 'email-subscribers' ); ?></div>
350
+ </div>
351
+ <div id="ig_es_price_column_container">
352
+ <div class="ig_es_column column_one_fourth pricing scaleup" style="border-color: #15576F;padding: 0;border-width: 0.2em;">
353
+ <div style="text-align: center;background-color: #15576F;color: #FFF;padding: 1em;font-weight: 900;text-transform: uppercase;"> <?php echo esc_html__( 'Best Seller', 'email-subscribers' ); ?> </div>
354
+ <span class="ig_es_plan"><h4 class="clr-a center"><?php echo esc_html__( 'Pro', 'email-subscribers' ); ?></h4></span>
355
+ <span class="ig_es_plan"><h4 class="clr-a center"><?php echo esc_html__( '1 site (Annual)', 'email-subscribers' ); ?></h4></span>
356
+ <span class="ig_es_price">
357
+ <p><del class="center"><?php echo esc_html__( '$129', 'email-subscribers' ); ?></del></p>
358
+ <h2><?php echo esc_html__( '$97', 'email-subscribers' ); ?></h2>
359
+ </span>
360
+
361
+ <div class="center">
362
+ <a class="ig_es_button small green center" href="https://www.icegram.com/?buy-now=39944&qty=1&coupon=es-upgrade-25&with-cart=1&utm_source=ig_es&utm_medium=<?php echo esc_attr( $utm_medium ); ?>&utm_campaign=es-pro" target="_blank" rel="noopener"><?php esc_html_e( 'Buy Now', 'email-subscribers' ); ?><span style="width: 1em; height: 1em; background-image: url('https://www.storeapps.org/wp-content/themes/storeapps/assets/images/fidget.svg'); display: inline-block; margin-left: 0.5em" class="fidget spin"></span></a>
363
+ </div>
364
+ </div>
365
+ <div class="ig_es_column column_one_fourth pricing ig_es_lifetime_price">
366
+ <span class="ig_es_plan"><h4 class="clr-a center"><?php echo esc_html__( 'Starter', 'email-subscribers' ); ?></h4></span>
367
+ <span class="ig_es_plan"><h4 class="clr-a center"><?php echo esc_html__( '1 site (Annual)', 'email-subscribers' ); ?></h4></span>
368
+ <span class="ig_es_price">
369
+ <p><del class="center"><?php echo esc_html__( '$79', 'email-subscribers' ); ?></del></p>
370
+ <h2><?php echo esc_html__( '$60', 'email-subscribers' ); ?></h2>
371
+ </span>
372
+
373
+ <div class="center">
374
+ <a class="ig_es_button small green center" href="https://www.icegram.com/?buy-now=407190&qty=1&coupon=es-upgrade-25&with-cart=1&utm_source=ig_es&utm_medium=<?php echo esc_attr( $utm_medium ); ?>&utm_campaign=starter" target="_blank" rel="noopener"><?php esc_html_e( 'Buy Now', 'email-subscribers' ); ?></a>
375
+ </div>
376
+ </div>
377
+
378
+ </div>
379
+ </div>
380
+ <div class="ig_es_row" id="ig-es-testimonial">
381
+ <div class="ig_es_column ig-es-testimonial-content">
382
+ <?php
383
+ echo wp_kses( apply_filters( 'ig_es_pricing_page_testimonial_1', '<img src=' . ES_IMG_URL . 'mnmatty.jpeg alt="mnmatty" />
384
+ <h3 class="ig_es_testimonial_headline">' . __( 'Works Well!', 'email-subscribers' ) . '</h3>
385
+ <div class="ig_es_testimonial_text">
386
+ ' . __( 'Used the free version to get started and it worked well. Upgraded to Premium for some of the convenience features and workflows.
387
+ Pretty slick to just be able to publish on the site and have the right notifications and newsletters go out automatically!', 'email-subscribers' ) . '<br><br>
388
+ - ' . __( 'mnmatty', 'email-subscribers' ) . '
389
+ </div>' ), $allowedtags );
390
+ ?>
391
+ </div>
392
+ </div>
393
+ <div class="ig_es_row" id="ig_es_comparison_table">
394
+ <div class="ig_es_sub_headline"><span class="dashicons dashicons-awards"></span><?php echo esc_html__( ' More powerful features with Email Subscribers Premium!', 'email-subscribers' ); ?></div>
395
+ <table class="ig_es_feature_table wp-list-table widefat">
396
+ <thead>
397
+ <tr>
398
+ <th class="ig_es_features">
399
+ <?php echo esc_html__( 'Features', 'email-subscribers' ); ?>
400
+ </th>
401
+ <th class="ig_es_free_features">
402
+ <?php echo esc_html__( 'Free', 'email-subscribers' ); ?>
403
+ </th>
404
+ <th class="ig_es_starter_features">
405
+ <?php echo esc_html__( 'Starter', 'email-subscribers' ); ?>
406
+ </th>
407
+ <th class="ig_es_pro_features">
408
+ <?php echo esc_html__( 'Pro', 'email-subscribers' ); ?>
409
+ </th>
410
+ </tr>
411
+ </thead>
412
+ <tbody>
413
+ <tr>
414
+ <td class="ig_es_feature_name">
415
+ <strong><?php echo esc_html__( 'What\'s so special?', 'email-subscribers' ); ?></strong>
416
+ </td>
417
+ <td class="ig_es_free_feature_name">
418
+ <?php echo esc_html__( 'Unlimited contacts, emails, forms & lists. Automatic welcome emails and new post notifications.', 'email-subscribers' ); ?>
419
+ </td>
420
+ <td class="ig_es_starter_feature_name">
421
+ <?php echo esc_html__( 'Everything in Free +', 'email-subscribers' ); ?>
422
+ </td>
423
+ <td class="ig_es_pro_feature_name">
424
+ <?php echo esc_html__( 'Everything in Starter +', 'email-subscribers' ); ?>
425
+ </td>
426
+ </tr>
427
+ <tr>
428
+ <td class="ig_es_feature_name">
429
+ <?php echo esc_html__( 'Post Digest Notifications', 'email-subscribers' ); ?>
430
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Send automatic blog post notification when a new blog post gets published. Also, send post digest email on a specific day.'), $allowedtags ); ?>
431
+ </td>
432
+ <td class="ig_es_free_feature_name">
433
+ <span class='dashicons dashicons-no-alt'></span>
434
+ </td>
435
+ <td class="ig_es_starter_feature_name">
436
+ <span class='dashicons dashicons-no-alt'></span>
437
+ </td>
438
+ <td class="ig_es_pro_feature_name">
439
+ <span class='dashicons dashicons-yes'></span>
440
+ </td>
441
+ </tr>
442
+ <tr>
443
+ <td class="ig_es_feature_name">
444
+ <?php echo esc_html__( 'Autoresponder & Workflows', 'email-subscribers' ); ?>
445
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Setup autoresponder email series based on event triggers.'), $allowedtags ); ?>
446
+ </td>
447
+ <td class="ig_es_free_feature_name">
448
+ <span class='dashicons dashicons-no-alt'></span>
449
+ </td>
450
+ <td class="ig_es_starter_feature_name">
451
+ <span class='dashicons dashicons-no-alt'></span>
452
+ </td>
453
+ <td class="ig_es_pro_feature_name">
454
+ <span class='dashicons dashicons-yes'></span>
455
+ </td>
456
+ </tr>
457
+ <tr>
458
+ <td class="ig_es_feature_name">
459
+ <?php echo esc_html__( 'Abandoned Cart Recovery Email', 'email-subscribers' ); ?>
460
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Send automatic abandoned cart recovery emails when the visitor abandons his/her shopping cart.'), $allowedtags ); ?>
461
+ </td>
462
+ <td class="ig_es_free_feature_name">
463
+ <span class='dashicons dashicons-no-alt'></span>
464
+ </td>
465
+ <td class="ig_es_starter_feature_name">
466
+ <span class='dashicons dashicons-no-alt'></span>
467
+ </td>
468
+ <td class="ig_es_pro_feature_name">
469
+ <span class='dashicons dashicons-yes'></span>
470
+ </td>
471
+ </tr>
472
+ <tr>
473
+ <td class="ig_es_feature_name">
474
+ <?php echo esc_html__( '3rd Party SMTP Configuration', 'email-subscribers' ); ?>
475
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Connect with SMTP services to reliable send transactional emails. Also supports automatic bounce handling.'), $allowedtags ); ?>
476
+ </td>
477
+ <td class="ig_es_free_feature_name">
478
+ <?php echo esc_html__( 'Pepipost', 'email-subscribers' ); ?>
479
+ </td>
480
+ <td class="ig_es_starter_feature_name">
481
+ <?php echo esc_html__( 'Default SMTP', 'email-subscribers' ); ?>
482
+ </td>
483
+ <td class="ig_es_pro_feature_name">
484
+ <?php echo esc_html__( 'Amazon SES, Mailgun, SendGrid, SparkPost, Postmark, Sendinblue & Mailjet.', 'email-subscribers' ); ?>
485
+ </td>
486
+ </tr>
487
+ <tr>
488
+ <td class="ig_es_feature_name">
489
+ <?php echo esc_html__( 'Automatic Batch Sending', 'email-subscribers' ); ?>
490
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Send reliable emails via our cron that automates triggering pending queues every 5 minutes. Also, schedule your campaign at a specific time.'), $allowedtags ); ?>
491
+ </td>
492
+ <td class="ig_es_free_feature_name">
493
+ <span class='dashicons dashicons-no-alt'></span>
494
+ </td>
495
+ <td class="ig_es_starter_feature_name">
496
+ <span class='dashicons dashicons-yes'></span>
497
+ </td>
498
+ <td class="ig_es_pro_feature_name">
499
+ <span class='dashicons dashicons-yes'></span>
500
+ </td>
501
+ </tr>
502
+ <tr>
503
+ <td class="ig_es_feature_name">
504
+ <?php echo esc_html__( 'Captcha & Security', 'email-subscribers' ); ?>
505
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Combat spams with the robust Captcha system built-in. Add extra security to your email list by blacklisting domains suggested by our experts.'), $allowedtags ); ?>
506
+ </td>
507
+ <td class="ig_es_free_feature_name">
508
+ <span class='dashicons dashicons-no-alt'></span>
509
+ </td>
510
+ <td class="ig_es_starter_feature_name">
511
+ <span class='dashicons dashicons-yes'></span>
512
+ </td>
513
+ <td class="ig_es_pro_feature_name">
514
+ <span class='dashicons dashicons-yes'></span>
515
+ </td>
516
+ </tr>
517
+ <tr>
518
+ <td class="ig_es_feature_name">
519
+ <?php echo esc_html__( 'Automatic List Cleanup', 'email-subscribers' ); ?>
520
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Automatically clean up bad/spam/bounced emails & maintain a healthy email list.'), $allowedtags ); ?>
521
+ </td>
522
+ <td class="ig_es_free_feature_name">
523
+ <span class='dashicons dashicons-no-alt'></span>
524
+ </td>
525
+ <td class="ig_es_starter_feature_name">
526
+ <span class='dashicons dashicons-no-alt'></span>
527
+ </td>
528
+ <td class="ig_es_pro_feature_name">
529
+ <span class='dashicons dashicons-yes'></span>
530
+ </td>
531
+ </tr>
532
+ <tr>
533
+ <td class="ig_es_feature_name">
534
+ <?php echo esc_html__( 'Detailed Reports/analytics', 'email-subscribers' ); ?>
535
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Get a detailed email campaign report such as open rate, avg. click rate, user device, browser, country info, IP and more. Also, use built-in UTM to track metrics.'), $allowedtags ); ?>
536
+ </td>
537
+ <td class="ig_es_free_feature_name">
538
+ <?php echo esc_html__( 'Overall Summary', 'email-subscribers' ); ?>
539
+ </td>
540
+ <td class="ig_es_starter_feature_name">
541
+ <?php echo esc_html__( 'Overall Summary', 'email-subscribers' ); ?>
542
+ </td>
543
+ <td class="ig_es_pro_feature_name">
544
+ <?php echo esc_html__( 'Detailed Report', 'email-subscribers' ); ?>
545
+ </td>
546
+ </tr>
547
+ <tr>
548
+ <td class="ig_es_feature_name">
549
+ <?php echo esc_html__( 'List Unsubscribe', 'email-subscribers' ); ?>
550
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Allow subscribers to select the specific email list to opt out.'), $allowedtags ); ?>
551
+ </td>
552
+ <td class="ig_es_free_feature_name">
553
+ <span class='dashicons dashicons-no-alt'></span>
554
+ </td>
555
+ <td class="ig_es_starter_feature_name">
556
+ <span class='dashicons dashicons-yes'></span>
557
+ </td>
558
+ <td class="ig_es_pro_feature_name">
559
+ <span class='dashicons dashicons-yes'></span>
560
+ </td>
561
+ </tr>
562
+ <tr>
563
+ <td class="ig_es_feature_name">
564
+ <?php echo esc_html__( 'Comment Optin', 'email-subscribers' ); ?>
565
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Whenever a reader leaves a blog comment, add him/her to a specific email list.'), $allowedtags ); ?>
566
+ </td>
567
+ <td class="ig_es_free_feature_name">
568
+ <span class='dashicons dashicons-no-alt'></span>
569
+ </td>
570
+ <td class="ig_es_starter_feature_name">
571
+ <span class='dashicons dashicons-yes'></span>
572
+ </td>
573
+ <td class="ig_es_pro_feature_name">
574
+ <span class='dashicons dashicons-yes'></span>
575
+ </td>
576
+ </tr>
577
+ <tr>
578
+ <td class="ig_es_feature_name">
579
+ <?php echo esc_html__( 'Custom Contact Fields', 'email-subscribers' ); ?>
580
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Create custom contact fields in your forms and receive responses.'), $allowedtags ); ?>
581
+ </td>
582
+ <td class="ig_es_free_feature_name">
583
+ <span class='dashicons dashicons-no-alt'></span>
584
+ </td>
585
+ <td class="ig_es_starter_feature_name">
586
+ <span class='dashicons dashicons-no-alt'></span>
587
+ </td>
588
+ <td class="ig_es_pro_feature_name">
589
+ <span class='dashicons dashicons-yes'></span>
590
+ </td>
591
+ </tr>
592
+ <tr>
593
+ <td class="ig_es_feature_name">
594
+ <?php echo esc_html__( 'Membership Plugin Integration', 'email-subscribers' ); ?>
595
+ </td>
596
+ <td class="ig_es_free_feature_name">
597
+ <span class='dashicons dashicons-no-alt'></span>
598
+ </td>
599
+ <td class="ig_es_starter_feature_name">
600
+ <span class='dashicons dashicons-no-alt'></span>
601
+ </td>
602
+ <td class="ig_es_pro_feature_name">
603
+ <?php echo esc_html__( 'Integrate with WooCommerce Memberships, MemberPress, Paid Memberships Pro, Ultimate Members.', 'email-subscribers' ); ?>
604
+ </td>
605
+ </tr>
606
+ <tr>
607
+ <td class="ig_es_feature_name">
608
+ <?php echo esc_html__( 'Popular Integrations', 'email-subscribers' ); ?>
609
+ </td>
610
+ <td class="ig_es_free_feature_name">
611
+ <span class='dashicons dashicons-no-alt'></span>
612
+ </td>
613
+ <td class="ig_es_starter_feature_name">
614
+ <span class='dashicons dashicons-no-alt'></span>
615
+ </td>
616
+ <td class="ig_es_pro_feature_name">
617
+ <?php echo esc_html__( 'Integrate with WooCommerce Abandoned Cart, Easy Digital Downloads, GiveWP Donation, Yith Wishlist Item On Sale, LearnDash, Contact Form 7, Ninja Forms, Forminator, Gravity Forms & WP Forms', 'email-subscribers' ); ?>
618
+ </td>
619
+ </tr>
620
+ <tr>
621
+ <td class="ig_es_feature_name">
622
+ <?php echo esc_html__( 'Gmail Api', 'email-subscribers' ); ?>
623
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Send reliable transactional emails using your Gmail API safely.'), $allowedtags ); ?>
624
+ </td>
625
+ <td class="ig_es_free_feature_name">
626
+ <span class='dashicons dashicons-no-alt'></span>
627
+ </td>
628
+ <td class="ig_es_starter_feature_name">
629
+ <span class='dashicons dashicons-yes'></span>
630
+ </td>
631
+ <td class="ig_es_pro_feature_name">
632
+ <span class='dashicons dashicons-yes'></span>
633
+ </td>
634
+ </tr>
635
+ <tr>
636
+ <td class="ig_es_feature_name">
637
+ <?php echo esc_html__( 'Email Newsletter Archive', 'email-subscribers' ); ?>
638
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Display a list of all existing email campaign newsletters on your website using a shortcode.'), $allowedtags ); ?>
639
+ </td>
640
+ <td class="ig_es_free_feature_name">
641
+ <span class='dashicons dashicons-no-alt'></span>
642
+ </td>
643
+ <td class="ig_es_starter_feature_name">
644
+ <span class='dashicons dashicons-no-alt'></span>
645
+ </td>
646
+ <td class="ig_es_pro_feature_name">
647
+ <span class='dashicons dashicons-yes'></span>
648
+ </td>
649
+ </tr>
650
+ <tr>
651
+ <td class="ig_es_feature_name">
652
+ <?php echo esc_html__( 'Send WooCommerce Coupons', 'email-subscribers' ); ?>
653
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Automatically send unique WooCommerce coupons when someone subscribes, places an order, left a product review and more.'), $allowedtags ); ?>
654
+ </td>
655
+ <td class="ig_es_free_feature_name">
656
+ <span class='dashicons dashicons-no-alt'></span>
657
+ </td>
658
+ <td class="ig_es_starter_feature_name">
659
+ <span class='dashicons dashicons-no-alt'></span>
660
+ </td>
661
+ <td class="ig_es_pro_feature_name">
662
+ <span class='dashicons dashicons-yes'></span>
663
+ </td>
664
+ </tr>
665
+ <tr>
666
+ <td class="ig_es_feature_name">
667
+ <?php echo esc_html__( 'Drag and Drop Campaign Editor', 'email-subscribers' ); ?>
668
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Build email campaigns faster and better with an intuitive drag and drop interface.'), $allowedtags ); ?>
669
+ </td>
670
+ <td class="ig_es_free_feature_name">
671
+ <?php echo esc_html__( 'Basic Blocks', 'email-subscribers' ); ?>
672
+ </td>
673
+ <td class="ig_es_starter_feature_name">
674
+ <?php echo esc_html__( 'Advanced Blocks', 'email-subscribers' ); ?>
675
+ </td>
676
+ <td class="ig_es_pro_feature_name">
677
+ <?php echo esc_html__( 'Advanced Blocks', 'email-subscribers' ); ?>
678
+ </td>
679
+ </tr>
680
+ <tr>
681
+ <td class="ig_es_feature_name">
682
+ <?php echo esc_html__( 'Resend Confirmation Email', 'email-subscribers' ); ?>
683
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Resend confirmation emails to those who abandon it when you\'re using the double opt-in feature.'), $allowedtags ); ?>
684
+ </td>
685
+ <td class="ig_es_free_feature_name">
686
+ <span class='dashicons dashicons-no-alt'></span>
687
+ </td>
688
+ <td class="ig_es_starter_feature_name">
689
+ <span class='dashicons dashicons-no-alt'></span>
690
+ </td>
691
+ <td class="ig_es_pro_feature_name">
692
+ <span class='dashicons dashicons-yes'></span>
693
+ </td>
694
+ </tr>
695
+ <tr>
696
+ <td class="ig_es_feature_name">
697
+ <?php echo esc_html__( 'Weekly Summary', 'email-subscribers' ); ?>
698
+ <?php echo wp_kses( ES_Common::get_tooltip_html('Receive a weekly summary of your all email campaigns & growth of your email list.'), $allowedtags ); ?>
699
+ </td>
700
+ <td class="ig_es_free_feature_name">
701
+ <span class='dashicons dashicons-no-alt'></span>
702
+ </td>
703
+ <td class="ig_es_starter_feature_name">
704
+ <span class='dashicons dashicons-no-alt'></span>
705
+ </td>
706
+ <td class="ig_es_pro_feature_name">
707
+ <span class='dashicons dashicons-yes'></span>
708
+ </td>
709
+ </tr>
710
+ <tr>
711
+ <td class="ig_es_feature_name">
712
+ <?php echo esc_html__( 'Support', 'email-subscribers' ); ?>
713
+ </td>
714
+ <td class="ig_es_free_feature_name">
715
+ <?php echo esc_html__( 'WordPress Forum Support', 'email-subscribers' ); ?>
716
+ </td>
717
+ <td class="ig_es_starter_feature_name">
718
+ <?php echo esc_html__( 'Premium Support (Email)', 'email-subscribers' ); ?>
719
+ </td>
720
+ <td class="ig_es_pro_feature_name">
721
+ <?php echo esc_html__( 'VIP Support (Email + Facebook)', 'email-subscribers' ); ?>
722
+ </td>
723
+ </tr>
724
+ <tr>
725
+ <td class="ig_es_feature_name">
726
+ <?php echo esc_html__( 'Pricing', 'email-subscribers' ); ?>
727
+ </td>
728
+ <td class="ig_es_free_feature_name">
729
+ <span class=''>Free</span>
730
+ </td>
731
+ <td class="ig_es_starter_feature_name">
732
+ <div class="center">
733
+ <a class="ig_es_button small green center" href="#ig_es_price_column_container" style="text-transform: none;"><?php esc_html_e( 'Buy Starter', 'email-subscribers' ); ?></a>
734
+ </div>
735
+ </td>
736
+ <td class="ig_es_pro_feature_name">
737
+ <div class="center">
738
+ <a class="ig_es_button small green center" href="#ig_es_price_column_container" style="text-transform: none;"><?php esc_html_e( 'Buy Pro', 'email-subscribers' ); ?></a>
739
+ </div>
740
+ </td>
741
+ </tr>
742
+ </tbody>
743
+ </table>
744
+ </div>
745
+ <div class="ig_es_row" id="ig-es-testimonial-others">
746
+ <div style="width: 70%; margin: 0 auto; display: flex; gap: 2em;">
747
+ <div class="ig_es_column ig-es-testimonial-content">
748
+ <?php
749
+ echo wp_kses( apply_filters( 'ig_es_pricing_page_testimonial_2',
750
+ '<div class="ig_es_testimonial_text">
751
+ <div class="font-semibold text-lg pb-2">' . __('Easy to install and use') . '</div>
752
+ ' . __( 'I use this to send a message to my subscribers whenever there’s a new post on my blog. Very easy to install, guided process and clear instructions.', 'email-subscribers' ) . '<br><br>
753
+ - ' . __( 'rudybrinkman', 'email-subscribers' ) . '
754
+ </div>' ), $allowedtags );
755
+ ?>
756
+ </div>
757
+ <div class="ig_es_column ig-es-testimonial-content">
758
+ <?php
759
+ echo wp_kses( apply_filters( 'ig_es_pricing_page_testimonial_3',
760
+ '<div class="ig_es_testimonial_text">
761
+ <div class="font-semibold text-lg pb-2">' . __('Great for professional bloggers') . '</div>
762
+ ' . __( 'Great for Professional Bloggers and great support! Icegram was very responsive to our questions. I highly recommend this WordPress plugin and the PAID version is worth the cost. The paid version shows intuitive stats and drill-down information.', 'email-subscribers' ) . '<br><br>
763
+ - ' . __( 'rickvidallon', 'email-subscribers' ) . '
764
+ </div>' ), $allowedtags );
765
+ ?>
766
+ </div>
767
+ </div>
768
+ </div>
769
+ <div class="ig_es_row" id="ig_es_product_page_link">
770
+ <?php
771
+ /* translators: %s: Pricing page URL */
772
+ echo sprintf( esc_html__( 'You can either manually send normal email marketing campaigns or use %s to automate reliable emails that land in subscribers’ inboxes, not in the spam folders.', 'email-subscribers' ), '<a style="color: #00848D;" target="_blank" href="https://www.icegram.com/email-subscribers/?utm_source=es_in_app&utm_medium=in_app_pricing&utm_campaign=es_pricing_footer">' . esc_html__( 'Email Subscribers', 'email-subscribers' ) . '</a>' );
773
+ ?>
774
+ <br>
775
+ </div>
776
+ </div>
777
+ <?php
778
+ }
779
+ }
780
+
781
+ new Email_Subscribers_Pricing();
lite/includes/classes/class-es-campaign-report.php CHANGED
@@ -496,6 +496,14 @@ class ES_Campaign_Report extends ES_List_Table {
496
  </svg>
497
  <?php
498
  break;
 
 
 
 
 
 
 
 
499
  case '':
500
  ?>
501
  <i class="dashicons dashicons-es dashicons-minus"/>
496
  </svg>
497
  <?php
498
  break;
499
+ case 'Failed':
500
+ ?>
501
+ <svg xmlns="http://www.w3.org/2000/svg" class="text-red-500" width="28" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
502
+ <title><?php echo esc_html__( 'Failed', 'email-subscribers' ); ?></title>
503
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
504
+ </svg>
505
+ <?php
506
+ break;
507
  case '':
508
  ?>
509
  <i class="dashicons dashicons-es dashicons-minus"/>
lite/includes/classes/class-es-handle-post-notification.php CHANGED
@@ -33,8 +33,9 @@ class ES_Handle_Post_Notification {
33
  }
34
 
35
  add_action( 'ig_es_refresh_post_notification_content', array( $this, 'refresh_post_content' ), 10, 2 );
36
-
37
  add_action( 'init', array( $this, 'init' ) );
 
38
  }
39
 
40
  /**
@@ -59,7 +60,7 @@ class ES_Handle_Post_Notification {
59
  }
60
 
61
  public function handle_post_publish( $post, $requst, $insert ) {
62
-
63
  // If it's inserted for the first time????
64
  // Not able to check whether it'a first time post or nth times
65
  if ( is_object( $post ) && ( $post instanceof WP_Post ) ) { // Do it for the first time only
@@ -74,6 +75,7 @@ class ES_Handle_Post_Notification {
74
 
75
  }
76
 
 
77
  public function es_post_publish_callback( $post_status, $original_post_status, $post ) {
78
 
79
  if ( ( 'publish' == $post_status ) && ( 'publish' != $original_post_status ) ) {
@@ -81,9 +83,23 @@ class ES_Handle_Post_Notification {
81
  if ( is_object( $post ) ) {
82
 
83
  $post_id = $post->ID;
 
84
  if ( ! empty( $post_id ) ) {
85
 
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  $is_post_notified = get_post_meta( $post_id, 'ig_es_is_post_notified', true );
88
 
89
  //Return if post notification is already sent once.
@@ -164,7 +180,7 @@ class ES_Handle_Post_Notification {
164
  $mailing_queue_hash = $guid;
165
  $campaign_id = $notification['id'];
166
  ES_DB_Sending_Queue::do_insert_from_contacts_table( $mailing_queue_id, $mailing_queue_hash, $campaign_id, $list_id );
167
-
168
  update_post_meta( $post_id, 'ig_es_is_post_notified', 1 );
169
 
170
  $post_mailing_queue_ids[] = $mailing_queue_id;
@@ -251,7 +267,7 @@ class ES_Handle_Post_Notification {
251
 
252
  $es_templ_body = str_replace( '{{POSTIMAGE-URL}}', $post_thumbnail_url, $es_templ_body );
253
  $es_templ_body = str_replace( '{{post.image_url}}', $post_thumbnail_url, $es_templ_body );
254
-
255
  // Get post description
256
  $post_description_length = 50;
257
  $post_description = $post->post_content;
@@ -356,14 +372,14 @@ class ES_Handle_Post_Notification {
356
  $template_id = ES()->campaigns_db->get_template_id_by_campaign( $campaign_id );
357
  $template = get_post( $template_id );
358
  $campaign = ES()->campaigns_db->get( $campaign_id );
359
-
360
  $campaign_subject = $campaign['name'];
361
  if ( ! empty( $campaign['body'] ) ) {
362
  $template_content = $campaign['body'];
363
  } else {
364
  $template_content = $template->post_content;
365
  }
366
-
367
  $content['subject'] = self::prepare_subject( $campaign_subject, $post );
368
  $content['body'] = self::prepare_body( $template_content, $post_id, $template_id );
369
 
@@ -372,20 +388,20 @@ class ES_Handle_Post_Notification {
372
 
373
  /**
374
  * Add generated post mailing queue ids to REST response.
375
- *
376
  * @since 5.4.0
377
- *
378
  * @param object $response REST response.
379
  * @param object $post Post object.
380
  * @param array $request REST request.
381
- *
382
  * @return array $response REST response.
383
  */
384
  public function add_generated_post_mailing_queue_ids( $response, $post, $request ) {
385
-
386
  if ( $post instanceof WP_Post ) {
387
  $response->data['post_mailing_queue_ids'] = array();
388
-
389
  $post_mailing_queue_ids = get_transient( 'ig_es_post_mailing_queue_ids_' . $post->ID );
390
  if ( ! empty( $post_mailing_queue_ids ) ) {
391
  $response->data['post_mailing_queue_ids'] = $post_mailing_queue_ids;
@@ -398,7 +414,7 @@ class ES_Handle_Post_Notification {
398
 
399
  /**
400
  * Show emails queued notice when post is published in Classic Editor
401
- *
402
  * @since 5.4.0
403
  */
404
  public function show_emails_queued_notice() {
@@ -424,9 +440,9 @@ class ES_Handle_Post_Notification {
424
 
425
  /**
426
  * Check if current screen is post edit screen
427
- *
428
  * @since 5.4.0
429
- *
430
  * @return boolean $is_post_edit_screen True if current screen is post edit screen else false
431
  */
432
  public function is_post_edit_screen() {
@@ -437,7 +453,7 @@ class ES_Handle_Post_Notification {
437
 
438
  /**
439
  * Enqueue admin scripts on post edit screen
440
- *
441
  * @since 5.4.0
442
  */
443
  public function enqueue_admin_scripts() {
@@ -446,7 +462,7 @@ class ES_Handle_Post_Notification {
446
  // Return if not on post edit screen.
447
  return;
448
  }
449
-
450
  $current_screen = get_current_screen();
451
 
452
  $is_block_editor_page = method_exists( $current_screen, 'is_block_editor' ) && $current_screen->is_block_editor();
@@ -485,16 +501,16 @@ class ES_Handle_Post_Notification {
485
 
486
  const currentPostPublished = coreEditor.isCurrentPostPublished();
487
  if ( currentPostPublished ) {
488
-
489
  if ( 'undefined' === typeof coreEditor.getCurrentPost ) {
490
  return;
491
  }
492
-
493
  const currentPost = coreEditor.getCurrentPost();
494
  if ( 'undefined' === typeof currentPost.post_mailing_queue_ids || currentPost.post_mailing_queue_ids.length === 0 ) {
495
  return;
496
  }
497
-
498
  if ( ! notice_shown ) {
499
  notice_shown = true;
500
  setTimeout(() => {
@@ -527,9 +543,9 @@ class ES_Handle_Post_Notification {
527
 
528
  /**
529
  * Get admin notice text.
530
- *
531
  * @since 5.4.0
532
- *
533
  * @return string $notice_text Admin Notice text.
534
  */
535
  public function get_emails_queued_notice_text() {
33
  }
34
 
35
  add_action( 'ig_es_refresh_post_notification_content', array( $this, 'refresh_post_content' ), 10, 2 );
36
+
37
  add_action( 'init', array( $this, 'init' ) );
38
+
39
  }
40
 
41
  /**
60
  }
61
 
62
  public function handle_post_publish( $post, $requst, $insert ) {
63
+
64
  // If it's inserted for the first time????
65
  // Not able to check whether it'a first time post or nth times
66
  if ( is_object( $post ) && ( $post instanceof WP_Post ) ) { // Do it for the first time only
75
 
76
  }
77
 
78
+
79
  public function es_post_publish_callback( $post_status, $original_post_status, $post ) {
80
 
81
  if ( ( 'publish' == $post_status ) && ( 'publish' != $original_post_status ) ) {
83
  if ( is_object( $post ) ) {
84
 
85
  $post_id = $post->ID;
86
+
87
  if ( ! empty( $post_id ) ) {
88
 
89
+ $post_date = $post->post_date;
90
+ $last_year_date = gmdate( 'Y-m-d H:i:s', strtotime('-1 year') );
91
+ $post_date_timestamp = strtotime( $post_date );
92
+ $last_year_date_timestamp = strtotime( $last_year_date );
93
+
94
+ $old_post = $post_date_timestamp < $last_year_date_timestamp;
95
+
96
+ $old_post_notification_disabled = apply_filters( 'ig_es_post_notification_for_old_post', true );
97
+
98
+ if ( $$old_post && $old_post_notification_disabled ) {
99
+ // don't send post notification to old post
100
+ return;
101
+ }
102
+
103
  $is_post_notified = get_post_meta( $post_id, 'ig_es_is_post_notified', true );
104
 
105
  //Return if post notification is already sent once.
180
  $mailing_queue_hash = $guid;
181
  $campaign_id = $notification['id'];
182
  ES_DB_Sending_Queue::do_insert_from_contacts_table( $mailing_queue_id, $mailing_queue_hash, $campaign_id, $list_id );
183
+
184
  update_post_meta( $post_id, 'ig_es_is_post_notified', 1 );
185
 
186
  $post_mailing_queue_ids[] = $mailing_queue_id;
267
 
268
  $es_templ_body = str_replace( '{{POSTIMAGE-URL}}', $post_thumbnail_url, $es_templ_body );
269
  $es_templ_body = str_replace( '{{post.image_url}}', $post_thumbnail_url, $es_templ_body );
270
+
271
  // Get post description
272
  $post_description_length = 50;
273
  $post_description = $post->post_content;
372
  $template_id = ES()->campaigns_db->get_template_id_by_campaign( $campaign_id );
373
  $template = get_post( $template_id );
374
  $campaign = ES()->campaigns_db->get( $campaign_id );
375
+
376
  $campaign_subject = $campaign['name'];
377
  if ( ! empty( $campaign['body'] ) ) {
378
  $template_content = $campaign['body'];
379
  } else {
380
  $template_content = $template->post_content;
381
  }
382
+
383
  $content['subject'] = self::prepare_subject( $campaign_subject, $post );
384
  $content['body'] = self::prepare_body( $template_content, $post_id, $template_id );
385
 
388
 
389
  /**
390
  * Add generated post mailing queue ids to REST response.
391
+ *
392
  * @since 5.4.0
393
+ *
394
  * @param object $response REST response.
395
  * @param object $post Post object.
396
  * @param array $request REST request.
397
+ *
398
  * @return array $response REST response.
399
  */
400
  public function add_generated_post_mailing_queue_ids( $response, $post, $request ) {
401
+
402
  if ( $post instanceof WP_Post ) {
403
  $response->data['post_mailing_queue_ids'] = array();
404
+
405
  $post_mailing_queue_ids = get_transient( 'ig_es_post_mailing_queue_ids_' . $post->ID );
406
  if ( ! empty( $post_mailing_queue_ids ) ) {
407
  $response->data['post_mailing_queue_ids'] = $post_mailing_queue_ids;
414
 
415
  /**
416
  * Show emails queued notice when post is published in Classic Editor
417
+ *
418
  * @since 5.4.0
419
  */
420
  public function show_emails_queued_notice() {
440
 
441
  /**
442
  * Check if current screen is post edit screen
443
+ *
444
  * @since 5.4.0
445
+ *
446
  * @return boolean $is_post_edit_screen True if current screen is post edit screen else false
447
  */
448
  public function is_post_edit_screen() {
453
 
454
  /**
455
  * Enqueue admin scripts on post edit screen
456
+ *
457
  * @since 5.4.0
458
  */
459
  public function enqueue_admin_scripts() {
462
  // Return if not on post edit screen.
463
  return;
464
  }
465
+
466
  $current_screen = get_current_screen();
467
 
468
  $is_block_editor_page = method_exists( $current_screen, 'is_block_editor' ) && $current_screen->is_block_editor();
501
 
502
  const currentPostPublished = coreEditor.isCurrentPostPublished();
503
  if ( currentPostPublished ) {
504
+
505
  if ( 'undefined' === typeof coreEditor.getCurrentPost ) {
506
  return;
507
  }
508
+
509
  const currentPost = coreEditor.getCurrentPost();
510
  if ( 'undefined' === typeof currentPost.post_mailing_queue_ids || currentPost.post_mailing_queue_ids.length === 0 ) {
511
  return;
512
  }
513
+
514
  if ( ! notice_shown ) {
515
  notice_shown = true;
516
  setTimeout(() => {
543
 
544
  /**
545
  * Get admin notice text.
546
+ *
547
  * @since 5.4.0
548
+ *
549
  * @return string $notice_text Admin Notice text.
550
  */
551
  public function get_emails_queued_notice_text() {
lite/includes/classes/class-es-info.php CHANGED
@@ -42,9 +42,9 @@ class ES_Info {
42
  }
43
 
44
  public static function es_pricing_callback() {
45
- // remove because of warning
46
- // $url = 'https://www.icegram.com/email-subscribers-pricing/';
47
- // header('Location: ' . $url );
48
  }
49
 
50
  public static function get_instance() {
42
  }
43
 
44
  public static function es_pricing_callback() {
45
+
46
+ Email_Subscribers_Pricing::sm_show_pricing();
47
+
48
  }
49
 
50
  public static function get_instance() {
lite/includes/classes/class-es-mailer.php CHANGED
@@ -802,11 +802,10 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
802
 
803
  $send_response = $this->mailer->send_batch();
804
 
805
- if ( ! is_wp_error( $send_response ) ) {
806
-
807
- if ( ! empty( $contact_ids ) ) {
808
- do_action( 'ig_es_message_sent', $contact_ids, $campaign_id, $message_id );
809
- }
810
  }
811
 
812
  $this->email_limit -= $this->mailer->current_batch_size;
@@ -814,7 +813,7 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
814
  $this->mailer->handle_throttling();
815
 
816
  // Error Sending Email?
817
- if ( is_wp_error( $send_response ) ) {
818
  $response['status'] = 'ERROR';
819
  $response['message'] = $send_response->get_error_messages();
820
  // TODO: Log somewhere
@@ -827,19 +826,16 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
827
 
828
  // object | WP_Error
829
  $send_response = $this->mailer->send( $message );
 
 
 
830
 
831
  // Error Sending Email?
832
  if ( is_wp_error( $send_response ) ) {
833
  $response['status'] = 'ERROR';
834
  $response['message'] = $send_response->get_error_messages();
835
-
836
- do_action( 'ig_es_email_sending_error', $contact_id, $campaign_id, $message_id, $response );
837
-
838
- // TODO: Log somewhere
839
  }
840
 
841
- do_action( 'ig_es_message_sent', $contact_id, $campaign_id, $message_id );
842
-
843
  // Reduce Email Sending Limit for this hour
844
  $this->email_limit --;
845
 
@@ -855,11 +851,10 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
855
  }
856
 
857
  $send_response = $this->mailer->send_batch();
858
- if ( ! is_wp_error( $send_response ) ) {
859
- $contact_ids = array_column( $this->mailer->batch_data, 'contact_id' );
860
- if ( ! empty( $contact_ids ) ) {
861
- do_action( 'ig_es_message_sent', $contact_ids, $campaign_id, $message_id );
862
- }
863
  }
864
 
865
  $this->email_limit -= $this->mailer->current_batch_size;
802
 
803
  $send_response = $this->mailer->send_batch();
804
 
805
+ $send_status = ! is_wp_error( $send_response ) ? 'sent' : 'failed';
806
+
807
+ if ( ! empty( $contact_ids ) ) {
808
+ do_action( 'ig_es_message_' . $send_status, $contact_ids, $campaign_id, $message_id );
 
809
  }
810
 
811
  $this->email_limit -= $this->mailer->current_batch_size;
813
  $this->mailer->handle_throttling();
814
 
815
  // Error Sending Email?
816
+ if ( 'failed' === $send_status ) {
817
  $response['status'] = 'ERROR';
818
  $response['message'] = $send_response->get_error_messages();
819
  // TODO: Log somewhere
826
 
827
  // object | WP_Error
828
  $send_response = $this->mailer->send( $message );
829
+ $send_status = ! is_wp_error( $send_response ) ? 'sent' : 'failed';
830
+
831
+ do_action( 'ig_es_message_' . $send_status, $contact_id, $campaign_id, $message_id );
832
 
833
  // Error Sending Email?
834
  if ( is_wp_error( $send_response ) ) {
835
  $response['status'] = 'ERROR';
836
  $response['message'] = $send_response->get_error_messages();
 
 
 
 
837
  }
838
 
 
 
839
  // Reduce Email Sending Limit for this hour
840
  $this->email_limit --;
841
 
851
  }
852
 
853
  $send_response = $this->mailer->send_batch();
854
+ $send_status = ! is_wp_error( $send_response ) ? 'sent' : 'failed';
855
+
856
+ if ( ! empty( $contact_ids ) ) {
857
+ do_action( 'ig_es_message_' . $send_status, $contact_ids, $campaign_id, $message_id );
 
858
  }
859
 
860
  $this->email_limit -= $this->mailer->current_batch_size;
lite/includes/classes/class-es-queue.php CHANGED
@@ -41,6 +41,7 @@ if ( ! class_exists( 'ES_Queue' ) ) {
41
  // add_action( 'ig_es_email_sending_error', array( &$this, 'set_status_in_queue' ), 10, 4 );
42
  add_action( 'ig_es_message_sent', array( &$this, 'set_sent_status' ), 10, 3 );
43
  add_action( 'ig_es_message_sent', array( &$this, 'update_email_sent_count' ), 10, 3 );
 
44
  add_action( 'ig_es_contact_unsubscribe', array( &$this, 'delete_contact_queued_emails' ), 10, 4 );
45
  add_action( 'ig_es_admin_contact_unsubscribe', array( &$this, 'delete_contact_queued_emails' ), 10, 4 );
46
 
@@ -772,6 +773,23 @@ if ( ! class_exists( 'ES_Queue' ) ) {
772
  do_action( 'ig_es_campaign_sent', $notification_guid );
773
  }
774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  // TODO: Implement better solution
776
  set_transient( 'ig_es_total_emails_sent', $total_emails, MINUTE_IN_SECONDS );
777
  set_transient( 'ig_es_remaining_email_count', $remaining_emails_to_be_sent, MINUTE_IN_SECONDS );
@@ -923,7 +941,8 @@ if ( ! class_exists( 'ES_Queue' ) ) {
923
  public function set_sending_status( $contact_id = 0, $campaign_id = 0, $message_id = 0 ) {
924
 
925
  if ( 0 != $contact_id && 0 != $message_id ) {
926
- $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, 'Sending' );
 
927
  }
928
  }
929
 
@@ -939,7 +958,25 @@ if ( ! class_exists( 'ES_Queue' ) ) {
939
  public function set_sent_status( $contact_id = 0, $campaign_id = 0, $message_id = 0 ) {
940
 
941
  if ( 0 != $contact_id && 0 != $message_id ) {
942
- $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, 'Sent' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
943
  }
944
  }
945
 
@@ -956,7 +993,8 @@ if ( ! class_exists( 'ES_Queue' ) ) {
956
  public function set_status_in_queue( $contact_id = 0, $campaign_id = 0, $message_id = 0, $response = array() ) {
957
 
958
  if ( 0 != $contact_id && 0 != $message_id ) {
959
- $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, 'In Queue' );
 
960
  }
961
  }
962
 
41
  // add_action( 'ig_es_email_sending_error', array( &$this, 'set_status_in_queue' ), 10, 4 );
42
  add_action( 'ig_es_message_sent', array( &$this, 'set_sent_status' ), 10, 3 );
43
  add_action( 'ig_es_message_sent', array( &$this, 'update_email_sent_count' ), 10, 3 );
44
+ add_action( 'ig_es_message_failed', array( &$this, 'set_failed_status' ), 10, 3 );
45
  add_action( 'ig_es_contact_unsubscribe', array( &$this, 'delete_contact_queued_emails' ), 10, 4 );
46
  add_action( 'ig_es_admin_contact_unsubscribe', array( &$this, 'delete_contact_queued_emails' ), 10, 4 );
47
 
773
  do_action( 'ig_es_campaign_sent', $notification_guid );
774
  }
775
 
776
+
777
+ $campaign_failed = did_action( 'ig_es_message_failed' );
778
+ if ( $campaign_failed ) {
779
+ $notification_meta = maybe_unserialize( $notification['meta'] );
780
+ $failed_count = isset( $notification_meta['failed_count'] ) ? $notification_meta['failed_count'] : 0;
781
+ $failed_count++;
782
+ $notification_meta['failed_count'] = $failed_count;
783
+ $notification_data = array(
784
+ 'meta' => maybe_serialize( $notification_meta ),
785
+ );
786
+ if ( $failed_count >= 3 ) {
787
+ $notification_data['status'] = IG_ES_MAILING_QUEUE_STATUS_FAILED;
788
+ do_action( 'ig_es_campaign_failed', $notification_guid );
789
+ }
790
+ ES_DB_Mailing_Queue::update_mailing_queue( $message_id, $notification_data );
791
+ }
792
+
793
  // TODO: Implement better solution
794
  set_transient( 'ig_es_total_emails_sent', $total_emails, MINUTE_IN_SECONDS );
795
  set_transient( 'ig_es_remaining_email_count', $remaining_emails_to_be_sent, MINUTE_IN_SECONDS );
941
  public function set_sending_status( $contact_id = 0, $campaign_id = 0, $message_id = 0 ) {
942
 
943
  if ( 0 != $contact_id && 0 != $message_id ) {
944
+ $sending_status = IG_ES_SENDING_QUEUE_STATUS_SENDING;
945
+ $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, $sending_status );
946
  }
947
  }
948
 
958
  public function set_sent_status( $contact_id = 0, $campaign_id = 0, $message_id = 0 ) {
959
 
960
  if ( 0 != $contact_id && 0 != $message_id ) {
961
+ $sent_status = IG_ES_SENDING_QUEUE_STATUS_SENT;
962
+ $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, $sent_status );
963
+ }
964
+ }
965
+
966
+ /**
967
+ * Set "Sent" status
968
+ *
969
+ * @param int $contact_id
970
+ * @param int $campaign_id
971
+ * @param int $message_id
972
+ *
973
+ * @since 4.3.2
974
+ */
975
+ public function set_failed_status( $contact_id = 0, $campaign_id = 0, $message_id = 0 ) {
976
+
977
+ if ( 0 != $contact_id && 0 != $message_id ) {
978
+ $failed_status = IG_ES_SENDING_QUEUE_STATUS_FAILED;
979
+ $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, $failed_status );
980
  }
981
  }
982
 
993
  public function set_status_in_queue( $contact_id = 0, $campaign_id = 0, $message_id = 0, $response = array() ) {
994
 
995
  if ( 0 != $contact_id && 0 != $message_id ) {
996
+ $in_queue_status = IG_ES_SENDING_QUEUE_STATUS_QUEUED;
997
+ $this->update_email_sent_status( $contact_id, $campaign_id, $message_id, $in_queue_status );
998
  }
999
  }
1000
 
lite/includes/classes/class-es-reports-table.php CHANGED
@@ -251,9 +251,17 @@ class ES_Reports_Table extends ES_List_Table {
251
  </svg>',
252
  __( 'Scheduled', 'email-subscribers' )
253
  );
 
 
 
 
 
 
 
254
  }
 
255
  $actions = array();
256
- if ( in_array( $report_status, array( IG_ES_MAILING_QUEUE_STATUS_QUEUED, IG_ES_MAILING_QUEUE_STATUS_SENDING ), true ) ) {
257
  $actions['send_now'] = $this->prepare_send_now_url( $item );
258
  }
259
 
251
  </svg>',
252
  __( 'Scheduled', 'email-subscribers' )
253
  );
254
+ } elseif ( IG_ES_MAILING_QUEUE_STATUS_FAILED === $report_status ) {
255
+ $status_html = sprintf(
256
+ '<svg class="flex-shrink-0 h-6 w-6 inline text-red-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
257
+ <title>%s</title>
258
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>',
259
+ __( 'Failed', 'email-subscribers' )
260
+ );
261
  }
262
+
263
  $actions = array();
264
+ if ( in_array( $report_status, array( IG_ES_MAILING_QUEUE_STATUS_QUEUED, IG_ES_MAILING_QUEUE_STATUS_SENDING, IG_ES_MAILING_QUEUE_STATUS_FAILED ), true ) ) {
265
  $actions['send_now'] = $this->prepare_send_now_url( $item );
266
  }
267
 
lite/includes/db/class-es-db-sending-queue.php CHANGED
@@ -55,9 +55,11 @@ class ES_DB_Sending_Queue {
55
  $where = apply_filters( 'ig_es_get_emails_to_be_sent_by_hash_condition', 'AND 1=1' );
56
  $subscribers = $wpbd->get_results(
57
  $wpbd->prepare(
58
- "SELECT * FROM {$wpbd->prefix}ig_sending_queue WHERE status = %s AND mailing_queue_hash = %s $where ORDER BY id LIMIT 0, %d",
59
  array(
60
- 'In Queue',
 
 
61
  $guid,
62
  $limit,
63
  )
@@ -142,8 +144,13 @@ class ES_DB_Sending_Queue {
142
  if ( ! empty( $notification_hash ) ) {
143
  $result = $wpdb->get_var(
144
  $wpdb->prepare(
145
- "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE mailing_queue_hash = %s AND status = %s",
146
- array( $notification_hash, 'In Queue' )
 
 
 
 
 
147
  )
148
  );
149
  }
@@ -158,8 +165,12 @@ class ES_DB_Sending_Queue {
158
 
159
  $result = $wpdb->get_var(
160
  $wpdb->prepare(
161
- "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE status = %s",
162
- array( 'In Queue' )
 
 
 
 
163
  )
164
  );
165
 
@@ -173,10 +184,11 @@ class ES_DB_Sending_Queue {
173
 
174
  $result = 0;
175
  if ( '' != $notification_hash ) {
 
176
  $result = $wpdb->get_var(
177
  $wpdb->prepare(
178
  "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE mailing_queue_hash = %s AND status = %s",
179
- array( $notification_hash, 'Sent' )
180
  )
181
  );
182
  }
55
  $where = apply_filters( 'ig_es_get_emails_to_be_sent_by_hash_condition', 'AND 1=1' );
56
  $subscribers = $wpbd->get_results(
57
  $wpbd->prepare(
58
+ "SELECT * FROM {$wpbd->prefix}ig_sending_queue WHERE status IN( %s, %s, %s ) AND mailing_queue_hash = %s $where ORDER BY id LIMIT 0, %d",
59
  array(
60
+ IG_ES_SENDING_QUEUE_STATUS_QUEUED,
61
+ IG_ES_SENDING_QUEUE_STATUS_SENDING,
62
+ IG_ES_SENDING_QUEUE_STATUS_FAILED,
63
  $guid,
64
  $limit,
65
  )
144
  if ( ! empty( $notification_hash ) ) {
145
  $result = $wpdb->get_var(
146
  $wpdb->prepare(
147
+ "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE mailing_queue_hash = %s AND status IN ( %s, %s, %s )",
148
+ array(
149
+ $notification_hash,
150
+ IG_ES_SENDING_QUEUE_STATUS_QUEUED,
151
+ IG_ES_SENDING_QUEUE_STATUS_SENDING,
152
+ IG_ES_SENDING_QUEUE_STATUS_FAILED,
153
+ )
154
  )
155
  );
156
  }
165
 
166
  $result = $wpdb->get_var(
167
  $wpdb->prepare(
168
+ "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE status IN ( %s, %s, %s )",
169
+ array(
170
+ IG_ES_SENDING_QUEUE_STATUS_QUEUED,
171
+ IG_ES_SENDING_QUEUE_STATUS_SENDING,
172
+ IG_ES_SENDING_QUEUE_STATUS_FAILED
173
+ )
174
  )
175
  );
176
 
184
 
185
  $result = 0;
186
  if ( '' != $notification_hash ) {
187
+ $sent_status = IG_ES_SENDING_QUEUE_STATUS_SENT;
188
  $result = $wpdb->get_var(
189
  $wpdb->prepare(
190
  "SELECT COUNT(*) AS count FROM {$wpdb->prefix}ig_sending_queue WHERE mailing_queue_hash = %s AND status = %s",
191
+ array( $notification_hash, $sent_status )
192
  )
193
  );
194
  }
lite/includes/workflows/class-es-workflow-triggers.php CHANGED
@@ -49,6 +49,7 @@ class ES_Workflow_Triggers extends ES_Workflow_Registry {
49
  'ig_es_user_unconfirmed' => 'ES_Trigger_User_Unconfirmed',
50
  'ig_es_user_unsubscribed' => 'ES_Trigger_User_Unsubscribed',
51
  'ig_es_campaign_sent' => 'ES_Trigger_Campaign_Sent',
 
52
  );
53
 
54
  return apply_filters( 'ig_es_workflow_triggers', $includes );
49
  'ig_es_user_unconfirmed' => 'ES_Trigger_User_Unconfirmed',
50
  'ig_es_user_unsubscribed' => 'ES_Trigger_User_Unsubscribed',
51
  'ig_es_campaign_sent' => 'ES_Trigger_Campaign_Sent',
52
+ 'ig_es_campaign_failed' => 'ES_Trigger_Campaign_Failed',
53
  );
54
 
55
  return apply_filters( 'ig_es_workflow_triggers', $includes );
lite/includes/workflows/triggers/class-es-trigger-campaign-failed.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Triggers when a user gets subscribed
4
+ *
5
+ * @since 5.0.1
6
+ * @version 1.0
7
+ * @package Email Subscribers
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit;
11
+
12
+ /***
13
+ * ES_Trigger_Campaign_Failed class.
14
+ *
15
+ * @since 5.0.1
16
+ */
17
+ class ES_Trigger_Campaign_Failed extends ES_Workflow_Trigger {
18
+
19
+ /**
20
+ * Declares data items available in trigger.
21
+ *
22
+ * @var array
23
+ */
24
+ public $supplied_data_items = array( 'campaign' );
25
+
26
+ /**
27
+ * Load trigger admin props.
28
+ */
29
+ public function load_admin_details() {
30
+ $this->title = __( 'Campaign failed', 'email-subscribers' );
31
+ $this->description = __( 'Fires when a campaign isn\'t sent after trying 3 times.', 'email-subscribers' );
32
+ $this->group = __( 'Admin', 'email-subscribers' );
33
+ }
34
+
35
+ /**
36
+ * Register trigger hooks.
37
+ */
38
+ public function register_hooks() {
39
+ add_action( 'ig_es_campaign_failed', array( $this, 'handle_campaign_failed' ) );
40
+ }
41
+
42
+
43
+ /**
44
+ * Catch user subscribed hook
45
+ *
46
+ * @param int $notification_guid Notification ID.
47
+ */
48
+ public function handle_campaign_failed( $notification_guid ) {
49
+
50
+ // Prepare data.
51
+ $data = array(
52
+ 'campaign' => array(
53
+ 'notification_guid' => $notification_guid
54
+ )
55
+ );
56
+
57
+ $this->maybe_run( $data );
58
+ }
59
+
60
+
61
+ /**
62
+ * Validate a workflow.
63
+ *
64
+ * @param ES_Workflow $workflow Workflow object.
65
+ *
66
+ * @return bool
67
+ */
68
+ public function validate_workflow( $workflow ) {
69
+
70
+ $campaign = $workflow->data_layer()->get_item( 'campaign' );
71
+
72
+ if ( empty( $campaign ) ) {
73
+ return false;
74
+ }
75
+
76
+ return true;
77
+ }
78
+
79
+ }
lite/language.php CHANGED
@@ -79,6 +79,7 @@ __( 'Go To Icegram', 'email-subscribers' ),
79
  /* translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL */
80
  __( '<span id="footer-thankyou">Thank you for creating with <a href="%1$s" target="_blank">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href="%3$s" target="_blank">Icegram</a></span>', 'email-subscribers' ),
81
  __( 'Something went wrong', 'email-subscribers' ),
 
82
  __( 'Email Subscribers', 'email-subscribers' ),
83
  __( 'Last 30 days', 'email-subscribers' ),
84
  __( 'Subscribed', 'email-subscribers' ),
@@ -91,6 +92,8 @@ __( 'Opens', 'email-subscribers' ),
91
  __( 'No campaigns sent yet', 'email-subscribers' ),
92
  __( 'Latest Blog Posts from Icegram', 'email-subscribers' ),
93
  __( 'Please publish it or save it as a draft.', 'email-subscribers' ),
 
 
94
  __( 'Sorry, you are not allowed to add/edit campaign.', 'email-subscribers' ),
95
  __( 'Please add a campaign subject.', 'email-subscribers' ),
96
  __( 'From: ', 'email-subscribers' ),
@@ -428,6 +431,72 @@ __( 'Radio', 'email-subscribers' ),
428
  __( 'Number', 'email-subscribers' ),
429
  __( 'Date', 'email-subscribers' ),
430
  __( 'Your subscription was successful! Kindly check your mailbox and confirm your subscription. If you don\'t see the email within a few minutes, check the spam/junk folder.', 'email-subscribers' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
431
  __( 'You do not have permission to update settings', 'email-subscribers' ),
432
  __( 'General', 'email-subscribers' ),
433
  __( 'Notifications', 'email-subscribers' ),
@@ -526,6 +595,7 @@ __( 'Activity Info', 'email-subscribers' ),
526
  _n( '%s item', '%s items', 2, 'email-subscribers' ),
527
  __( 'Sent Date', 'email-subscribers' ),
528
  __( 'Viewed Date', 'email-subscribers' ),
 
529
  __( 'Campaign Analytics', 'email-subscribers' ),
530
  __( 'Campaign', 'email-subscribers' ),
531
  __( 'Number of campaigns per page', 'email-subscribers' ),
@@ -1216,6 +1286,8 @@ __( 'Welcome to {{SITENAME}}', 'email-subscribers' ),
1216
  __( 'Could not insert into \'%1$s\' table. \'%1$s\' may not be present in the database.', 'email-subscribers' ),
1217
  __( 'Search products...', 'email-subscribers' ),
1218
  __( 'Search...', 'email-subscribers' ),
 
 
1219
  __( 'Campaign sent', 'email-subscribers' ),
1220
  __( 'Fires when a campaign is sent successfully.', 'email-subscribers' ),
1221
  __( 'User Deleted', 'email-subscribers' ),
79
  /* translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL */
80
  __( '<span id="footer-thankyou">Thank you for creating with <a href="%1$s" target="_blank">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href="%3$s" target="_blank">Icegram</a></span>', 'email-subscribers' ),
81
  __( 'Something went wrong', 'email-subscribers' ),
82
+ /* translators: %s: Pricing page URL */
83
  __( 'Email Subscribers', 'email-subscribers' ),
84
  __( 'Last 30 days', 'email-subscribers' ),
85
  __( 'Subscribed', 'email-subscribers' ),
92
  __( 'No campaigns sent yet', 'email-subscribers' ),
93
  __( 'Latest Blog Posts from Icegram', 'email-subscribers' ),
94
  __( 'Please publish it or save it as a draft.', 'email-subscribers' ),
95
+ /* translators: %s: link to new keyword doc */
96
+ __( 'There seems to be some issue in sending your emails. You may have to check your %1$semail sending setting%2$s.', 'email-subscribers' ),
97
  __( 'Sorry, you are not allowed to add/edit campaign.', 'email-subscribers' ),
98
  __( 'Please add a campaign subject.', 'email-subscribers' ),
99
  __( 'From: ', 'email-subscribers' ),
431
  __( 'Number', 'email-subscribers' ),
432
  __( 'Date', 'email-subscribers' ),
433
  __( 'Your subscription was successful! Kindly check your mailbox and confirm your subscription. If you don\'t see the email within a few minutes, check the spam/junk folder.', 'email-subscribers' ),
434
+ /* translators: %s: Offer text */
435
+ __( 'Congratulations! You just unlocked %s on Email Subscribers Premium!', 'email-subscribers' ),
436
+ /* translators: %s: Offer text */
437
+ __( '25% off', 'email-subscribers' ),
438
+ __( '⏰ Limited time offer', 'email-subscribers' ),
439
+ __( 'Best Seller', 'email-subscribers' ),
440
+ __( 'Pro', 'email-subscribers' ),
441
+ __( '1 site (Annual)', 'email-subscribers' ),
442
+ __( '$129', 'email-subscribers' ),
443
+ __( '$97', 'email-subscribers' ),
444
+ __( 'Buy Now', 'email-subscribers' ),
445
+ __( 'Starter', 'email-subscribers' ),
446
+ __( '$79', 'email-subscribers' ),
447
+ __( '$60', 'email-subscribers' ),
448
+ __( 'Works Well!', 'email-subscribers' ),
449
+ __( 'Used the free version to get started and it worked well. Upgraded to Premium for some of the convenience features and workflows.
450
+ Pretty slick to just be able to publish on the site and have the right notifications and newsletters go out automatically!', 'email-subscribers' ),
451
+ __( 'mnmatty', 'email-subscribers' ),
452
+ __( ' More powerful features with Email Subscribers Premium!', 'email-subscribers' ),
453
+ __( 'Features', 'email-subscribers' ),
454
+ __( 'Free', 'email-subscribers' ),
455
+ __( 'What\'s so special?', 'email-subscribers' ),
456
+ __( 'Unlimited contacts, emails, forms & lists. Automatic welcome emails and new post notifications.', 'email-subscribers' ),
457
+ __( 'Everything in Free +', 'email-subscribers' ),
458
+ __( 'Everything in Starter +', 'email-subscribers' ),
459
+ __( 'Post Digest Notifications', 'email-subscribers' ),
460
+ __( 'Autoresponder & Workflows', 'email-subscribers' ),
461
+ __( 'Abandoned Cart Recovery Email', 'email-subscribers' ),
462
+ __( '3rd Party SMTP Configuration', 'email-subscribers' ),
463
+ __( 'Pepipost', 'email-subscribers' ),
464
+ __( 'Default SMTP', 'email-subscribers' ),
465
+ __( 'Amazon SES, Mailgun, SendGrid, SparkPost, Postmark, Sendinblue & Mailjet.', 'email-subscribers' ),
466
+ __( 'Automatic Batch Sending', 'email-subscribers' ),
467
+ __( 'Captcha & Security', 'email-subscribers' ),
468
+ __( 'Automatic List Cleanup', 'email-subscribers' ),
469
+ __( 'Detailed Reports/analytics', 'email-subscribers' ),
470
+ __( 'Overall Summary', 'email-subscribers' ),
471
+ __( 'Detailed Report', 'email-subscribers' ),
472
+ __( 'List Unsubscribe', 'email-subscribers' ),
473
+ __( 'Comment Optin', 'email-subscribers' ),
474
+ __( 'Custom Contact Fields', 'email-subscribers' ),
475
+ __( 'Membership Plugin Integration', 'email-subscribers' ),
476
+ __( 'Integrate with WooCommerce Memberships, MemberPress, Paid Memberships Pro, Ultimate Members.', 'email-subscribers' ),
477
+ __( 'Popular Integrations', 'email-subscribers' ),
478
+ __( 'Integrate with WooCommerce Abandoned Cart, Easy Digital Downloads, GiveWP Donation, Yith Wishlist Item On Sale, LearnDash, Contact Form 7, Ninja Forms, Forminator, Gravity Forms & WP Forms', 'email-subscribers' ),
479
+ __( 'Gmail Api', 'email-subscribers' ),
480
+ __( 'Email Newsletter Archive', 'email-subscribers' ),
481
+ __( 'Send WooCommerce Coupons', 'email-subscribers' ),
482
+ __( 'Drag and Drop Campaign Editor', 'email-subscribers' ),
483
+ __( 'Basic Blocks', 'email-subscribers' ),
484
+ __( 'Advanced Blocks', 'email-subscribers' ),
485
+ __( 'Resend Confirmation Email', 'email-subscribers' ),
486
+ __( 'Weekly Summary', 'email-subscribers' ),
487
+ __( 'Support', 'email-subscribers' ),
488
+ __( 'WordPress Forum Support', 'email-subscribers' ),
489
+ __( 'Premium Support (Email)', 'email-subscribers' ),
490
+ __( 'VIP Support (Email + Facebook)', 'email-subscribers' ),
491
+ __( 'Pricing', 'email-subscribers' ),
492
+ __( 'Buy Starter', 'email-subscribers' ),
493
+ __( 'Buy Pro', 'email-subscribers' ),
494
+ __( 'I use this to send a message to my subscribers whenever there’s a new post on my blog. Very easy to install, guided process and clear instructions.', 'email-subscribers' ),
495
+ __( 'rudybrinkman', 'email-subscribers' ),
496
+ __( 'Great for Professional Bloggers and great support! Icegram was very responsive to our questions. I highly recommend this WordPress plugin and the PAID version is worth the cost. The paid version shows intuitive stats and drill-down information.', 'email-subscribers' ),
497
+ __( 'rickvidallon', 'email-subscribers' ),
498
+ /* translators: %s: Pricing page URL */
499
+ __( 'You can either manually send normal email marketing campaigns or use %s to automate reliable emails that land in subscribers’ inboxes, not in the spam folders.', 'email-subscribers' ),
500
  __( 'You do not have permission to update settings', 'email-subscribers' ),
501
  __( 'General', 'email-subscribers' ),
502
  __( 'Notifications', 'email-subscribers' ),
595
  _n( '%s item', '%s items', 2, 'email-subscribers' ),
596
  __( 'Sent Date', 'email-subscribers' ),
597
  __( 'Viewed Date', 'email-subscribers' ),
598
+ __( 'Failed', 'email-subscribers' ),
599
  __( 'Campaign Analytics', 'email-subscribers' ),
600
  __( 'Campaign', 'email-subscribers' ),
601
  __( 'Number of campaigns per page', 'email-subscribers' ),
1286
  __( 'Could not insert into \'%1$s\' table. \'%1$s\' may not be present in the database.', 'email-subscribers' ),
1287
  __( 'Search products...', 'email-subscribers' ),
1288
  __( 'Search...', 'email-subscribers' ),
1289
+ __( 'Campaign failed', 'email-subscribers' ),
1290
+ __( 'Fires when a campaign isn\'t sent after trying 3 times.', 'email-subscribers' ),
1291
  __( 'Campaign sent', 'email-subscribers' ),
1292
  __( 'Fires when a campaign is sent successfully.', 'email-subscribers' ),
1293
  __( 'User Deleted', 'email-subscribers' ),
lite/languages/email-subscribers.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Email Subscribers & Newsletters 5.4.8\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-08-18T08:22:27+02:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: email-subscribers\n"
@@ -29,7 +29,7 @@ msgstr ""
29
 
30
  #. Author of the plugin
31
  #: lite/admin/partials/help.php:28
32
- #: lite/includes/class-email-subscribers.php:1506
33
  msgid "Icegram"
34
  msgstr ""
35
 
@@ -47,185 +47,185 @@ msgstr ""
47
  msgid "Email Subscribers Premium"
48
  msgstr ""
49
 
50
- #: email-subscribers.php:229
51
  msgid "Email Subscribers requires WooCommerce to be installed and active, plugin is currently NOT RUNNING."
52
  msgstr ""
53
 
54
- #: lite/admin/class-email-subscribers-admin.php:171
55
  msgid "An error has occured. Please try again later."
56
  msgstr ""
57
 
58
- #: lite/admin/class-email-subscribers-admin.php:172
59
  msgid "Broadcast saved successfully."
60
  msgstr ""
61
 
62
- #: lite/admin/class-email-subscribers-admin.php:173
63
  msgid "An error has occured while saving the broadcast. Please try again later."
64
  msgstr ""
65
 
66
- #: lite/admin/class-email-subscribers-admin.php:174
67
  msgid "Please add a broadcast subject before saving."
68
  msgstr ""
69
 
70
- #: lite/admin/class-email-subscribers-admin.php:175
71
  msgid "Campaign saved successfully."
72
  msgstr ""
73
 
74
- #: lite/admin/class-email-subscribers-admin.php:176
75
  msgid "An error has occured while saving the campaign. Please try again later."
76
  msgstr ""
77
 
78
- #: lite/admin/class-email-subscribers-admin.php:177
79
  msgid "Please add a campaign subject before saving."
80
  msgstr ""
81
 
82
- #: lite/admin/class-email-subscribers-admin.php:178
83
  #: pro/pro-class-email-subscribers.php:646
84
  msgid "Please add email body."
85
  msgstr ""
86
 
87
- #: lite/admin/class-email-subscribers-admin.php:179
88
  msgid "Do you really like to remove all conditions?"
89
  msgstr ""
90
 
91
- #: lite/admin/class-email-subscribers-admin.php:180
92
  msgid "Please add some recipients before proceeding."
93
  msgstr ""
94
 
95
- #: lite/admin/class-email-subscribers-admin.php:183
96
  msgid "Please select a trigger before saving the workflow."
97
  msgstr ""
98
 
99
- #: lite/admin/class-email-subscribers-admin.php:184
100
  msgid "Please add some actions before saving the workflow."
101
  msgstr ""
102
 
103
- #: lite/admin/class-email-subscribers-admin.php:185
104
  msgid "Please select an action that this workflow should perform before saving the workflow."
105
  msgstr ""
106
 
107
- #: lite/admin/class-email-subscribers-admin.php:186
108
  msgid "Changing the trigger will remove existing actions. Do you want to proceed anyway?."
109
  msgstr ""
110
 
111
- #: lite/admin/class-email-subscribers-admin.php:187
112
  msgid "Copied!"
113
  msgstr ""
114
 
115
- #: lite/admin/class-email-subscribers-admin.php:188
116
  msgid "{{field_name}} field is required!"
117
  msgstr ""
118
 
119
- #: lite/admin/class-email-subscribers-admin.php:189
120
  msgid "Required field is empty!"
121
  msgstr ""
122
 
123
- #: lite/admin/class-email-subscribers-admin.php:190
124
  msgid "Are you sure?"
125
  msgstr ""
126
 
127
- #: lite/admin/class-email-subscribers-admin.php:193
128
  msgid "Please select the status for the importing contacts!"
129
  msgstr ""
130
 
131
- #: lite/admin/class-email-subscribers-admin.php:194
132
  msgid "Please select a list for importing contacts!"
133
  msgstr ""
134
 
135
- #: lite/admin/class-email-subscribers-admin.php:195
136
  msgid "Please select the email address column!"
137
  msgstr ""
138
 
139
- #: lite/admin/class-email-subscribers-admin.php:196
140
  msgid "Preparing Data"
141
  msgstr ""
142
 
143
  #. translators: %s: Upload progress
144
- #: lite/admin/class-email-subscribers-admin.php:198
145
  msgid "Uploading...%s"
146
  msgstr ""
147
 
148
  #. translators: %s: Import progress
149
- #: lite/admin/class-email-subscribers-admin.php:200
150
  msgid "Importing contacts...%s"
151
  msgstr ""
152
 
153
  #. translators: %s: Import failed svg icon
154
- #: lite/admin/class-email-subscribers-admin.php:202
155
  msgid "Import failed! %s"
156
  msgstr ""
157
 
158
- #: lite/admin/class-email-subscribers-admin.php:203
159
  msgid "Please do not close this window until it completes..."
160
  msgstr ""
161
 
162
- #: lite/admin/class-email-subscribers-admin.php:204
163
  msgid "Preparing Import..."
164
  msgstr ""
165
 
166
  #. translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage
167
- #: lite/admin/class-email-subscribers-admin.php:206
168
  msgid "Currently %1$s of %2$s imported with %3$s errors. %4$s %5$s memory usage"
169
  msgstr ""
170
 
171
  #. translators: 1 Duplicate found email message
172
- #: lite/admin/class-email-subscribers-admin.php:208
173
  msgid "%1$s duplicate emails found."
174
  msgstr ""
175
 
176
  #. translators: %s: Time left in minutes
177
- #: lite/admin/class-email-subscribers-admin.php:210
178
  msgid "Estimate time left: %s minutes"
179
  msgstr ""
180
 
181
  #. translators: %s: Next attempt delaly time
182
- #: lite/admin/class-email-subscribers-admin.php:212
183
  msgid "Continues in %s seconds"
184
  msgstr ""
185
 
186
- #: lite/admin/class-email-subscribers-admin.php:213
187
  msgid "There was a problem during importing contacts. Please check the error logs for more information!"
188
  msgstr ""
189
 
190
- #: lite/admin/class-email-subscribers-admin.php:214
191
  msgid "Do you really like to import these contacts?"
192
  msgstr ""
193
 
194
  #. translators: %s: Process complete svg icon
195
- #: lite/admin/class-email-subscribers-admin.php:216
196
  msgid "Import complete! %s"
197
  msgstr ""
198
 
199
- #: lite/admin/class-email-subscribers-admin.php:217
200
  msgid "You are currently importing subscribers! If you leave the page all pending subscribers don't get imported!"
201
  msgstr ""
202
 
203
- #: lite/admin/class-email-subscribers-admin.php:218
204
  msgid "API is valid. Fetching lists..."
205
  msgstr ""
206
 
207
- #: lite/admin/class-email-subscribers-admin.php:219
208
  msgid "Fetching contacts from MailChimp...Please do not close this window"
209
  msgstr ""
210
 
211
- #: lite/admin/class-email-subscribers-admin.php:222
212
  msgid "SMTP Error : Unable to send test email"
213
  msgstr ""
214
 
215
- #: lite/admin/class-email-subscribers-admin.php:223
216
  msgid "Server Busy : Please try again later"
217
  msgstr ""
218
 
219
- #: lite/admin/class-email-subscribers-admin.php:224
220
  msgid "Headers verified successfully"
221
  msgstr ""
222
 
223
- #: lite/admin/class-email-subscribers-admin.php:306
224
  #: lite/admin/partials/dashboard.php:167
225
  msgid "Dashboard"
226
  msgstr ""
227
 
228
- #: lite/admin/class-email-subscribers-admin.php:311
229
  #: lite/admin/partials/dashboard.php:174
230
  #: lite/includes/classes/class-es-contacts-table.php:214
231
  #: lite/includes/pro-features.php:205
@@ -233,7 +233,7 @@ msgstr ""
233
  msgid "Audience"
234
  msgstr ""
235
 
236
- #: lite/admin/class-email-subscribers-admin.php:315
237
  #: lite/admin/class-es-form-admin.php:232
238
  #: lite/admin/class-es-form-admin.php:519
239
  #: lite/includes/classes/class-es-lists-table.php:34
@@ -241,7 +241,7 @@ msgstr ""
241
  msgid "Lists"
242
  msgstr ""
243
 
244
- #: lite/admin/class-email-subscribers-admin.php:321
245
  #: lite/admin/class-es-form-admin.php:397
246
  #: lite/includes/classes/class-es-form-widget.php:77
247
  #: lite/includes/classes/class-es-forms-table.php:39
@@ -252,7 +252,7 @@ msgstr ""
252
  msgid "Forms"
253
  msgstr ""
254
 
255
- #: lite/admin/class-email-subscribers-admin.php:327
256
  #: lite/admin/class-es-campaign-admin.php:329
257
  #: lite/admin/partials/gallery.php:10
258
  #: lite/includes/classes/class-es-campaigns-table.php:124
@@ -264,11 +264,11 @@ msgstr ""
264
  msgid "Campaigns"
265
  msgstr ""
266
 
267
- #: lite/admin/class-email-subscribers-admin.php:331
268
  msgid "Post Notifications"
269
  msgstr ""
270
 
271
- #: lite/admin/class-email-subscribers-admin.php:333
272
  #: lite/admin/class-es-campaign-admin.php:302
273
  #: lite/includes/classes/class-es-campaign-report.php:56
274
  #: lite/includes/classes/class-es-campaigns-table.php:357
@@ -282,19 +282,19 @@ msgstr ""
282
  msgid "Broadcast"
283
  msgstr ""
284
 
285
- #: lite/admin/class-email-subscribers-admin.php:334
286
  #: lite/includes/classes/class-es-newsletters.php:426
287
- #: lite/includes/classes/class-es-reports-table.php:587
288
  #: lite/includes/classes/class-es-templates-table.php:149
289
  #: lite/admin/js/src/views/GalleryItemPreview.js:18
290
  msgid "Template Preview"
291
  msgstr ""
292
 
293
- #: lite/admin/class-email-subscribers-admin.php:339
294
  msgid "Gallery"
295
  msgstr ""
296
 
297
- #: lite/admin/class-email-subscribers-admin.php:345
298
  #: lite/includes/pro-features.php:210
299
  #: lite/includes/workflows/admin/class-es-workflow-admin-edit.php:341
300
  #: lite/includes/workflows/class-es-workflows-table.php:53
@@ -304,7 +304,7 @@ msgstr ""
304
  msgid "Workflows"
305
  msgstr ""
306
 
307
- #: lite/admin/class-email-subscribers-admin.php:354
308
  #: lite/admin/partials/dashboard.php:614
309
  #: lite/includes/classes/class-es-campaign-report.php:17
310
  #: lite/includes/classes/class-es-reports-table.php:17
@@ -318,31 +318,33 @@ msgstr ""
318
  msgid "Reports"
319
  msgstr ""
320
 
321
- #: lite/admin/class-email-subscribers-admin.php:358
322
  #: lite/admin/class-es-form-admin.php:412
323
  #: lite/admin/partials/dashboard.php:622
324
  #: lite/includes/classes/class-es-admin-settings.php:134
325
  msgid "Settings"
326
  msgstr ""
327
 
328
- #: lite/admin/class-email-subscribers-admin.php:363
329
  msgid "Go To Icegram"
330
  msgstr ""
331
 
332
  #. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
333
- #: lite/admin/class-email-subscribers-admin.php:932
334
  msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
335
  msgstr ""
336
 
337
- #: lite/admin/class-email-subscribers-admin.php:960
338
- #: lite/admin/class-email-subscribers-admin.php:1649
339
- #: lite/admin/class-email-subscribers-admin.php:1672
340
  msgid "Something went wrong"
341
  msgstr ""
342
 
343
- #: lite/admin/class-email-subscribers-admin.php:1341
 
344
  #: lite/includes/class-email-subscribers-activator.php:61
345
- #: lite/includes/class-email-subscribers.php:1503
 
346
  #: lite/includes/classes/class-es-form-widget.php:11
347
  #: lite/includes/classes/class-es-old-widget.php:13
348
  #: lite/includes/classes/class-es-old-widget.php:15
@@ -351,11 +353,11 @@ msgstr ""
351
  msgid "Email Subscribers"
352
  msgstr ""
353
 
354
- #: lite/admin/class-email-subscribers-admin.php:1383
355
  msgid "Last 30 days"
356
  msgstr ""
357
 
358
- #: lite/admin/class-email-subscribers-admin.php:1392
359
  #: lite/includes/class-es-common.php:362
360
  #: lite/includes/classes/class-es-contacts-table.php:332
361
  #: lite/includes/classes/class-es-import-subscribers.php:867
@@ -365,7 +367,7 @@ msgstr ""
365
  msgid "Subscribed"
366
  msgstr ""
367
 
368
- #: lite/admin/class-email-subscribers-admin.php:1400
369
  #: lite/admin/partials/dashboard.php:284
370
  #: lite/includes/class-es-common.php:364
371
  #: lite/includes/classes/class-es-campaign-report.php:262
@@ -378,24 +380,24 @@ msgstr ""
378
  msgid "Unsubscribed"
379
  msgstr ""
380
 
381
- #: lite/admin/class-email-subscribers-admin.php:1408
382
  #: lite/includes/pro-features.php:1335
383
  msgid "Avg Open Rate"
384
  msgstr ""
385
 
386
- #: lite/admin/class-email-subscribers-admin.php:1416
387
  msgid "Messages Sent"
388
  msgstr ""
389
 
390
- #: lite/admin/class-email-subscribers-admin.php:1427
391
  msgid "Last Campaign"
392
  msgstr ""
393
 
394
- #: lite/admin/class-email-subscribers-admin.php:1463
395
  msgid "Sent to"
396
  msgstr ""
397
 
398
- #: lite/admin/class-email-subscribers-admin.php:1475
399
  #: lite/admin/partials/dashboard.php:360
400
  #: lite/admin/partials/dashboard.php:378
401
  #: lite/admin/partials/dashboard.php:539
@@ -409,18 +411,23 @@ msgstr ""
409
  msgid "Opens"
410
  msgstr ""
411
 
412
- #: lite/admin/class-email-subscribers-admin.php:1489
413
  msgid "No campaigns sent yet"
414
  msgstr ""
415
 
416
- #: lite/admin/class-email-subscribers-admin.php:1497
417
  msgid "Latest Blog Posts from Icegram"
418
  msgstr ""
419
 
420
- #: lite/admin/class-email-subscribers-admin.php:1609
421
  msgid "Please publish it or save it as a draft."
422
  msgstr ""
423
 
 
 
 
 
 
424
  #: lite/admin/class-es-campaign-admin.php:197
425
  msgid "Sorry, you are not allowed to add/edit campaign."
426
  msgstr ""
@@ -464,7 +471,7 @@ msgstr ""
464
  #: lite/admin/class-es-campaign-admin.php:362
465
  #: lite/includes/classes/class-es-newsletters.php:413
466
  #: lite/includes/classes/class-es-newsletters.php:441
467
- #: lite/includes/classes/class-es-reports-table.php:299
468
  #: lite/includes/workflows/admin/views/action.php:28
469
  #: pro/classes/class-es-pro-sequence-report.php:273
470
  #: pro/pro-class-sequences.php:600
@@ -496,7 +503,7 @@ msgstr ""
496
 
497
  #: lite/admin/class-es-campaign-admin.php:416
498
  #: lite/includes/classes/class-es-newsletters.php:350
499
- #: lite/includes/classes/class-es-reports-table.php:315
500
  #: pro/classes/class-es-pro-sequence-report.php:299
501
  msgid "Subject"
502
  msgstr ""
@@ -1343,7 +1350,7 @@ msgstr ""
1343
  #: lite/includes/classes/class-es-export-subscribers.php:341
1344
  #: lite/includes/classes/class-es-import-subscribers.php:690
1345
  #: lite/includes/classes/class-es-import-subscribers.php:1353
1346
- #: lite/includes/classes/class-es-reports-table.php:317
1347
  #: lite/includes/workflows/class-es-workflows-table.php:461
1348
  #: pro/classes/class-es-pro-sequence-report.php:301
1349
  msgid "Status"
@@ -1687,16 +1694,16 @@ msgid "OK, I Got it!"
1687
  msgstr ""
1688
 
1689
  #. translators: 1: Error message 2: File name 3: Line number
1690
- #: lite/includes/class-email-subscribers.php:1296
1691
  msgid "%1$s in %2$s on line %3$s"
1692
  msgstr ""
1693
 
1694
- #: lite/includes/class-email-subscribers.php:1516
1695
  msgid "Icegram WC"
1696
  msgstr ""
1697
 
1698
  #. translators: %1$s - constant that was used
1699
- #: lite/includes/class-email-subscribers.php:1991
1700
  msgid "Value was set using constant %1$s"
1701
  msgstr ""
1702
 
@@ -1847,7 +1854,7 @@ msgstr ""
1847
  #: lite/includes/classes/class-es-campaigns-table.php:550
1848
  #: lite/includes/classes/class-es-campaigns-table.php:588
1849
  #: lite/includes/classes/class-es-reports-table.php:236
1850
- #: lite/includes/classes/class-es-reports-table.php:626
1851
  #: pro/classes/class-es-pro-reports-data.php:186
1852
  msgid "Sending"
1853
  msgstr ""
@@ -1887,7 +1894,7 @@ msgid "Upgrade"
1887
  msgstr ""
1888
 
1889
  #: lite/includes/class-es-common.php:2327
1890
- #: lite/includes/classes/class-es-reports-table.php:628
1891
  #: pro/classes/class-es-pro-reports-data.php:878
1892
  msgid "All Status"
1893
  msgstr ""
@@ -1895,7 +1902,7 @@ msgstr ""
1895
  #: lite/includes/class-es-common.php:2487
1896
  #: lite/includes/classes/class-es-campaign-report.php:157
1897
  #: lite/includes/classes/class-es-campaign-report.php:476
1898
- #: lite/includes/classes/class-es-reports-table.php:625
1899
  #: pro/classes/class-es-pro-reports-data.php:178
1900
  #: pro/partials/es-dashboard.php:60
1901
  msgid "In Queue"
@@ -1940,6 +1947,265 @@ msgstr ""
1940
  msgid "Your subscription was successful! Kindly check your mailbox and confirm your subscription. If you don't see the email within a few minutes, check the spam/junk folder."
1941
  msgstr ""
1942
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1943
  #: lite/includes/classes/class-es-admin-settings.php:41
1944
  msgid "You do not have permission to update settings"
1945
  msgstr ""
@@ -2341,7 +2607,12 @@ msgstr ""
2341
  msgid "Viewed Date"
2342
  msgstr ""
2343
 
2344
- #: lite/includes/classes/class-es-campaign-report.php:723
 
 
 
 
 
2345
  msgid "Campaign Analytics"
2346
  msgstr ""
2347
 
@@ -2443,8 +2714,8 @@ msgstr ""
2443
  #: lite/includes/classes/class-es-forms-table.php:839
2444
  #: lite/includes/classes/class-es-lists-table.php:618
2445
  #: lite/includes/classes/class-es-lists-table.php:671
2446
- #: lite/includes/classes/class-es-reports-table.php:298
2447
- #: lite/includes/classes/class-es-reports-table.php:392
2448
  #: lite/includes/workflows/admin/views/action.php:30
2449
  #: lite/includes/workflows/admin/views/meta-box-save.php:45
2450
  #: lite/includes/workflows/class-es-workflows-table.php:428
@@ -2454,7 +2725,7 @@ msgid "Delete"
2454
  msgstr ""
2455
 
2456
  #: lite/includes/classes/class-es-campaigns-table.php:627
2457
- #: lite/includes/classes/class-es-reports-table.php:316
2458
  #: pro/classes/class-es-pro-custom-fields-table.php:393
2459
  #: pro/classes/class-es-pro-custom-fields-table.php:458
2460
  #: pro/classes/class-es-pro-sequence-report.php:300
@@ -2482,7 +2753,7 @@ msgid "Search Campaigns"
2482
  msgstr ""
2483
 
2484
  #: lite/includes/classes/class-es-campaigns-table.php:700
2485
- #: lite/includes/classes/class-es-reports-table.php:637
2486
  msgid "All Type"
2487
  msgstr ""
2488
 
@@ -2535,7 +2806,7 @@ msgstr ""
2535
 
2536
  #: lite/includes/classes/class-es-contacts-table.php:311
2537
  #: lite/includes/classes/class-es-export-subscribers.php:82
2538
- #: lite/includes/classes/class-es-reports-table.php:320
2539
  msgid "Total contacts"
2540
  msgstr ""
2541
 
@@ -2943,13 +3214,13 @@ msgstr ""
2943
  msgid "No Forms avaliable."
2944
  msgstr ""
2945
 
2946
- #: lite/includes/classes/class-es-handle-post-notification.php:416
2947
- #: lite/includes/classes/class-es-handle-post-notification.php:513
2948
  msgid "View Reports"
2949
  msgstr ""
2950
 
2951
  #. translators: %s: Post type name
2952
- #: lite/includes/classes/class-es-handle-post-notification.php:544
2953
  msgid "Notification emails has been queued for this %s."
2954
  msgstr ""
2955
 
@@ -3360,7 +3631,7 @@ msgid "If you find this plugin useful, please consider giving us %1$s5 stars rev
3360
  msgstr ""
3361
 
3362
  #. translators: 1. Subscriber email 2. Blog name
3363
- #: lite/includes/classes/class-es-mailer.php:1792
3364
  msgid "Unsubscribe %1$s from %2$s"
3365
  msgstr ""
3366
 
@@ -3413,14 +3684,14 @@ msgid "Browser"
3413
  msgstr ""
3414
 
3415
  #: lite/includes/classes/class-es-newsletters.php:427
3416
- #: lite/includes/classes/class-es-reports-table.php:588
3417
  #: lite/includes/classes/class-es-templates-table.php:150
3418
  #: lite/admin/js/src/views/GalleryItemPreview.js:31
3419
  msgid "There could be a slight variation on how your customer will view the email content."
3420
  msgstr ""
3421
 
3422
  #: lite/includes/classes/class-es-newsletters.php:431
3423
- #: lite/includes/classes/class-es-reports-table.php:592
3424
  #: lite/includes/classes/class-es-templates-table.php:154
3425
  #: lite/includes/premium-services-ui/class-ig-es-premium-services-ui.php:262
3426
  msgid "Close"
@@ -3576,6 +3847,7 @@ msgid "Thanks & Regards"
3576
  msgstr ""
3577
 
3578
  #: lite/includes/classes/class-es-post-notifications.php:736
 
3579
  #: lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php:32
3580
  msgid "Admin"
3581
  msgstr ""
@@ -3643,52 +3915,52 @@ msgstr ""
3643
  msgid "No Reports avaliable."
3644
  msgstr ""
3645
 
3646
- #: lite/includes/classes/class-es-reports-table.php:297
3647
  #: pro/classes/class-es-pro-sequence-report.php:272
3648
  msgid "View"
3649
  msgstr ""
3650
 
3651
- #: lite/includes/classes/class-es-reports-table.php:318
3652
  msgid "Start Date"
3653
  msgstr ""
3654
 
3655
- #: lite/includes/classes/class-es-reports-table.php:319
3656
  msgid "End Date"
3657
  msgstr ""
3658
 
3659
- #: lite/includes/classes/class-es-reports-table.php:321
3660
  msgid "Total sent"
3661
  msgstr ""
3662
 
3663
- #: lite/includes/classes/class-es-reports-table.php:361
3664
  msgid "Send now"
3665
  msgstr ""
3666
 
3667
- #: lite/includes/classes/class-es-reports-table.php:544
3668
  msgid "You do not have permission to view notification"
3669
  msgstr ""
3670
 
3671
- #: lite/includes/classes/class-es-reports-table.php:553
3672
  msgid "You do not have permission to delete notification"
3673
  msgstr ""
3674
 
3675
- #: lite/includes/classes/class-es-reports-table.php:559
3676
  msgid "Report deleted successfully!"
3677
  msgstr ""
3678
 
3679
- #: lite/includes/classes/class-es-reports-table.php:573
3680
  msgid "Reports deleted successfully!"
3681
  msgstr ""
3682
 
3683
- #: lite/includes/classes/class-es-reports-table.php:613
3684
  msgid "Search Reports"
3685
  msgstr ""
3686
 
3687
- #: lite/includes/classes/class-es-reports-table.php:624
3688
  msgid "Completed"
3689
  msgstr ""
3690
 
3691
- #: lite/includes/classes/class-es-reports-table.php:646
3692
  msgid "All Dates"
3693
  msgstr ""
3694
 
@@ -5278,6 +5550,14 @@ msgstr ""
5278
  msgid "Search..."
5279
  msgstr ""
5280
 
 
 
 
 
 
 
 
 
5281
  #: lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php:30
5282
  msgid "Campaign sent"
5283
  msgstr ""
2
  # This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Email Subscribers & Newsletters 5.4.9\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-08-25T08:21:17+02:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: email-subscribers\n"
29
 
30
  #. Author of the plugin
31
  #: lite/admin/partials/help.php:28
32
+ #: lite/includes/class-email-subscribers.php:1530
33
  msgid "Icegram"
34
  msgstr ""
35
 
47
  msgid "Email Subscribers Premium"
48
  msgstr ""
49
 
50
+ #: email-subscribers.php:233
51
  msgid "Email Subscribers requires WooCommerce to be installed and active, plugin is currently NOT RUNNING."
52
  msgstr ""
53
 
54
+ #: lite/admin/class-email-subscribers-admin.php:175
55
  msgid "An error has occured. Please try again later."
56
  msgstr ""
57
 
58
+ #: lite/admin/class-email-subscribers-admin.php:176
59
  msgid "Broadcast saved successfully."
60
  msgstr ""
61
 
62
+ #: lite/admin/class-email-subscribers-admin.php:177
63
  msgid "An error has occured while saving the broadcast. Please try again later."
64
  msgstr ""
65
 
66
+ #: lite/admin/class-email-subscribers-admin.php:178
67
  msgid "Please add a broadcast subject before saving."
68
  msgstr ""
69
 
70
+ #: lite/admin/class-email-subscribers-admin.php:179
71
  msgid "Campaign saved successfully."
72
  msgstr ""
73
 
74
+ #: lite/admin/class-email-subscribers-admin.php:180
75
  msgid "An error has occured while saving the campaign. Please try again later."
76
  msgstr ""
77
 
78
+ #: lite/admin/class-email-subscribers-admin.php:181
79
  msgid "Please add a campaign subject before saving."
80
  msgstr ""
81
 
82
+ #: lite/admin/class-email-subscribers-admin.php:182
83
  #: pro/pro-class-email-subscribers.php:646
84
  msgid "Please add email body."
85
  msgstr ""
86
 
87
+ #: lite/admin/class-email-subscribers-admin.php:183
88
  msgid "Do you really like to remove all conditions?"
89
  msgstr ""
90
 
91
+ #: lite/admin/class-email-subscribers-admin.php:184
92
  msgid "Please add some recipients before proceeding."
93
  msgstr ""
94
 
95
+ #: lite/admin/class-email-subscribers-admin.php:187
96
  msgid "Please select a trigger before saving the workflow."
97
  msgstr ""
98
 
99
+ #: lite/admin/class-email-subscribers-admin.php:188
100
  msgid "Please add some actions before saving the workflow."
101
  msgstr ""
102
 
103
+ #: lite/admin/class-email-subscribers-admin.php:189
104
  msgid "Please select an action that this workflow should perform before saving the workflow."
105
  msgstr ""
106
 
107
+ #: lite/admin/class-email-subscribers-admin.php:190
108
  msgid "Changing the trigger will remove existing actions. Do you want to proceed anyway?."
109
  msgstr ""
110
 
111
+ #: lite/admin/class-email-subscribers-admin.php:191
112
  msgid "Copied!"
113
  msgstr ""
114
 
115
+ #: lite/admin/class-email-subscribers-admin.php:192
116
  msgid "{{field_name}} field is required!"
117
  msgstr ""
118
 
119
+ #: lite/admin/class-email-subscribers-admin.php:193
120
  msgid "Required field is empty!"
121
  msgstr ""
122
 
123
+ #: lite/admin/class-email-subscribers-admin.php:194
124
  msgid "Are you sure?"
125
  msgstr ""
126
 
127
+ #: lite/admin/class-email-subscribers-admin.php:197
128
  msgid "Please select the status for the importing contacts!"
129
  msgstr ""
130
 
131
+ #: lite/admin/class-email-subscribers-admin.php:198
132
  msgid "Please select a list for importing contacts!"
133
  msgstr ""
134
 
135
+ #: lite/admin/class-email-subscribers-admin.php:199
136
  msgid "Please select the email address column!"
137
  msgstr ""
138
 
139
+ #: lite/admin/class-email-subscribers-admin.php:200
140
  msgid "Preparing Data"
141
  msgstr ""
142
 
143
  #. translators: %s: Upload progress
144
+ #: lite/admin/class-email-subscribers-admin.php:202
145
  msgid "Uploading...%s"
146
  msgstr ""
147
 
148
  #. translators: %s: Import progress
149
+ #: lite/admin/class-email-subscribers-admin.php:204
150
  msgid "Importing contacts...%s"
151
  msgstr ""
152
 
153
  #. translators: %s: Import failed svg icon
154
+ #: lite/admin/class-email-subscribers-admin.php:206
155
  msgid "Import failed! %s"
156
  msgstr ""
157
 
158
+ #: lite/admin/class-email-subscribers-admin.php:207
159
  msgid "Please do not close this window until it completes..."
160
  msgstr ""
161
 
162
+ #: lite/admin/class-email-subscribers-admin.php:208
163
  msgid "Preparing Import..."
164
  msgstr ""
165
 
166
  #. translators: 1. Imported contacts count 2. Total contacts count 3. Failed to import count 4. Memory usage
167
+ #: lite/admin/class-email-subscribers-admin.php:210
168
  msgid "Currently %1$s of %2$s imported with %3$s errors. %4$s %5$s memory usage"
169
  msgstr ""
170
 
171
  #. translators: 1 Duplicate found email message
172
+ #: lite/admin/class-email-subscribers-admin.php:212
173
  msgid "%1$s duplicate emails found."
174
  msgstr ""
175
 
176
  #. translators: %s: Time left in minutes
177
+ #: lite/admin/class-email-subscribers-admin.php:214
178
  msgid "Estimate time left: %s minutes"
179
  msgstr ""
180
 
181
  #. translators: %s: Next attempt delaly time
182
+ #: lite/admin/class-email-subscribers-admin.php:216
183
  msgid "Continues in %s seconds"
184
  msgstr ""
185
 
186
+ #: lite/admin/class-email-subscribers-admin.php:217
187
  msgid "There was a problem during importing contacts. Please check the error logs for more information!"
188
  msgstr ""
189
 
190
+ #: lite/admin/class-email-subscribers-admin.php:218
191
  msgid "Do you really like to import these contacts?"
192
  msgstr ""
193
 
194
  #. translators: %s: Process complete svg icon
195
+ #: lite/admin/class-email-subscribers-admin.php:220
196
  msgid "Import complete! %s"
197
  msgstr ""
198
 
199
+ #: lite/admin/class-email-subscribers-admin.php:221
200
  msgid "You are currently importing subscribers! If you leave the page all pending subscribers don't get imported!"
201
  msgstr ""
202
 
203
+ #: lite/admin/class-email-subscribers-admin.php:222
204
  msgid "API is valid. Fetching lists..."
205
  msgstr ""
206
 
207
+ #: lite/admin/class-email-subscribers-admin.php:223
208
  msgid "Fetching contacts from MailChimp...Please do not close this window"
209
  msgstr ""
210
 
211
+ #: lite/admin/class-email-subscribers-admin.php:226
212
  msgid "SMTP Error : Unable to send test email"
213
  msgstr ""
214
 
215
+ #: lite/admin/class-email-subscribers-admin.php:227
216
  msgid "Server Busy : Please try again later"
217
  msgstr ""
218
 
219
+ #: lite/admin/class-email-subscribers-admin.php:228
220
  msgid "Headers verified successfully"
221
  msgstr ""
222
 
223
+ #: lite/admin/class-email-subscribers-admin.php:310
224
  #: lite/admin/partials/dashboard.php:167
225
  msgid "Dashboard"
226
  msgstr ""
227
 
228
+ #: lite/admin/class-email-subscribers-admin.php:315
229
  #: lite/admin/partials/dashboard.php:174
230
  #: lite/includes/classes/class-es-contacts-table.php:214
231
  #: lite/includes/pro-features.php:205
233
  msgid "Audience"
234
  msgstr ""
235
 
236
+ #: lite/admin/class-email-subscribers-admin.php:319
237
  #: lite/admin/class-es-form-admin.php:232
238
  #: lite/admin/class-es-form-admin.php:519
239
  #: lite/includes/classes/class-es-lists-table.php:34
241
  msgid "Lists"
242
  msgstr ""
243
 
244
+ #: lite/admin/class-email-subscribers-admin.php:325
245
  #: lite/admin/class-es-form-admin.php:397
246
  #: lite/includes/classes/class-es-form-widget.php:77
247
  #: lite/includes/classes/class-es-forms-table.php:39
252
  msgid "Forms"
253
  msgstr ""
254
 
255
+ #: lite/admin/class-email-subscribers-admin.php:331
256
  #: lite/admin/class-es-campaign-admin.php:329
257
  #: lite/admin/partials/gallery.php:10
258
  #: lite/includes/classes/class-es-campaigns-table.php:124
264
  msgid "Campaigns"
265
  msgstr ""
266
 
267
+ #: lite/admin/class-email-subscribers-admin.php:335
268
  msgid "Post Notifications"
269
  msgstr ""
270
 
271
+ #: lite/admin/class-email-subscribers-admin.php:337
272
  #: lite/admin/class-es-campaign-admin.php:302
273
  #: lite/includes/classes/class-es-campaign-report.php:56
274
  #: lite/includes/classes/class-es-campaigns-table.php:357
282
  msgid "Broadcast"
283
  msgstr ""
284
 
285
+ #: lite/admin/class-email-subscribers-admin.php:338
286
  #: lite/includes/classes/class-es-newsletters.php:426
287
+ #: lite/includes/classes/class-es-reports-table.php:595
288
  #: lite/includes/classes/class-es-templates-table.php:149
289
  #: lite/admin/js/src/views/GalleryItemPreview.js:18
290
  msgid "Template Preview"
291
  msgstr ""
292
 
293
+ #: lite/admin/class-email-subscribers-admin.php:343
294
  msgid "Gallery"
295
  msgstr ""
296
 
297
+ #: lite/admin/class-email-subscribers-admin.php:349
298
  #: lite/includes/pro-features.php:210
299
  #: lite/includes/workflows/admin/class-es-workflow-admin-edit.php:341
300
  #: lite/includes/workflows/class-es-workflows-table.php:53
304
  msgid "Workflows"
305
  msgstr ""
306
 
307
+ #: lite/admin/class-email-subscribers-admin.php:358
308
  #: lite/admin/partials/dashboard.php:614
309
  #: lite/includes/classes/class-es-campaign-report.php:17
310
  #: lite/includes/classes/class-es-reports-table.php:17
318
  msgid "Reports"
319
  msgstr ""
320
 
321
+ #: lite/admin/class-email-subscribers-admin.php:362
322
  #: lite/admin/class-es-form-admin.php:412
323
  #: lite/admin/partials/dashboard.php:622
324
  #: lite/includes/classes/class-es-admin-settings.php:134
325
  msgid "Settings"
326
  msgstr ""
327
 
328
+ #: lite/admin/class-email-subscribers-admin.php:367
329
  msgid "Go To Icegram"
330
  msgstr ""
331
 
332
  #. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
333
+ #: lite/admin/class-email-subscribers-admin.php:937
334
  msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
335
  msgstr ""
336
 
337
+ #: lite/admin/class-email-subscribers-admin.php:965
338
+ #: lite/admin/class-email-subscribers-admin.php:1691
339
+ #: lite/admin/class-email-subscribers-admin.php:1714
340
  msgid "Something went wrong"
341
  msgstr ""
342
 
343
+ #. translators: %s: Pricing page URL
344
+ #: lite/admin/class-email-subscribers-admin.php:1346
345
  #: lite/includes/class-email-subscribers-activator.php:61
346
+ #: lite/includes/class-email-subscribers.php:1527
347
+ #: lite/includes/classes/class-email-subscribers-pricing.php:772
348
  #: lite/includes/classes/class-es-form-widget.php:11
349
  #: lite/includes/classes/class-es-old-widget.php:13
350
  #: lite/includes/classes/class-es-old-widget.php:15
353
  msgid "Email Subscribers"
354
  msgstr ""
355
 
356
+ #: lite/admin/class-email-subscribers-admin.php:1388
357
  msgid "Last 30 days"
358
  msgstr ""
359
 
360
+ #: lite/admin/class-email-subscribers-admin.php:1397
361
  #: lite/includes/class-es-common.php:362
362
  #: lite/includes/classes/class-es-contacts-table.php:332
363
  #: lite/includes/classes/class-es-import-subscribers.php:867
367
  msgid "Subscribed"
368
  msgstr ""
369
 
370
+ #: lite/admin/class-email-subscribers-admin.php:1405
371
  #: lite/admin/partials/dashboard.php:284
372
  #: lite/includes/class-es-common.php:364
373
  #: lite/includes/classes/class-es-campaign-report.php:262
380
  msgid "Unsubscribed"
381
  msgstr ""
382
 
383
+ #: lite/admin/class-email-subscribers-admin.php:1413
384
  #: lite/includes/pro-features.php:1335
385
  msgid "Avg Open Rate"
386
  msgstr ""
387
 
388
+ #: lite/admin/class-email-subscribers-admin.php:1421
389
  msgid "Messages Sent"
390
  msgstr ""
391
 
392
+ #: lite/admin/class-email-subscribers-admin.php:1432
393
  msgid "Last Campaign"
394
  msgstr ""
395
 
396
+ #: lite/admin/class-email-subscribers-admin.php:1468
397
  msgid "Sent to"
398
  msgstr ""
399
 
400
+ #: lite/admin/class-email-subscribers-admin.php:1480
401
  #: lite/admin/partials/dashboard.php:360
402
  #: lite/admin/partials/dashboard.php:378
403
  #: lite/admin/partials/dashboard.php:539
411
  msgid "Opens"
412
  msgstr ""
413
 
414
+ #: lite/admin/class-email-subscribers-admin.php:1494
415
  msgid "No campaigns sent yet"
416
  msgstr ""
417
 
418
+ #: lite/admin/class-email-subscribers-admin.php:1502
419
  msgid "Latest Blog Posts from Icegram"
420
  msgstr ""
421
 
422
+ #: lite/admin/class-email-subscribers-admin.php:1614
423
  msgid "Please publish it or save it as a draft."
424
  msgstr ""
425
 
426
+ #. translators: %s: link to new keyword doc
427
+ #: lite/admin/class-email-subscribers-admin.php:1670
428
+ msgid "There seems to be some issue in sending your emails. You may have to check your %1$semail sending setting%2$s."
429
+ msgstr ""
430
+
431
  #: lite/admin/class-es-campaign-admin.php:197
432
  msgid "Sorry, you are not allowed to add/edit campaign."
433
  msgstr ""
471
  #: lite/admin/class-es-campaign-admin.php:362
472
  #: lite/includes/classes/class-es-newsletters.php:413
473
  #: lite/includes/classes/class-es-newsletters.php:441
474
+ #: lite/includes/classes/class-es-reports-table.php:307
475
  #: lite/includes/workflows/admin/views/action.php:28
476
  #: pro/classes/class-es-pro-sequence-report.php:273
477
  #: pro/pro-class-sequences.php:600
503
 
504
  #: lite/admin/class-es-campaign-admin.php:416
505
  #: lite/includes/classes/class-es-newsletters.php:350
506
+ #: lite/includes/classes/class-es-reports-table.php:323
507
  #: pro/classes/class-es-pro-sequence-report.php:299
508
  msgid "Subject"
509
  msgstr ""
1350
  #: lite/includes/classes/class-es-export-subscribers.php:341
1351
  #: lite/includes/classes/class-es-import-subscribers.php:690
1352
  #: lite/includes/classes/class-es-import-subscribers.php:1353
1353
+ #: lite/includes/classes/class-es-reports-table.php:325
1354
  #: lite/includes/workflows/class-es-workflows-table.php:461
1355
  #: pro/classes/class-es-pro-sequence-report.php:301
1356
  msgid "Status"
1694
  msgstr ""
1695
 
1696
  #. translators: 1: Error message 2: File name 3: Line number
1697
+ #: lite/includes/class-email-subscribers.php:1320
1698
  msgid "%1$s in %2$s on line %3$s"
1699
  msgstr ""
1700
 
1701
+ #: lite/includes/class-email-subscribers.php:1540
1702
  msgid "Icegram WC"
1703
  msgstr ""
1704
 
1705
  #. translators: %1$s - constant that was used
1706
+ #: lite/includes/class-email-subscribers.php:2015
1707
  msgid "Value was set using constant %1$s"
1708
  msgstr ""
1709
 
1854
  #: lite/includes/classes/class-es-campaigns-table.php:550
1855
  #: lite/includes/classes/class-es-campaigns-table.php:588
1856
  #: lite/includes/classes/class-es-reports-table.php:236
1857
+ #: lite/includes/classes/class-es-reports-table.php:634
1858
  #: pro/classes/class-es-pro-reports-data.php:186
1859
  msgid "Sending"
1860
  msgstr ""
1894
  msgstr ""
1895
 
1896
  #: lite/includes/class-es-common.php:2327
1897
+ #: lite/includes/classes/class-es-reports-table.php:636
1898
  #: pro/classes/class-es-pro-reports-data.php:878
1899
  msgid "All Status"
1900
  msgstr ""
1902
  #: lite/includes/class-es-common.php:2487
1903
  #: lite/includes/classes/class-es-campaign-report.php:157
1904
  #: lite/includes/classes/class-es-campaign-report.php:476
1905
+ #: lite/includes/classes/class-es-reports-table.php:633
1906
  #: pro/classes/class-es-pro-reports-data.php:178
1907
  #: pro/partials/es-dashboard.php:60
1908
  msgid "In Queue"
1947
  msgid "Your subscription was successful! Kindly check your mailbox and confirm your subscription. If you don't see the email within a few minutes, check the spam/junk folder."
1948
  msgstr ""
1949
 
1950
+ #. translators: %s: Offer text
1951
+ #: lite/includes/classes/class-email-subscribers-pricing.php:344
1952
+ msgid "Congratulations! You just unlocked %s on Email Subscribers Premium!"
1953
+ msgstr ""
1954
+
1955
+ #. translators: %s: Offer text
1956
+ #: lite/includes/classes/class-email-subscribers-pricing.php:344
1957
+ msgid "25% off"
1958
+ msgstr ""
1959
+
1960
+ #: lite/includes/classes/class-email-subscribers-pricing.php:349
1961
+ msgid "⏰ Limited time offer"
1962
+ msgstr ""
1963
+
1964
+ #: lite/includes/classes/class-email-subscribers-pricing.php:353
1965
+ msgid "Best Seller"
1966
+ msgstr ""
1967
+
1968
+ #: lite/includes/classes/class-email-subscribers-pricing.php:354
1969
+ #: lite/includes/classes/class-email-subscribers-pricing.php:408
1970
+ msgid "Pro"
1971
+ msgstr ""
1972
+
1973
+ #: lite/includes/classes/class-email-subscribers-pricing.php:355
1974
+ #: lite/includes/classes/class-email-subscribers-pricing.php:367
1975
+ msgid "1 site (Annual)"
1976
+ msgstr ""
1977
+
1978
+ #: lite/includes/classes/class-email-subscribers-pricing.php:357
1979
+ msgid "$129"
1980
+ msgstr ""
1981
+
1982
+ #: lite/includes/classes/class-email-subscribers-pricing.php:358
1983
+ msgid "$97"
1984
+ msgstr ""
1985
+
1986
+ #: lite/includes/classes/class-email-subscribers-pricing.php:362
1987
+ #: lite/includes/classes/class-email-subscribers-pricing.php:374
1988
+ msgid "Buy Now"
1989
+ msgstr ""
1990
+
1991
+ #: lite/includes/classes/class-email-subscribers-pricing.php:366
1992
+ #: lite/includes/classes/class-email-subscribers-pricing.php:405
1993
+ msgid "Starter"
1994
+ msgstr ""
1995
+
1996
+ #: lite/includes/classes/class-email-subscribers-pricing.php:369
1997
+ msgid "$79"
1998
+ msgstr ""
1999
+
2000
+ #: lite/includes/classes/class-email-subscribers-pricing.php:370
2001
+ msgid "$60"
2002
+ msgstr ""
2003
+
2004
+ #: lite/includes/classes/class-email-subscribers-pricing.php:384
2005
+ msgid "Works Well!"
2006
+ msgstr ""
2007
+
2008
+ #: lite/includes/classes/class-email-subscribers-pricing.php:386
2009
+ msgid ""
2010
+ "Used the free version to get started and it worked well. Upgraded to Premium for some of the convenience features and workflows.\n"
2011
+ "\t\t\t\t\t\t\tPretty slick to just be able to publish on the site and have the right notifications and newsletters go out automatically!"
2012
+ msgstr ""
2013
+
2014
+ #: lite/includes/classes/class-email-subscribers-pricing.php:388
2015
+ msgid "mnmatty"
2016
+ msgstr ""
2017
+
2018
+ #: lite/includes/classes/class-email-subscribers-pricing.php:394
2019
+ msgid " More powerful features with Email Subscribers Premium!"
2020
+ msgstr ""
2021
+
2022
+ #: lite/includes/classes/class-email-subscribers-pricing.php:399
2023
+ msgid "Features"
2024
+ msgstr ""
2025
+
2026
+ #: lite/includes/classes/class-email-subscribers-pricing.php:402
2027
+ msgid "Free"
2028
+ msgstr ""
2029
+
2030
+ #: lite/includes/classes/class-email-subscribers-pricing.php:415
2031
+ msgid "What's so special?"
2032
+ msgstr ""
2033
+
2034
+ #: lite/includes/classes/class-email-subscribers-pricing.php:418
2035
+ msgid "Unlimited contacts, emails, forms & lists. Automatic welcome emails and new post notifications."
2036
+ msgstr ""
2037
+
2038
+ #: lite/includes/classes/class-email-subscribers-pricing.php:421
2039
+ msgid "Everything in Free +"
2040
+ msgstr ""
2041
+
2042
+ #: lite/includes/classes/class-email-subscribers-pricing.php:424
2043
+ msgid "Everything in Starter +"
2044
+ msgstr ""
2045
+
2046
+ #: lite/includes/classes/class-email-subscribers-pricing.php:429
2047
+ msgid "Post Digest Notifications"
2048
+ msgstr ""
2049
+
2050
+ #: lite/includes/classes/class-email-subscribers-pricing.php:444
2051
+ msgid "Autoresponder & Workflows"
2052
+ msgstr ""
2053
+
2054
+ #: lite/includes/classes/class-email-subscribers-pricing.php:459
2055
+ msgid "Abandoned Cart Recovery Email"
2056
+ msgstr ""
2057
+
2058
+ #: lite/includes/classes/class-email-subscribers-pricing.php:474
2059
+ msgid "3rd Party SMTP Configuration"
2060
+ msgstr ""
2061
+
2062
+ #: lite/includes/classes/class-email-subscribers-pricing.php:478
2063
+ msgid "Pepipost"
2064
+ msgstr ""
2065
+
2066
+ #: lite/includes/classes/class-email-subscribers-pricing.php:481
2067
+ msgid "Default SMTP"
2068
+ msgstr ""
2069
+
2070
+ #: lite/includes/classes/class-email-subscribers-pricing.php:484
2071
+ msgid "Amazon SES, Mailgun, SendGrid, SparkPost, Postmark, Sendinblue & Mailjet."
2072
+ msgstr ""
2073
+
2074
+ #: lite/includes/classes/class-email-subscribers-pricing.php:489
2075
+ msgid "Automatic Batch Sending"
2076
+ msgstr ""
2077
+
2078
+ #: lite/includes/classes/class-email-subscribers-pricing.php:504
2079
+ msgid "Captcha & Security"
2080
+ msgstr ""
2081
+
2082
+ #: lite/includes/classes/class-email-subscribers-pricing.php:519
2083
+ msgid "Automatic List Cleanup"
2084
+ msgstr ""
2085
+
2086
+ #: lite/includes/classes/class-email-subscribers-pricing.php:534
2087
+ msgid "Detailed Reports/analytics"
2088
+ msgstr ""
2089
+
2090
+ #: lite/includes/classes/class-email-subscribers-pricing.php:538
2091
+ #: lite/includes/classes/class-email-subscribers-pricing.php:541
2092
+ msgid "Overall Summary"
2093
+ msgstr ""
2094
+
2095
+ #: lite/includes/classes/class-email-subscribers-pricing.php:544
2096
+ msgid "Detailed Report"
2097
+ msgstr ""
2098
+
2099
+ #: lite/includes/classes/class-email-subscribers-pricing.php:549
2100
+ msgid "List Unsubscribe"
2101
+ msgstr ""
2102
+
2103
+ #: lite/includes/classes/class-email-subscribers-pricing.php:564
2104
+ msgid "Comment Optin"
2105
+ msgstr ""
2106
+
2107
+ #: lite/includes/classes/class-email-subscribers-pricing.php:579
2108
+ msgid "Custom Contact Fields"
2109
+ msgstr ""
2110
+
2111
+ #: lite/includes/classes/class-email-subscribers-pricing.php:594
2112
+ msgid "Membership Plugin Integration"
2113
+ msgstr ""
2114
+
2115
+ #: lite/includes/classes/class-email-subscribers-pricing.php:603
2116
+ msgid "Integrate with WooCommerce Memberships, MemberPress, Paid Memberships Pro, Ultimate Members."
2117
+ msgstr ""
2118
+
2119
+ #: lite/includes/classes/class-email-subscribers-pricing.php:608
2120
+ msgid "Popular Integrations"
2121
+ msgstr ""
2122
+
2123
+ #: lite/includes/classes/class-email-subscribers-pricing.php:617
2124
+ msgid "Integrate with WooCommerce Abandoned Cart, Easy Digital Downloads, GiveWP Donation, Yith Wishlist Item On Sale, LearnDash, Contact Form 7, Ninja Forms, Forminator, Gravity Forms & WP Forms"
2125
+ msgstr ""
2126
+
2127
+ #: lite/includes/classes/class-email-subscribers-pricing.php:622
2128
+ msgid "Gmail Api"
2129
+ msgstr ""
2130
+
2131
+ #: lite/includes/classes/class-email-subscribers-pricing.php:637
2132
+ msgid "Email Newsletter Archive"
2133
+ msgstr ""
2134
+
2135
+ #: lite/includes/classes/class-email-subscribers-pricing.php:652
2136
+ msgid "Send WooCommerce Coupons"
2137
+ msgstr ""
2138
+
2139
+ #: lite/includes/classes/class-email-subscribers-pricing.php:667
2140
+ msgid "Drag and Drop Campaign Editor"
2141
+ msgstr ""
2142
+
2143
+ #: lite/includes/classes/class-email-subscribers-pricing.php:671
2144
+ msgid "Basic Blocks"
2145
+ msgstr ""
2146
+
2147
+ #: lite/includes/classes/class-email-subscribers-pricing.php:674
2148
+ #: lite/includes/classes/class-email-subscribers-pricing.php:677
2149
+ msgid "Advanced Blocks"
2150
+ msgstr ""
2151
+
2152
+ #: lite/includes/classes/class-email-subscribers-pricing.php:682
2153
+ msgid "Resend Confirmation Email"
2154
+ msgstr ""
2155
+
2156
+ #: lite/includes/classes/class-email-subscribers-pricing.php:697
2157
+ msgid "Weekly Summary"
2158
+ msgstr ""
2159
+
2160
+ #: lite/includes/classes/class-email-subscribers-pricing.php:712
2161
+ msgid "Support"
2162
+ msgstr ""
2163
+
2164
+ #: lite/includes/classes/class-email-subscribers-pricing.php:715
2165
+ msgid "WordPress Forum Support"
2166
+ msgstr ""
2167
+
2168
+ #: lite/includes/classes/class-email-subscribers-pricing.php:718
2169
+ msgid "Premium Support (Email)"
2170
+ msgstr ""
2171
+
2172
+ #: lite/includes/classes/class-email-subscribers-pricing.php:721
2173
+ msgid "VIP Support (Email + Facebook)"
2174
+ msgstr ""
2175
+
2176
+ #: lite/includes/classes/class-email-subscribers-pricing.php:726
2177
+ msgid "Pricing"
2178
+ msgstr ""
2179
+
2180
+ #: lite/includes/classes/class-email-subscribers-pricing.php:733
2181
+ msgid "Buy Starter"
2182
+ msgstr ""
2183
+
2184
+ #: lite/includes/classes/class-email-subscribers-pricing.php:738
2185
+ msgid "Buy Pro"
2186
+ msgstr ""
2187
+
2188
+ #: lite/includes/classes/class-email-subscribers-pricing.php:752
2189
+ msgid "I use this to send a message to my subscribers whenever there’s a new post on my blog. Very easy to install, guided process and clear instructions."
2190
+ msgstr ""
2191
+
2192
+ #: lite/includes/classes/class-email-subscribers-pricing.php:753
2193
+ msgid "rudybrinkman"
2194
+ msgstr ""
2195
+
2196
+ #: lite/includes/classes/class-email-subscribers-pricing.php:762
2197
+ msgid "Great for Professional Bloggers and great support! Icegram was very responsive to our questions. I highly recommend this WordPress plugin and the PAID version is worth the cost. The paid version shows intuitive stats and drill-down information."
2198
+ msgstr ""
2199
+
2200
+ #: lite/includes/classes/class-email-subscribers-pricing.php:763
2201
+ msgid "rickvidallon"
2202
+ msgstr ""
2203
+
2204
+ #. translators: %s: Pricing page URL
2205
+ #: lite/includes/classes/class-email-subscribers-pricing.php:772
2206
+ msgid "You can either manually send normal email marketing campaigns or use %s to automate reliable emails that land in subscribers’ inboxes, not in the spam folders."
2207
+ msgstr ""
2208
+
2209
  #: lite/includes/classes/class-es-admin-settings.php:41
2210
  msgid "You do not have permission to update settings"
2211
  msgstr ""
2607
  msgid "Viewed Date"
2608
  msgstr ""
2609
 
2610
+ #: lite/includes/classes/class-es-campaign-report.php:502
2611
+ #: lite/includes/classes/class-es-reports-table.php:259
2612
+ msgid "Failed"
2613
+ msgstr ""
2614
+
2615
+ #: lite/includes/classes/class-es-campaign-report.php:731
2616
  msgid "Campaign Analytics"
2617
  msgstr ""
2618
 
2714
  #: lite/includes/classes/class-es-forms-table.php:839
2715
  #: lite/includes/classes/class-es-lists-table.php:618
2716
  #: lite/includes/classes/class-es-lists-table.php:671
2717
+ #: lite/includes/classes/class-es-reports-table.php:306
2718
+ #: lite/includes/classes/class-es-reports-table.php:400
2719
  #: lite/includes/workflows/admin/views/action.php:30
2720
  #: lite/includes/workflows/admin/views/meta-box-save.php:45
2721
  #: lite/includes/workflows/class-es-workflows-table.php:428
2725
  msgstr ""
2726
 
2727
  #: lite/includes/classes/class-es-campaigns-table.php:627
2728
+ #: lite/includes/classes/class-es-reports-table.php:324
2729
  #: pro/classes/class-es-pro-custom-fields-table.php:393
2730
  #: pro/classes/class-es-pro-custom-fields-table.php:458
2731
  #: pro/classes/class-es-pro-sequence-report.php:300
2753
  msgstr ""
2754
 
2755
  #: lite/includes/classes/class-es-campaigns-table.php:700
2756
+ #: lite/includes/classes/class-es-reports-table.php:645
2757
  msgid "All Type"
2758
  msgstr ""
2759
 
2806
 
2807
  #: lite/includes/classes/class-es-contacts-table.php:311
2808
  #: lite/includes/classes/class-es-export-subscribers.php:82
2809
+ #: lite/includes/classes/class-es-reports-table.php:328
2810
  msgid "Total contacts"
2811
  msgstr ""
2812
 
3214
  msgid "No Forms avaliable."
3215
  msgstr ""
3216
 
3217
+ #: lite/includes/classes/class-es-handle-post-notification.php:434
3218
+ #: lite/includes/classes/class-es-handle-post-notification.php:531
3219
  msgid "View Reports"
3220
  msgstr ""
3221
 
3222
  #. translators: %s: Post type name
3223
+ #: lite/includes/classes/class-es-handle-post-notification.php:562
3224
  msgid "Notification emails has been queued for this %s."
3225
  msgstr ""
3226
 
3631
  msgstr ""
3632
 
3633
  #. translators: 1. Subscriber email 2. Blog name
3634
+ #: lite/includes/classes/class-es-mailer.php:1787
3635
  msgid "Unsubscribe %1$s from %2$s"
3636
  msgstr ""
3637
 
3684
  msgstr ""
3685
 
3686
  #: lite/includes/classes/class-es-newsletters.php:427
3687
+ #: lite/includes/classes/class-es-reports-table.php:596
3688
  #: lite/includes/classes/class-es-templates-table.php:150
3689
  #: lite/admin/js/src/views/GalleryItemPreview.js:31
3690
  msgid "There could be a slight variation on how your customer will view the email content."
3691
  msgstr ""
3692
 
3693
  #: lite/includes/classes/class-es-newsletters.php:431
3694
+ #: lite/includes/classes/class-es-reports-table.php:600
3695
  #: lite/includes/classes/class-es-templates-table.php:154
3696
  #: lite/includes/premium-services-ui/class-ig-es-premium-services-ui.php:262
3697
  msgid "Close"
3847
  msgstr ""
3848
 
3849
  #: lite/includes/classes/class-es-post-notifications.php:736
3850
+ #: lite/includes/workflows/triggers/class-es-trigger-campaign-failed.php:32
3851
  #: lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php:32
3852
  msgid "Admin"
3853
  msgstr ""
3915
  msgid "No Reports avaliable."
3916
  msgstr ""
3917
 
3918
+ #: lite/includes/classes/class-es-reports-table.php:305
3919
  #: pro/classes/class-es-pro-sequence-report.php:272
3920
  msgid "View"
3921
  msgstr ""
3922
 
3923
+ #: lite/includes/classes/class-es-reports-table.php:326
3924
  msgid "Start Date"
3925
  msgstr ""
3926
 
3927
+ #: lite/includes/classes/class-es-reports-table.php:327
3928
  msgid "End Date"
3929
  msgstr ""
3930
 
3931
+ #: lite/includes/classes/class-es-reports-table.php:329
3932
  msgid "Total sent"
3933
  msgstr ""
3934
 
3935
+ #: lite/includes/classes/class-es-reports-table.php:369
3936
  msgid "Send now"
3937
  msgstr ""
3938
 
3939
+ #: lite/includes/classes/class-es-reports-table.php:552
3940
  msgid "You do not have permission to view notification"
3941
  msgstr ""
3942
 
3943
+ #: lite/includes/classes/class-es-reports-table.php:561
3944
  msgid "You do not have permission to delete notification"
3945
  msgstr ""
3946
 
3947
+ #: lite/includes/classes/class-es-reports-table.php:567
3948
  msgid "Report deleted successfully!"
3949
  msgstr ""
3950
 
3951
+ #: lite/includes/classes/class-es-reports-table.php:581
3952
  msgid "Reports deleted successfully!"
3953
  msgstr ""
3954
 
3955
+ #: lite/includes/classes/class-es-reports-table.php:621
3956
  msgid "Search Reports"
3957
  msgstr ""
3958
 
3959
+ #: lite/includes/classes/class-es-reports-table.php:632
3960
  msgid "Completed"
3961
  msgstr ""
3962
 
3963
+ #: lite/includes/classes/class-es-reports-table.php:654
3964
  msgid "All Dates"
3965
  msgstr ""
3966
 
5550
  msgid "Search..."
5551
  msgstr ""
5552
 
5553
+ #: lite/includes/workflows/triggers/class-es-trigger-campaign-failed.php:30
5554
+ msgid "Campaign failed"
5555
+ msgstr ""
5556
+
5557
+ #: lite/includes/workflows/triggers/class-es-trigger-campaign-failed.php:31
5558
+ msgid "Fires when a campaign isn't sent after trying 3 times."
5559
+ msgstr ""
5560
+
5561
  #: lite/includes/workflows/triggers/class-es-trigger-campaign-sent.php:30
5562
  msgid "Campaign sent"
5563
  msgstr ""
lite/public/css/frontend.css CHANGED
@@ -204,6 +204,16 @@
204
  height: 1em !important;
205
  }
206
 
 
 
 
 
 
 
 
 
 
 
207
  .ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio,
208
  .ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio{
209
  display: inline;
204
  height: 1em !important;
205
  }
206
 
207
+ .ig_form_container .ig_form_els.ig_form_el_radio input[type="checkbox"] {
208
+ display: inline-block !important;
209
+ margin: 0 0.3em;
210
+ height: 1em !important;
211
+ }
212
+ .ig_form_container .ig_form_els.ig_form_el_radio input[type="checkbox"]::before {
213
+ margin: -0.85rem 0 0 -0.65em;
214
+ }
215
+
216
+
217
  .ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio,
218
  .ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio{
219
  display: inline;
lite/public/js/icegram.js CHANGED
@@ -62,7 +62,7 @@ Icegram.prototype.init = function ( data ) {
62
  } else {
63
  m = new Icegram_Message_Type( v );
64
  }
65
-
66
  self.messages.push( m );
67
  self.map_id_to_index['_'+v['id'] ] = i;
68
  self.map_type_to_index[ v['type'] ] = jQuery.isArray(self.map_type_to_index[ v['type'] ]) ? self.map_type_to_index[ v['type'] ] : new Array();
@@ -344,6 +344,13 @@ Icegram_Message_Type.prototype.embed_form = function ( ) {
344
  this.el.find('form[data-source="ig-es"]').addClass('es_form_container');
345
  }
346
 
 
 
 
 
 
 
 
347
 
348
 
349
  if(form_has_label == undefined ){
@@ -524,7 +531,7 @@ Icegram.prototype.formProcess = function(self, form_text) {
524
 
525
  if(el_obj.is('label')){ // get the label if found.
526
  //GDPR compatibility
527
- if(el_obj.attr('class') == 'gdpr-label'){
528
  el_obj.find('input[type=checkbox]').remove();
529
  label_text = el_obj.not('input, select, textarea, button, span, br').html().replace(/\s+/g, ' ') || '.';
530
  }else{
@@ -563,6 +570,12 @@ Icegram.prototype.formProcess = function(self, form_text) {
563
 
564
  el_count++;
565
  }else if(el_obj.is('input[type=radio]') || el_obj.is('input[type=checkbox]') ) {
 
 
 
 
 
 
566
  label_class = 'ig_el_label ig_button_label';
567
  if(label_text != '.'){
568
  label_class = 'ig_el_label';
@@ -583,8 +596,13 @@ Icegram.prototype.formProcess = function(self, form_text) {
583
  if(form_container.find('.ig_form_required_field').length <= 0){
584
  form_container.append('<div class="ig_form_els"><input class="ig_form_required_field" type="text" tabindex="-1" value="" /></div>');
585
  }
586
- form_container.addClass(elsClass[el_count])
587
- .find('.ig_form_required_field').parent().removeClass('ig_form_els').css({'position':'absolute' , 'left': '-5000px'}).end().end()
 
 
 
 
 
588
  .find('.ig_form_hidden_field').parent().removeClass('ig_form_els').css({'display':'none'});
589
  form_object.append(form_container);
590
 
62
  } else {
63
  m = new Icegram_Message_Type( v );
64
  }
65
+
66
  self.messages.push( m );
67
  self.map_id_to_index['_'+v['id'] ] = i;
68
  self.map_type_to_index[ v['type'] ] = jQuery.isArray(self.map_type_to_index[ v['type'] ]) ? self.map_type_to_index[ v['type'] ] : new Array();
344
  this.el.find('form[data-source="ig-es"]').addClass('es_form_container');
345
  }
346
 
347
+ //es form remote site support
348
+ var url = new URL(this.el.find('form').attr('action'), window.location.href); //Passing second parameter as the current page url to avoid TypeError in case URL in action attribute is not valid
349
+ var actionparam = url.searchParams.get('action');
350
+
351
+ if( 'ig_es_external_subscription_form_submission' === actionparam ){
352
+ this.el.find('form').addClass('ig-es-embeded-from es_form_container');
353
+ }
354
 
355
 
356
  if(form_has_label == undefined ){
531
 
532
  if(el_obj.is('label')){ // get the label if found.
533
  //GDPR compatibility
534
+ if(el_obj.attr('class') == 'gdpr-label' || el_obj.find('input[name="es_gdpr_consent"]').length > 0){
535
  el_obj.find('input[type=checkbox]').remove();
536
  label_text = el_obj.not('input, select, textarea, button, span, br').html().replace(/\s+/g, ' ') || '.';
537
  }else{
570
 
571
  el_count++;
572
  }else if(el_obj.is('input[type=radio]') || el_obj.is('input[type=checkbox]') ) {
573
+
574
+ //For Bottom & Inline position, form fields does not look good so we are giving full width to the fields.
575
+ if( 'bottom' === self.data.form_layout || 'inline' === self.data.form_layout ){
576
+ form_container.addClass('ig_form_full');
577
+ }
578
+
579
  label_class = 'ig_el_label ig_button_label';
580
  if(label_text != '.'){
581
  label_class = 'ig_el_label';
596
  if(form_container.find('.ig_form_required_field').length <= 0){
597
  form_container.append('<div class="ig_form_els"><input class="ig_form_required_field" type="text" tabindex="-1" value="" /></div>');
598
  }
599
+ //Checking if full width needs to be given to form fields.
600
+ if( form_container.hasClass('ig_form_full')){
601
+ form_container.addClass('ig_full').removeClass('ig_form_full');
602
+ } else{
603
+ form_container.addClass(elsClass[el_count]);
604
+ }
605
+ form_container.find('.ig_form_required_field').parent().removeClass('ig_form_els').css({'position':'absolute' , 'left': '-5000px'}).end().end()
606
  .find('.ig_form_hidden_field').parent().removeClass('ig_form_els').css({'display':'none'});
607
  form_object.append(form_container);
608
 
lite/public/js/icegram_messages_data.js CHANGED
@@ -15,7 +15,7 @@ es_pre_data = {
15
  "form_html_original": "",
16
  "label": "",
17
  "text_color": "#000000",
18
- "cta_bg_color": "#ee0204",
19
  "position": {
20
  "inline": "10"
21
  },
15
  "form_html_original": "",
16
  "label": "",
17
  "text_color": "#000000",
18
+ "cta_bg_color": "",
19
  "position": {
20
  "inline": "10"
21
  },
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: email marketing, subscription, autoresponder, post notification, welcome e
6
  Requires at least: 3.9
7
  Tested up to: 6.0.1
8
  Requires PHP: 5.6
9
- Stable tag: 5.4.8
10
  License: GPLv3
11
  License URI: http://www.gnu.org/licenses
12
 
@@ -310,13 +310,20 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
310
 
311
  == Upgrade Notice ==
312
 
313
- = 5.4.8 =
314
 
315
- * New: Added unsubscribe reasons on dashboard [PRO]
316
- * Fix: Emails were not getting sent via Amazon SES for some cases [PRO]
 
317
 
318
  == Changelog ==
319
 
 
 
 
 
 
 
320
  **5.4.8 (18.08.2022)**
321
 
322
  * New: Added unsubscribe reasons on dashboard [PRO]
6
  Requires at least: 3.9
7
  Tested up to: 6.0.1
8
  Requires PHP: 5.6
9
+ Stable tag: 5.4.9
10
  License: GPLv3
11
  License URI: http://www.gnu.org/licenses
12
 
310
 
311
  == Upgrade Notice ==
312
 
313
+ = 5.4.9 =
314
 
315
+ * Enhancement: Added failed status for campaign in case email delivery fails
316
+ * Enhancement: Added workflow trigger for failed campaigns
317
+ * Fix: Form fields were not rendering properly when viewed in popup[PRO]
318
 
319
  == Changelog ==
320
 
321
+ **5.4.9 (25.08.2022)**
322
+
323
+ * Enhancement: Added failed status for campaign in case email delivery fails
324
+ * Enhancement: Added workflow trigger for failed campaigns
325
+ * Fix: Form fields were not rendering properly when viewed in popup[PRO]
326
+
327
  **5.4.8 (18.08.2022)**
328
 
329
  * New: Added unsubscribe reasons on dashboard [PRO]