Version Description
(01.07.2019) = * Update: Added sorting for name field in Audience tab * Fix: Warning: Illegal string offset 'es_registered' * Fix: Set list name blank in campaign list page * Fix: Contacts sort by email was not working.
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 4.1.6 |
Comparing to | |
See all releases |
Code changes from version 4.1.5 to 4.1.6
- admin/class-email-subscribers-admin.php +3 -13
- admin/js/email-subscribers-admin.js +3 -3
- email-subscribers.php +2 -2
- includes/admin/class-es-admin-settings.php +2 -2
- includes/admin/class-es-cron.php +5 -0
- includes/admin/class-es-handle-subscription.php +6 -13
- includes/admin/class-es-handle-sync-wp-user.php +1 -1
- includes/admin/class-es-newsletters.php +22 -22
- includes/admin/class-es-post-notifications.php +2 -2
- includes/admin/class-es-subscribers-table.php +3 -4
- includes/admin/class-es-templates-table.php +2 -2
- includes/class-email-subscribers.php +11 -7
- includes/class-es-install.php +4 -4
- includes/feedback/{class-ig-feedback-v-1-0-4.php → class-ig-feedback-v-1-0-5.php} +93 -5
- includes/feedback/{class-ig-tracker-v-1-0-4.php → class-ig-tracker-v-1-0-5.php} +2 -2
- includes/pro-features.php +18 -0
- public/partials/class-es-shortcode.php +1 -1
- readme.txt +7 -1
admin/class-email-subscribers-admin.php
CHANGED
@@ -66,7 +66,6 @@ class Email_Subscribers_Admin {
|
|
66 |
add_action( 'admin_menu', array( $this, 'email_subscribers_admin_menu' ) );
|
67 |
add_action( 'wp_ajax_es_klawoo_subscribe', array( $this, 'klawoo_subscribe' ) );
|
68 |
add_action( 'admin_footer', array( $this, 'remove_submenu' ) );
|
69 |
-
add_action( 'edit_form_advanced', array( $this, 'add_spam_score_utm_link' ) );
|
70 |
add_action( 'wp_ajax_send_test_email', array( $this, 'send_test_email' ) );
|
71 |
add_action( 'admin_init', array( $this, 'es_save_onboarding_skip' ) );
|
72 |
|
@@ -359,8 +358,9 @@ class Email_Subscribers_Admin {
|
|
359 |
$es_current_version = $es_plugin_data['Version'];
|
360 |
$admin_email = get_option( 'admin_email' );
|
361 |
$ig_es_4015_db_updated_at = get_option( 'ig_es_4015_db_updated_at', false );
|
|
|
362 |
$onboarding_status = get_option( 'ig_es_onboarding_complete', 'no' );
|
363 |
-
if ( ! $ig_es_4015_db_updated_at && 'yes' !== $onboarding_status ) {
|
364 |
include plugin_dir_path( dirname( __FILE__ ) ) . 'admin/partials/onboarding.php';
|
365 |
} else {
|
366 |
include plugin_dir_path( dirname( __FILE__ ) ) . 'admin/partials/dashboard.php';
|
@@ -381,17 +381,7 @@ class Email_Subscribers_Admin {
|
|
381 |
}
|
382 |
|
383 |
|
384 |
-
|
385 |
-
global $post, $pagenow;
|
386 |
-
if ( $post->post_type !== 'es_template' ) {
|
387 |
-
return;
|
388 |
-
}
|
389 |
-
?>
|
390 |
-
<script>
|
391 |
-
jQuery('#submitdiv').after('<div class="es_upsale"><a style="text-decoration:none;" target="_blank" href="https://www.icegram.com/documentation/how-ready-made-template-in-in-email-subscribers-look/?utm_source=in_app&utm_medium=es_template&utm_campaign=es_upsale"><img title="Get readymade templates" style="width:100%;border:0.3em #d46307 solid" src="<?php echo EMAIL_SUBSCRIBERS_URL?>/admin/images/starter-tmpl.png"/><p style="background: #d46307; color: #FFF; padding: 4px; width: 100%; text-align:center">Get readymade beautiful email templates</p></a></div>');
|
392 |
-
</script>
|
393 |
-
<?php
|
394 |
-
}
|
395 |
|
396 |
function send_test_email() {
|
397 |
$message = array();
|
66 |
add_action( 'admin_menu', array( $this, 'email_subscribers_admin_menu' ) );
|
67 |
add_action( 'wp_ajax_es_klawoo_subscribe', array( $this, 'klawoo_subscribe' ) );
|
68 |
add_action( 'admin_footer', array( $this, 'remove_submenu' ) );
|
|
|
69 |
add_action( 'wp_ajax_send_test_email', array( $this, 'send_test_email' ) );
|
70 |
add_action( 'admin_init', array( $this, 'es_save_onboarding_skip' ) );
|
71 |
|
358 |
$es_current_version = $es_plugin_data['Version'];
|
359 |
$admin_email = get_option( 'admin_email' );
|
360 |
$ig_es_4015_db_updated_at = get_option( 'ig_es_4015_db_updated_at', false );
|
361 |
+
$is_sa_option_exists = get_option('current_sa_email_subscribers_db_version', false);
|
362 |
$onboarding_status = get_option( 'ig_es_onboarding_complete', 'no' );
|
363 |
+
if ( ! $is_sa_option_exists && ! $ig_es_4015_db_updated_at && 'yes' !== $onboarding_status ) {
|
364 |
include plugin_dir_path( dirname( __FILE__ ) ) . 'admin/partials/onboarding.php';
|
365 |
} else {
|
366 |
include plugin_dir_path( dirname( __FILE__ ) ) . 'admin/partials/dashboard.php';
|
381 |
}
|
382 |
|
383 |
|
384 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
|
386 |
function send_test_email() {
|
387 |
$message = array();
|
admin/js/email-subscribers-admin.js
CHANGED
@@ -168,7 +168,7 @@
|
|
168 |
|
169 |
// Broadcast Setttings
|
170 |
// Get count by list
|
171 |
-
$('#
|
172 |
$('#ig_es_broadcast_list_ids').change(function(){
|
173 |
var selected_list_id = $(this).val();
|
174 |
|
@@ -191,9 +191,9 @@
|
|
191 |
var total = response.total;
|
192 |
$('#ig_es_total_contacts').text(response.total);
|
193 |
if(total == 0 ) {
|
194 |
-
$('#
|
195 |
} else {
|
196 |
-
$('#
|
197 |
}
|
198 |
}
|
199 |
}
|
168 |
|
169 |
// Broadcast Setttings
|
170 |
// Get count by list
|
171 |
+
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
172 |
$('#ig_es_broadcast_list_ids').change(function(){
|
173 |
var selected_list_id = $(this).val();
|
174 |
|
191 |
var total = response.total;
|
192 |
$('#ig_es_total_contacts').text(response.total);
|
193 |
if(total == 0 ) {
|
194 |
+
$('#ig_es_campaign_submit_button').attr("disabled", true);
|
195 |
} else {
|
196 |
+
$('#ig_es_campaign_submit_button').attr("disabled", false);
|
197 |
}
|
198 |
}
|
199 |
}
|
email-subscribers.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
-
* Version: 4.1.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
@@ -24,7 +24,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
24 |
* Define constants
|
25 |
*/
|
26 |
define( 'ES_PLUGIN_DIR', dirname( __FILE__ ) );
|
27 |
-
define( 'ES_PLUGIN_VERSION', '4.1.
|
28 |
define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
|
29 |
|
30 |
if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
+
* Version: 4.1.6
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
24 |
* Define constants
|
25 |
*/
|
26 |
define( 'ES_PLUGIN_DIR', dirname( __FILE__ ) );
|
27 |
+
define( 'ES_PLUGIN_VERSION', '4.1.6' );
|
28 |
define( 'ES_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
|
29 |
|
30 |
if ( ! defined( 'ES_PLUGIN_FILE' ) ) {
|
includes/admin/class-es-admin-settings.php
CHANGED
@@ -309,7 +309,7 @@ class ES_Admin_Settings {
|
|
309 |
'default' => '',
|
310 |
'id' => 'ig_es_welcome_email_content',
|
311 |
'name' => __( 'Content', 'email-subscribers' ),
|
312 |
-
'desc' => __( 'Available keywords. {{NAME}}, {{EMAIL}}, {{LIST}}, {{UNSUBSCRIBE-LINK}}', 'email-subscribers' ),
|
313 |
),
|
314 |
)
|
315 |
),
|
@@ -338,7 +338,7 @@ class ES_Admin_Settings {
|
|
338 |
'default' => '',
|
339 |
'id' => 'ig_es_confirmation_mail_content',
|
340 |
'name' => __( 'Content', 'email-subscribers' ),
|
341 |
-
'desc' => __( 'If Double Optin is set, contact will receive confirmation email with above content. You can use {{NAME}}, {{EMAIL}}, {{SUBSCRIBE-LINK}} keywords', 'email-subscribers' ),
|
342 |
)
|
343 |
)
|
344 |
),
|
309 |
'default' => '',
|
310 |
'id' => 'ig_es_welcome_email_content',
|
311 |
'name' => __( 'Content', 'email-subscribers' ),
|
312 |
+
'desc' => __( 'Available keywords. {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, {{LIST}}, {{UNSUBSCRIBE-LINK}}', 'email-subscribers' ),
|
313 |
),
|
314 |
)
|
315 |
),
|
338 |
'default' => '',
|
339 |
'id' => 'ig_es_confirmation_mail_content',
|
340 |
'name' => __( 'Content', 'email-subscribers' ),
|
341 |
+
'desc' => __( 'If Double Optin is set, contact will receive confirmation email with above content. You can use {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}}, {{SUBSCRIBE-LINK}} keywords', 'email-subscribers' ),
|
342 |
)
|
343 |
)
|
344 |
),
|
includes/admin/class-es-cron.php
CHANGED
@@ -133,6 +133,11 @@ class ES_Cron {
|
|
133 |
|
134 |
if ( ! empty( $template ) ) {
|
135 |
$subject = get_option( 'ig_es_cron_admin_email_subject', __( 'Campaign Sent!', 'email-subscribers' ) );
|
|
|
|
|
|
|
|
|
|
|
136 |
$admin_emails = explode( ',', $admin_email_addresses );
|
137 |
foreach ( $admin_emails as $admin_email ) {
|
138 |
$admin_email = trim( $admin_email );
|
133 |
|
134 |
if ( ! empty( $template ) ) {
|
135 |
$subject = get_option( 'ig_es_cron_admin_email_subject', __( 'Campaign Sent!', 'email-subscribers' ) );
|
136 |
+
$notification = ES_DB_Mailing_Queue::get_notification_by_hash( $notification_guid );
|
137 |
+
if( isset( $notification['subject'] ) ){
|
138 |
+
$subject = str_replace( '{{SUBJECT}}', $notification['subject'], $subject );
|
139 |
+
}
|
140 |
+
|
141 |
$admin_emails = explode( ',', $admin_email_addresses );
|
142 |
foreach ( $admin_emails as $admin_email ) {
|
143 |
$admin_email = trim( $admin_email );
|
includes/admin/class-es-handle-subscription.php
CHANGED
@@ -299,20 +299,13 @@ class ES_Handle_Subscription {
|
|
299 |
$es_response = array( 'status' => 'ERROR', 'message' => '' );
|
300 |
|
301 |
if ( ! $this->from_rainmaker ) {
|
302 |
-
//honey-pot validation
|
303 |
-
//$hp_key = "esfpx_es_hp_" . wp_create_nonce( 'es_hp' );
|
304 |
-
$data_keys = array_keys( $data );
|
305 |
-
$hp_key = "esfpx_es_hp_";
|
306 |
-
foreach ( $data_keys as $i => $key ) {
|
307 |
-
if ( strpos( $key, $hp_key ) === 0 ) {
|
308 |
-
if ( ! isset( $data[ $data_keys[ $i ] ] ) || ! empty( $data[ $data_keys[ $i ] ] ) ) {
|
309 |
-
$es_response['message'] = 'es_unexpected_error_notice';
|
310 |
-
|
311 |
-
return $es_response;
|
312 |
-
}
|
313 |
-
}
|
314 |
-
}
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
|
318 |
$name = isset( $data['esfpx_name'] ) ? $data['esfpx_name'] : '';
|
299 |
$es_response = array( 'status' => 'ERROR', 'message' => '' );
|
300 |
|
301 |
if ( ! $this->from_rainmaker ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
|
303 |
+
// Honeypot validation
|
304 |
+
$hp_key = "esfpx_es_hp_" . wp_create_nonce( 'es_hp' );
|
305 |
+
if ( ! isset( $data[ $hp_key ] ) || ! empty( $data[ $hp_key ] ) ) {
|
306 |
+
$es_response['message'] = 'es_unexpected_error_notice';
|
307 |
+
return $es_response;
|
308 |
+
}
|
309 |
}
|
310 |
|
311 |
$name = isset( $data['esfpx_name'] ) ? $data['esfpx_name'] : '';
|
includes/admin/class-es-handle-sync-wp-user.php
CHANGED
@@ -99,7 +99,7 @@ class ES_Handle_Sync_Wp_User {
|
|
99 |
//get option
|
100 |
$ig_es_sync_wp_users = get_option( 'ig_es_sync_wp_users', 'norecord' );
|
101 |
$ig_es_sync_unserialized_data = maybe_unserialize( $ig_es_sync_wp_users );
|
102 |
-
$ig_es_registered = $ig_es_sync_unserialized_data['es_registered'];
|
103 |
if ( $ig_es_sync_wp_users != 'norecord' && 'YES' === $ig_es_registered ) {
|
104 |
$list_id = $ig_es_sync_unserialized_data['es_registered_group'];
|
105 |
//get user info
|
99 |
//get option
|
100 |
$ig_es_sync_wp_users = get_option( 'ig_es_sync_wp_users', 'norecord' );
|
101 |
$ig_es_sync_unserialized_data = maybe_unserialize( $ig_es_sync_wp_users );
|
102 |
+
$ig_es_registered = ( $ig_es_sync_unserialized_data != 'norecord' ) ? $ig_es_sync_unserialized_data['es_registered'] : 'NO';
|
103 |
if ( $ig_es_sync_wp_users != 'norecord' && 'YES' === $ig_es_registered ) {
|
104 |
$list_id = $ig_es_sync_unserialized_data['es_registered_group'];
|
105 |
//get user info
|
includes/admin/class-es-newsletters.php
CHANGED
@@ -41,7 +41,6 @@ class ES_Newsletters {
|
|
41 |
// $email_sent_type = __('Active', 'email-subscribers');
|
42 |
$list_id = Email_Subscribers::get_request( 'ig_es_broadcast_list_ids' );
|
43 |
$template_id = Email_Subscribers::get_request( 'ig_es_broadcast_base_template_id' );
|
44 |
-
|
45 |
if ( empty( $template_id ) ) {
|
46 |
$message = __( 'Please select template.', 'email-subscribers' );
|
47 |
ES_Common::show_message( $message, 'error' );
|
@@ -63,29 +62,28 @@ class ES_Newsletters {
|
|
63 |
|
64 |
ES_Common::show_message( $message, 'success' );
|
65 |
|
66 |
-
// **************** Quick Feedback - Start
|
67 |
global $ig_es_feedback;
|
68 |
|
69 |
-
if (
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
ES_Common::render_feedback_widget( $params );
|
87 |
}
|
88 |
-
|
|
|
89 |
}
|
90 |
|
91 |
}
|
@@ -107,7 +105,7 @@ class ES_Newsletters {
|
|
107 |
<?php settings_fields( 'es_newsletters_settings' ); ?>
|
108 |
<?php do_settings_sections( 'newsletters_settings' ); ?>
|
109 |
<div class="email-newsletters">
|
110 |
-
<input type="submit" id="
|
111 |
<input type="hidden" name="submitted" value="submitted">
|
112 |
</div>
|
113 |
</form>
|
@@ -235,6 +233,8 @@ class ES_Newsletters {
|
|
235 |
$data['type'] = 'newsletter';
|
236 |
$data['name'] = get_the_title( $template_id );
|
237 |
$data['slug'] = sanitize_title( $data['name'] );
|
|
|
|
|
238 |
|
239 |
if ( ! empty( $template_id ) ) {
|
240 |
|
41 |
// $email_sent_type = __('Active', 'email-subscribers');
|
42 |
$list_id = Email_Subscribers::get_request( 'ig_es_broadcast_list_ids' );
|
43 |
$template_id = Email_Subscribers::get_request( 'ig_es_broadcast_base_template_id' );
|
|
|
44 |
if ( empty( $template_id ) ) {
|
45 |
$message = __( 'Please select template.', 'email-subscribers' );
|
46 |
ES_Common::show_message( $message, 'error' );
|
62 |
|
63 |
ES_Common::show_message( $message, 'success' );
|
64 |
|
65 |
+
// **************** Quick Feedback - Start ********************/
|
66 |
global $ig_es_feedback;
|
67 |
|
68 |
+
if ( $ig_es_feedback->can_show_feedback_widget() ) {
|
69 |
+
|
70 |
+
$event = 'broadcast.created';
|
71 |
+
if ( ! $ig_es_feedback->is_event_transient_set( $ig_es_feedback->event_prefix . $event ) ) {
|
72 |
+
|
73 |
+
$params = array(
|
74 |
+
'type' => 'emoji',
|
75 |
+
'event' => $event,
|
76 |
+
'title' => "How's your experience sending broadcast?",
|
77 |
+
'position' => 'top-end',
|
78 |
+
'width' => 300,
|
79 |
+
'delay' => 2, // seconds
|
80 |
+
'confirmButtonText' => __( 'Send', 'email-subscribers' )
|
81 |
+
);
|
82 |
+
ES_Common::render_feedback_widget( $params );
|
83 |
+
}
|
|
|
|
|
84 |
}
|
85 |
+
|
86 |
+
// **************** Quick Feedback - End ********************/
|
87 |
}
|
88 |
|
89 |
}
|
105 |
<?php settings_fields( 'es_newsletters_settings' ); ?>
|
106 |
<?php do_settings_sections( 'newsletters_settings' ); ?>
|
107 |
<div class="email-newsletters">
|
108 |
+
<input type="submit" id="ig_es_campaign_submit_button" name="es_send_email" value="<?php _e( 'Send Broadcast', 'email-subscribers' ) ?>" class="button button-primary">
|
109 |
<input type="hidden" name="submitted" value="submitted">
|
110 |
</div>
|
111 |
</form>
|
233 |
$data['type'] = 'newsletter';
|
234 |
$data['name'] = get_the_title( $template_id );
|
235 |
$data['slug'] = sanitize_title( $data['name'] );
|
236 |
+
$data['list_ids'] = $list_id;
|
237 |
+
$data['base_template_id'] = $template_id;
|
238 |
|
239 |
if ( ! empty( $template_id ) ) {
|
240 |
|
includes/admin/class-es-post-notifications.php
CHANGED
@@ -247,7 +247,7 @@ class ES_Post_Notifications_Table {
|
|
247 |
<p class="helper"><?php _e( 'Contacts from the selected list will be notified about new post notification.', 'email-subscribers' ); ?></p>
|
248 |
</th>
|
249 |
<td>
|
250 |
-
<select name="list_id" id="
|
251 |
<?php echo ES_Common::prepare_list_dropdown_options( $list_id ); ?>
|
252 |
</select>
|
253 |
</td>
|
@@ -314,7 +314,7 @@ class ES_Post_Notifications_Table {
|
|
314 |
</table>
|
315 |
<div class="row-blog">
|
316 |
<div class="leftside">
|
317 |
-
|
318 |
</div>
|
319 |
</div>
|
320 |
</form>
|
247 |
<p class="helper"><?php _e( 'Contacts from the selected list will be notified about new post notification.', 'email-subscribers' ); ?></p>
|
248 |
</th>
|
249 |
<td>
|
250 |
+
<select name="list_id" id="ig_es_post_notification_list_ids">
|
251 |
<?php echo ES_Common::prepare_list_dropdown_options( $list_id ); ?>
|
252 |
</select>
|
253 |
</td>
|
314 |
</table>
|
315 |
<div class="row-blog">
|
316 |
<div class="leftside">
|
317 |
+
<p class="submit"><input type="submit" name="submit" id="ig_es_campaign_post_notification_submit_button" class="button button-primary button-large" value="Save Changes"></p>
|
318 |
</div>
|
319 |
</div>
|
320 |
</form>
|
includes/admin/class-es-subscribers-table.php
CHANGED
@@ -323,9 +323,8 @@ class ES_Subscribers_Table extends WP_List_Table {
|
|
323 |
// Prepare Order by clause
|
324 |
$order_by_clause = '';
|
325 |
$order = ! empty( $order ) ? ' ' . esc_sql( $order ) : ' DESC';
|
326 |
-
$order_by_clause = ' ORDER BY '
|
327 |
-
$order_by_clause = ! empty( $order_by ) ? $order_by_clause . '
|
328 |
-
|
329 |
$sql .= $order_by_clause;
|
330 |
$sql .= " LIMIT $per_page";
|
331 |
$sql .= ' OFFSET ' . ( $page_number - 1 ) * $per_page;
|
@@ -620,7 +619,7 @@ class ES_Subscribers_Table extends WP_List_Table {
|
|
620 |
*/
|
621 |
public function get_sortable_columns() {
|
622 |
$sortable_columns = array(
|
623 |
-
'
|
624 |
'email' => array( 'email', false ),
|
625 |
// 'status' => array( 'status', false ),
|
626 |
'created_at' => array( 'created_at', false )
|
323 |
// Prepare Order by clause
|
324 |
$order_by_clause = '';
|
325 |
$order = ! empty( $order ) ? ' ' . esc_sql( $order ) : ' DESC';
|
326 |
+
$order_by_clause = ' ORDER BY ';
|
327 |
+
$order_by_clause = ! empty( $order_by ) ? $order_by_clause . ' ' . esc_sql( $order_by ) . ' ' . $order : $order_by_clause . esc_sql( 'created_at' ) . ' ' . $order;
|
|
|
328 |
$sql .= $order_by_clause;
|
329 |
$sql .= " LIMIT $per_page";
|
330 |
$sql .= ' OFFSET ' . ( $page_number - 1 ) * $per_page;
|
619 |
*/
|
620 |
public function get_sortable_columns() {
|
621 |
$sortable_columns = array(
|
622 |
+
'name' => array( 'first_name', true ),
|
623 |
'email' => array( 'email', false ),
|
624 |
// 'status' => array( 'status', false ),
|
625 |
'created_at' => array( 'created_at', false )
|
includes/admin/class-es-templates-table.php
CHANGED
@@ -45,11 +45,11 @@ class ES_Templates_Table {
|
|
45 |
</p>
|
46 |
|
47 |
<p id="post_notification">
|
48 |
-
<a href="https://www.icegram.com/documentation/es-what-are-the-available-keywords-in-the-post-notifications/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Post Notification: ', 'email-subsribers' ); ?> {{NAME}}, {{EMAIL}},
|
49 |
{{DATE}}, {{POSTTITLE}}, {{POSTIMAGE}}, {{POSTEXCERPT}}, {{POSTDESC}},
|
50 |
{{POSTAUTHOR}}, {{POSTLINK}}, {{POSTLINK-WITHTITLE}}, {{POSTLINK-ONLY}}, {{POSTFULL}} </p>
|
51 |
<p id="newsletter">
|
52 |
-
<a href="https://www.icegram.com/documentation/es-what-are-the-available-keywords-in-the-newsletters/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Newsletter:', 'email-subscribers' ); ?> {{NAME}}, {{EMAIL}} </p>
|
53 |
<?php
|
54 |
}
|
55 |
|
45 |
</p>
|
46 |
|
47 |
<p id="post_notification">
|
48 |
+
<a href="https://www.icegram.com/documentation/es-what-are-the-available-keywords-in-the-post-notifications/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Post Notification: ', 'email-subsribers' ); ?> {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}},
|
49 |
{{DATE}}, {{POSTTITLE}}, {{POSTIMAGE}}, {{POSTEXCERPT}}, {{POSTDESC}},
|
50 |
{{POSTAUTHOR}}, {{POSTLINK}}, {{POSTLINK-WITHTITLE}}, {{POSTLINK-ONLY}}, {{POSTFULL}} </p>
|
51 |
<p id="newsletter">
|
52 |
+
<a href="https://www.icegram.com/documentation/es-what-are-the-available-keywords-in-the-newsletters/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page" target="_blank"><?php _e( 'Available Keywords', 'email-subscribers' ); ?></a> <?php _e( 'for Newsletter:', 'email-subscribers' ); ?> {{FIRSTNAME}}, {{LASTNAME}}, {{NAME}}, {{EMAIL}} </p>
|
53 |
<?php
|
54 |
}
|
55 |
|
includes/class-email-subscribers.php
CHANGED
@@ -74,6 +74,8 @@ class Email_Subscribers {
|
|
74 |
public function __construct() {
|
75 |
global $ig_es_feedback, $ig_es_tracker;
|
76 |
|
|
|
|
|
77 |
require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-activator.php';
|
78 |
require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-deactivator.php';
|
79 |
|
@@ -86,14 +88,15 @@ class Email_Subscribers {
|
|
86 |
$this->email_subscribers = 'email-subscribers';
|
87 |
|
88 |
$this->define_constants();
|
89 |
-
$this->load_dependencies();
|
90 |
$this->set_locale();
|
91 |
$this->define_admin_hooks();
|
92 |
$this->define_public_hooks();
|
93 |
|
94 |
-
$ig_es_tracker = '
|
95 |
if ( is_admin() ) {
|
96 |
-
|
|
|
97 |
$ig_es_feedback->render_deactivate_feedback();
|
98 |
}
|
99 |
|
@@ -147,7 +150,7 @@ class Email_Subscribers {
|
|
147 |
$all_plugins = $ig_es_tracker::get_plugins();
|
148 |
//get pro button
|
149 |
if ( ! in_array( $es_premium, $all_plugins ) && is_admin() && ! in_array( $screen_id, array('toplevel_page_es_dashboard'), true ) ) {
|
150 |
-
echo "<div class='notice es-floting-button'><i class='dashicons dashicons-es dashicons-awards'></i
|
151 |
}
|
152 |
//cron notice
|
153 |
$notice_option = get_option( 'ig_es_wp_cron_notice' );
|
@@ -268,8 +271,9 @@ class Email_Subscribers {
|
|
268 |
* @since 4.0
|
269 |
* @access private
|
270 |
*/
|
271 |
-
private function load_dependencies() {
|
272 |
|
|
|
273 |
/**
|
274 |
* The class responsible for orchestrating the actions and filters of the
|
275 |
* core plugin.
|
@@ -346,8 +350,8 @@ class Email_Subscribers {
|
|
346 |
'includes/pro-features.php',
|
347 |
|
348 |
// Feedback
|
349 |
-
'includes/feedback/class-ig-tracker-v-
|
350 |
-
'includes/feedback/class-ig-feedback-v-
|
351 |
'includes/feedback.php'
|
352 |
);
|
353 |
|
74 |
public function __construct() {
|
75 |
global $ig_es_feedback, $ig_es_tracker;
|
76 |
|
77 |
+
$feedback_version = '1.0.5';
|
78 |
+
|
79 |
require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-activator.php';
|
80 |
require_once plugin_dir_path( __FILE__ ) . 'class-email-subscribers-deactivator.php';
|
81 |
|
88 |
$this->email_subscribers = 'email-subscribers';
|
89 |
|
90 |
$this->define_constants();
|
91 |
+
$this->load_dependencies( $feedback_version );
|
92 |
$this->set_locale();
|
93 |
$this->define_admin_hooks();
|
94 |
$this->define_public_hooks();
|
95 |
|
96 |
+
$ig_es_tracker = 'IG_Tracker_V_' . str_replace('.', '_', $feedback_version);
|
97 |
if ( is_admin() ) {
|
98 |
+
$ig_es_feedback_class = 'IG_Feedback_V_' . str_replace('.', '_', $feedback_version);
|
99 |
+
$ig_es_feedback = new $ig_es_feedback_class( 'Email Subscribers', 'email-subscribers', 'ig_es', 'esfree.', false );
|
100 |
$ig_es_feedback->render_deactivate_feedback();
|
101 |
}
|
102 |
|
150 |
$all_plugins = $ig_es_tracker::get_plugins();
|
151 |
//get pro button
|
152 |
if ( ! in_array( $es_premium, $all_plugins ) && is_admin() && ! in_array( $screen_id, array('toplevel_page_es_dashboard'), true ) ) {
|
153 |
+
echo "<div class='notice es-floting-button'><i class='dashicons dashicons-es dashicons-awards'></i> <a href='https://www.icegram.com/email-subscribers-pricing/?utm_source=in_app&utm_medium=get_starter_floating_button&utm_campaign=es_upsale' target='_blank'>" .__('Get Starter Now!', 'email-subscribers') ."</a></div>";
|
154 |
}
|
155 |
//cron notice
|
156 |
$notice_option = get_option( 'ig_es_wp_cron_notice' );
|
271 |
* @since 4.0
|
272 |
* @access private
|
273 |
*/
|
274 |
+
private function load_dependencies( $feedback_version ) {
|
275 |
|
276 |
+
$feedback_version_for_file = str_replace('.', '-', $feedback_version);
|
277 |
/**
|
278 |
* The class responsible for orchestrating the actions and filters of the
|
279 |
* core plugin.
|
350 |
'includes/pro-features.php',
|
351 |
|
352 |
// Feedback
|
353 |
+
'includes/feedback/class-ig-tracker-v-' . $feedback_version_for_file . '.php',
|
354 |
+
'includes/feedback/class-ig-feedback-v-' . $feedback_version_for_file . '.php',
|
355 |
'includes/feedback.php'
|
356 |
);
|
357 |
|
includes/class-es-install.php
CHANGED
@@ -368,7 +368,7 @@ class ES_Install {
|
|
368 |
'ig_es_enable_welcome_email' => array( 'default' => 'yes', 'old_option' => 'ig_es_welcomeemail', 'action' => 'convert_space_to_underscore' ),
|
369 |
'ig_es_welcome_email_subject' => array( 'default' => $welcome_email_subject, 'old_option' => 'ig_es_welcomesubject' ),
|
370 |
'ig_es_welcome_email_content' => array( 'default' => $welcome_email_content, 'old_option' => 'ig_es_welcomecontent' ),
|
371 |
-
'ig_es_enable_cron_admin_email' => array( 'default' =>
|
372 |
'ig_es_cron_admin_email' => array( 'default' => $cron_admin_email, 'old_option' => 'ig_es_cron_adminmail' ),
|
373 |
'ig_es_cronurl' => array( 'default' => $cronurl, 'old_option' => 'ig_es_cronurl' ),
|
374 |
'ig_es_hourly_email_send_limit' => array( 'default' => 300, 'old_option' => 'ig_es_cron_mailcount' ),
|
@@ -378,7 +378,7 @@ class ES_Install {
|
|
378 |
'ig_es_optin_link' => array( 'default' => $optinlink, 'old_option' => 'ig_es_optinlink' ),
|
379 |
'ig_es_unsubscribe_link_content' => array( 'default' => $unsubscribe_link_content, 'old_option' => 'ig_es_unsubcontent' ),
|
380 |
'ig_es_email_type' => array( 'default' => 'wp_html_mail', 'old_option' => 'ig_es_emailtype', 'action' => 'convert_space_to_underscore' ),
|
381 |
-
'ig_es_notify_admin' => array( 'default' => '
|
382 |
'ig_es_optin_type' => array( 'default' => 'double_opt_in', 'old_option' => 'ig_es_optintype', 'action' => 'convert_space_to_underscore' ),
|
383 |
'ig_es_subscription_error_messsage' => array( 'default' => $subscription_error_messsage, 'old_option' => 'ig_es_suberror' ),
|
384 |
'ig_es_subscription_success_message' => array( 'default' => "You have been successfully subscribed.", 'old_option' => 'ig_es_successmsg' ),
|
@@ -885,7 +885,7 @@ class ES_Install {
|
|
885 |
'label' => 'Lists',
|
886 |
'show' => false,
|
887 |
'required' => true,
|
888 |
-
'values' => array($list_id)
|
889 |
),
|
890 |
|
891 |
'position' => 3
|
@@ -906,7 +906,7 @@ class ES_Install {
|
|
906 |
);
|
907 |
|
908 |
$settings = array(
|
909 |
-
'lists' => array($list_id),
|
910 |
'desc' => ''
|
911 |
);
|
912 |
|
368 |
'ig_es_enable_welcome_email' => array( 'default' => 'yes', 'old_option' => 'ig_es_welcomeemail', 'action' => 'convert_space_to_underscore' ),
|
369 |
'ig_es_welcome_email_subject' => array( 'default' => $welcome_email_subject, 'old_option' => 'ig_es_welcomesubject' ),
|
370 |
'ig_es_welcome_email_content' => array( 'default' => $welcome_email_content, 'old_option' => 'ig_es_welcomecontent' ),
|
371 |
+
'ig_es_enable_cron_admin_email' => array( 'default' => 'yes', 'old_option' => 'ig_es_enable_cron_adminmail' ),
|
372 |
'ig_es_cron_admin_email' => array( 'default' => $cron_admin_email, 'old_option' => 'ig_es_cron_adminmail' ),
|
373 |
'ig_es_cronurl' => array( 'default' => $cronurl, 'old_option' => 'ig_es_cronurl' ),
|
374 |
'ig_es_hourly_email_send_limit' => array( 'default' => 300, 'old_option' => 'ig_es_cron_mailcount' ),
|
378 |
'ig_es_optin_link' => array( 'default' => $optinlink, 'old_option' => 'ig_es_optinlink' ),
|
379 |
'ig_es_unsubscribe_link_content' => array( 'default' => $unsubscribe_link_content, 'old_option' => 'ig_es_unsubcontent' ),
|
380 |
'ig_es_email_type' => array( 'default' => 'wp_html_mail', 'old_option' => 'ig_es_emailtype', 'action' => 'convert_space_to_underscore' ),
|
381 |
+
'ig_es_notify_admin' => array( 'default' => 'yes', 'old_option' => 'ig_es_notifyadmin', 'action' => 'convert_space_to_underscore' ),
|
382 |
'ig_es_optin_type' => array( 'default' => 'double_opt_in', 'old_option' => 'ig_es_optintype', 'action' => 'convert_space_to_underscore' ),
|
383 |
'ig_es_subscription_error_messsage' => array( 'default' => $subscription_error_messsage, 'old_option' => 'ig_es_suberror' ),
|
384 |
'ig_es_subscription_success_message' => array( 'default' => "You have been successfully subscribed.", 'old_option' => 'ig_es_successmsg' ),
|
885 |
'label' => 'Lists',
|
886 |
'show' => false,
|
887 |
'required' => true,
|
888 |
+
'values' => array( $list_id )
|
889 |
),
|
890 |
|
891 |
'position' => 3
|
906 |
);
|
907 |
|
908 |
$settings = array(
|
909 |
+
'lists' => array( $list_id ),
|
910 |
'desc' => ''
|
911 |
);
|
912 |
|
includes/feedback/{class-ig-feedback-v-1-0-4.php → class-ig-feedback-v-1-0-5.php}
RENAMED
@@ -5,7 +5,7 @@
|
|
5 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
6 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
7 |
*
|
8 |
-
* @class
|
9 |
* @package feedback
|
10 |
* @copyright Copyright (c) 2019, Icegram
|
11 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
@@ -15,7 +15,7 @@
|
|
15 |
|
16 |
defined( 'ABSPATH' ) || exit;
|
17 |
|
18 |
-
if ( ! class_exists( '
|
19 |
/**
|
20 |
* Icegram Deactivation Survey.
|
21 |
*
|
@@ -27,7 +27,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
27 |
* @license GPL-2.0+
|
28 |
* @copyright Copyright (c) 2019
|
29 |
*/
|
30 |
-
class
|
31 |
|
32 |
/**
|
33 |
* The API URL where we will send feedback data.
|
@@ -586,7 +586,33 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
586 |
var $deactivateLink = $('#the-list').find('[data-slug="<?php echo $this->plugin; ?>"] span.deactivate a'),
|
587 |
$overlay = $('#ig-deactivate-survey-<?php echo $this->plugin; ?>'),
|
588 |
$form = $overlay.find('form'),
|
589 |
-
formOpen = false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
590 |
// Plugin listing table deactivate link.
|
591 |
$deactivateLink.on('click', function (event) {
|
592 |
event.preventDefault();
|
@@ -598,14 +624,30 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
598 |
$form.on('change', 'input[type=radio]', function (event) {
|
599 |
event.preventDefault();
|
600 |
$form.find('input[type=text], .error').hide();
|
|
|
601 |
$form.find('.ig-deactivate-survey-option').removeClass('selected');
|
602 |
$(this).closest('.ig-deactivate-survey-option').addClass('selected').find('input[type=text]').show();
|
|
|
|
|
|
|
|
|
603 |
});
|
604 |
// Survey Skip & Deactivate.
|
605 |
$form.on('click', '.ig-deactivate-survey-deactivate', function (event) {
|
606 |
event.preventDefault();
|
607 |
location.href = $deactivateLink.attr('href');
|
608 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
609 |
// Survey submit.
|
610 |
$form.submit(function (event) {
|
611 |
event.preventDefault();
|
@@ -614,6 +656,25 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
614 |
return;
|
615 |
}
|
616 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
var data = {
|
618 |
action: '<?php echo $this->ajax_action; ?>',
|
619 |
feedback: {
|
@@ -631,7 +692,9 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
631 |
plugin: '<?php echo $this->plugin; ?>',
|
632 |
plugin_abbr: '<?php echo $this->plugin_abbr; ?>',
|
633 |
is_dev_mode: '<?php echo $this->is_dev_mode; ?>',
|
634 |
-
set_cookie: ''
|
|
|
|
|
635 |
}
|
636 |
};
|
637 |
|
@@ -708,6 +771,22 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
708 |
margin: 0 0 18px 0;
|
709 |
}
|
710 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
711 |
.ig-deactivate-survey-title span {
|
712 |
color: #999;
|
713 |
margin-right: 10px;
|
@@ -759,6 +838,8 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
759 |
return;
|
760 |
}
|
761 |
|
|
|
|
|
762 |
$options = array(
|
763 |
1 => array(
|
764 |
'title' => esc_html__( 'I no longer need the plugin', 'email-subscribers' ),
|
@@ -802,6 +883,13 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_4' ) ) {
|
|
802 |
</div>
|
803 |
<?php endforeach; ?>
|
804 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
805 |
<div class="ig-deactivate-survey-footer">
|
806 |
<button type="submit" class="ig-deactivate-survey-submit button button-primary button-large"><?php echo sprintf( esc_html__( 'Submit %s Deactivate', 'email-subscribers' ), '&' ); ?></button>
|
807 |
<a href="#" class="ig-deactivate-survey-deactivate"><?php echo sprintf( esc_html__( 'Skip %s Deactivate', 'email-subscribers' ), '&' ); ?></a>
|
5 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
6 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
7 |
*
|
8 |
+
* @class IG_Feedback_V_1_0_5
|
9 |
* @package feedback
|
10 |
* @copyright Copyright (c) 2019, Icegram
|
11 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
15 |
|
16 |
defined( 'ABSPATH' ) || exit;
|
17 |
|
18 |
+
if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
|
19 |
/**
|
20 |
* Icegram Deactivation Survey.
|
21 |
*
|
27 |
* @license GPL-2.0+
|
28 |
* @copyright Copyright (c) 2019
|
29 |
*/
|
30 |
+
class IG_Feedback_V_1_0_5 {
|
31 |
|
32 |
/**
|
33 |
* The API URL where we will send feedback data.
|
586 |
var $deactivateLink = $('#the-list').find('[data-slug="<?php echo $this->plugin; ?>"] span.deactivate a'),
|
587 |
$overlay = $('#ig-deactivate-survey-<?php echo $this->plugin; ?>'),
|
588 |
$form = $overlay.find('form'),
|
589 |
+
formOpen = false,
|
590 |
+
consent = $('#ig-deactivate-survey-help-consent-<?php echo $this->plugin; ?>');
|
591 |
+
|
592 |
+
function togglePersonalInfoFields ( show ) {
|
593 |
+
|
594 |
+
if(show) {
|
595 |
+
$form.find('#ig-deactivate-survey-info-name').show();
|
596 |
+
$form.find('#ig-deactivate-survey-info-email-address').show();
|
597 |
+
$form.find('#ig-deactivate-survey-consent-additional-data').show();
|
598 |
+
} else {
|
599 |
+
$form.find('#ig-deactivate-survey-info-name').hide();
|
600 |
+
$form.find('#ig-deactivate-survey-info-email-address').hide();
|
601 |
+
$form.find('#ig-deactivate-survey-consent-additional-data').hide();
|
602 |
+
}
|
603 |
+
|
604 |
+
};
|
605 |
+
|
606 |
+
|
607 |
+
function validateEmail(email) {
|
608 |
+
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
|
609 |
+
if (!emailReg.test(email)) {
|
610 |
+
return false;
|
611 |
+
} else {
|
612 |
+
return true;
|
613 |
+
}
|
614 |
+
};
|
615 |
+
|
616 |
// Plugin listing table deactivate link.
|
617 |
$deactivateLink.on('click', function (event) {
|
618 |
event.preventDefault();
|
624 |
$form.on('change', 'input[type=radio]', function (event) {
|
625 |
event.preventDefault();
|
626 |
$form.find('input[type=text], .error').hide();
|
627 |
+
|
628 |
$form.find('.ig-deactivate-survey-option').removeClass('selected');
|
629 |
$(this).closest('.ig-deactivate-survey-option').addClass('selected').find('input[type=text]').show();
|
630 |
+
|
631 |
+
if(consent.attr('checked') === 'checked') {
|
632 |
+
togglePersonalInfoFields(true);
|
633 |
+
}
|
634 |
});
|
635 |
// Survey Skip & Deactivate.
|
636 |
$form.on('click', '.ig-deactivate-survey-deactivate', function (event) {
|
637 |
event.preventDefault();
|
638 |
location.href = $deactivateLink.attr('href');
|
639 |
});
|
640 |
+
|
641 |
+
// Help Consent
|
642 |
+
togglePersonalInfoFields(false);
|
643 |
+
consent.on('click', function () {
|
644 |
+
if(consent.attr('checked') === 'checked') {
|
645 |
+
togglePersonalInfoFields(true);
|
646 |
+
} else {
|
647 |
+
togglePersonalInfoFields(false);
|
648 |
+
}
|
649 |
+
});
|
650 |
+
|
651 |
// Survey submit.
|
652 |
$form.submit(function (event) {
|
653 |
event.preventDefault();
|
656 |
return;
|
657 |
}
|
658 |
|
659 |
+
var system_info = false;
|
660 |
+
var name = '';
|
661 |
+
var email = '';
|
662 |
+
|
663 |
+
if(consent.attr('checked') === 'checked') {
|
664 |
+
name = $('#ig-deactivate-survey-info-name').val();
|
665 |
+
email = $('#ig-deactivate-survey-info-email-address').val();
|
666 |
+
if(email === '' || !validateEmail(email)) {
|
667 |
+
alert('Please enter valid email');
|
668 |
+
return;
|
669 |
+
}
|
670 |
+
system_info = true;
|
671 |
+
}
|
672 |
+
|
673 |
+
var meta = {
|
674 |
+
name: name,
|
675 |
+
email: email
|
676 |
+
};
|
677 |
+
|
678 |
var data = {
|
679 |
action: '<?php echo $this->ajax_action; ?>',
|
680 |
feedback: {
|
692 |
plugin: '<?php echo $this->plugin; ?>',
|
693 |
plugin_abbr: '<?php echo $this->plugin_abbr; ?>',
|
694 |
is_dev_mode: '<?php echo $this->is_dev_mode; ?>',
|
695 |
+
set_cookie: '',
|
696 |
+
meta_info: meta,
|
697 |
+
system_info: system_info
|
698 |
}
|
699 |
};
|
700 |
|
771 |
margin: 0 0 18px 0;
|
772 |
}
|
773 |
|
774 |
+
.ig-deactivate-survey-options {
|
775 |
+
border-bottom: 1px solid #ddd;
|
776 |
+
padding: 0 0 18px 0;
|
777 |
+
margin: 0 0 18px 0;
|
778 |
+
}
|
779 |
+
|
780 |
+
.ig-deactivate-survey-info-data {
|
781 |
+
padding: 0 0 18px 0;
|
782 |
+
margin: 10px 10px 10px 30px;
|
783 |
+
}
|
784 |
+
|
785 |
+
.ig-deactivate-survey-info-name, .ig-deactivate-survey-info-email-address {
|
786 |
+
width: 230px;
|
787 |
+
margin: 10px;
|
788 |
+
}
|
789 |
+
|
790 |
.ig-deactivate-survey-title span {
|
791 |
color: #999;
|
792 |
margin-right: 10px;
|
838 |
return;
|
839 |
}
|
840 |
|
841 |
+
$email = get_option('admin_email');
|
842 |
+
|
843 |
$options = array(
|
844 |
1 => array(
|
845 |
'title' => esc_html__( 'I no longer need the plugin', 'email-subscribers' ),
|
883 |
</div>
|
884 |
<?php endforeach; ?>
|
885 |
</div>
|
886 |
+
<div class="ig-deactivate-survey-help-consent">
|
887 |
+
<input id="ig-deactivate-survey-help-consent-<?php echo $this->plugin; ?>" class="ig-deactivate-survey-option-input" type="checkbox" name="code" data-option-slug="<?php echo $option['slug']; ?>"/><b>Yes, I give my consent to track plugin usage and contact me back to make this plugin works!</b>
|
888 |
+
</div>
|
889 |
+
<div class="ig-deactivate-survey-info-data">
|
890 |
+
<input type="text" class="ig-deactivate-survey-info-name" id="ig-deactivate-survey-info-name" placeholder="Enter Name" name="ig-deactivate-survey-info-name" value="" />
|
891 |
+
<input type="text" class="ig-deactivate-survey-info-email-address" id="ig-deactivate-survey-info-email-address" name="ig-deactivate-survey-info-email-address" value="<?php echo $email; ?>" />
|
892 |
+
</div>
|
893 |
<div class="ig-deactivate-survey-footer">
|
894 |
<button type="submit" class="ig-deactivate-survey-submit button button-primary button-large"><?php echo sprintf( esc_html__( 'Submit %s Deactivate', 'email-subscribers' ), '&' ); ?></button>
|
895 |
<a href="#" class="ig-deactivate-survey-deactivate"><?php echo sprintf( esc_html__( 'Skip %s Deactivate', 'email-subscribers' ), '&' ); ?></a>
|
includes/feedback/{class-ig-tracker-v-1-0-4.php → class-ig-tracker-v-1-0-5.php}
RENAMED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
if ( ! class_exists( '
|
8 |
|
9 |
/**
|
10 |
* Icegram tracker.
|
@@ -14,7 +14,7 @@ if ( ! class_exists( 'IG_Tracker_V_1_0_4' ) ) {
|
|
14 |
*
|
15 |
* @since 1.0.0
|
16 |
*/
|
17 |
-
class
|
18 |
|
19 |
/**
|
20 |
* Get Active, Inactive or all plugins info
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Tracker_V_1_0_5' ) ) {
|
8 |
|
9 |
/**
|
10 |
* Icegram tracker.
|
14 |
*
|
15 |
* @since 1.0.0
|
16 |
*/
|
17 |
+
class IG_Tracker_V_1_0_5 {
|
18 |
|
19 |
/**
|
20 |
* Get Active, Inactive or all plugins info
|
includes/pro-features.php
CHANGED
@@ -8,6 +8,7 @@ add_filter( 'ig_es_sync_users_tabs', 'ig_es_add_sync_users_tabs', 11, 1 );
|
|
8 |
add_action( 'ig_es_sync_users_tabs_comments', 'ig_es_add_comments_tab_settings' );
|
9 |
add_action( 'ig_es_sync_users_tabs_woocommerce', 'ig_es_add_woocommerce_tab_settings' );
|
10 |
add_action( 'ig_es_sync_users_tabs_cf7', 'ig_es_add_cf7_tab_settings' );
|
|
|
11 |
|
12 |
function ig_es_add_upsale( $fields ) {
|
13 |
global $ig_es_tracker;
|
@@ -181,5 +182,22 @@ function ig_es_add_cf7_tab_settings( $tab_options ) {
|
|
181 |
<?php
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
|
8 |
add_action( 'ig_es_sync_users_tabs_comments', 'ig_es_add_comments_tab_settings' );
|
9 |
add_action( 'ig_es_sync_users_tabs_woocommerce', 'ig_es_add_woocommerce_tab_settings' );
|
10 |
add_action( 'ig_es_sync_users_tabs_cf7', 'ig_es_add_cf7_tab_settings' );
|
11 |
+
add_action( 'edit_form_advanced', 'add_spam_score_utm_link' );
|
12 |
|
13 |
function ig_es_add_upsale( $fields ) {
|
14 |
global $ig_es_tracker;
|
182 |
<?php
|
183 |
}
|
184 |
|
185 |
+
function add_spam_score_utm_link() {
|
186 |
+
global $post, $pagenow, $ig_es_tracker;
|
187 |
+
if ( $post->post_type !== 'es_template' ) {
|
188 |
+
return;
|
189 |
+
}
|
190 |
+
$es_premium = 'email-subscribers-premium/email-subscribers-premium.php';
|
191 |
+
$all_plugins = $ig_es_tracker::get_plugins();
|
192 |
+
|
193 |
+
if ( ! in_array( $es_premium, $all_plugins ) ) {
|
194 |
+
?>
|
195 |
+
<script>
|
196 |
+
jQuery('#submitdiv').after('<div class="es_upsale"><a style="text-decoration:none;" target="_blank" href="https://www.icegram.com/documentation/how-ready-made-template-in-in-email-subscribers-look/?utm_source=in_app&utm_medium=es_template&utm_campaign=es_upsale"><img title="Get readymade templates" style="width:100%;border:0.3em #d46307 solid" src="<?php echo EMAIL_SUBSCRIBERS_URL?>/admin/images/starter-tmpl.png"/><p style="background: #d46307; color: #FFF; padding: 4px; width: 100%; text-align:center">Get readymade beautiful email templates</p></a></div>');
|
197 |
+
</script>
|
198 |
+
<?php
|
199 |
+
}
|
200 |
+
}
|
201 |
+
|
202 |
|
203 |
|
public/partials/class-es-shortcode.php
CHANGED
@@ -223,7 +223,7 @@ class ES_Shortcode {
|
|
223 |
}
|
224 |
$lists_html .= '<td>' . $status_span . '<label><input type="checkbox" name="lists[]" checked="checked" value="' . $list_id . '" />' . $list_name . '</label></td>';
|
225 |
} else {
|
226 |
-
$lists_html .= '<td><input type="checkbox" name="lists[]" value="' . $list_id . '" />' . $list_name . '</td>';
|
227 |
}
|
228 |
$i ++;
|
229 |
}
|
223 |
}
|
224 |
$lists_html .= '<td>' . $status_span . '<label><input type="checkbox" name="lists[]" checked="checked" value="' . $list_id . '" />' . $list_name . '</label></td>';
|
225 |
} else {
|
226 |
+
$lists_html .= '<td><label><input type="checkbox" name="lists[]" value="' . $list_id . '" />' . $list_name . '</label></td>';
|
227 |
}
|
228 |
$i ++;
|
229 |
}
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Author URI: https://www.icegram.com/
|
|
5 |
Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 5.2.2
|
8 |
-
Stable tag: 4.1.
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses
|
11 |
|
@@ -304,6 +304,12 @@ Use our free plugin [Email Subscribers - Group Selector](https://wordpress.org/p
|
|
304 |
9. Admin page - Settings Tab 4 - Security Settings
|
305 |
|
306 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
= 4.1.5 (20.06.2019) =
|
308 |
* Update: Added "Opt-In Type" column in exported contacts lists
|
309 |
* Update: Allow to send broadcast only if contacts are available in list
|
5 |
Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 5.2.2
|
8 |
+
Stable tag: 4.1.6
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses
|
11 |
|
304 |
9. Admin page - Settings Tab 4 - Security Settings
|
305 |
|
306 |
== Changelog ==
|
307 |
+
= 4.1.6 (01.07.2019) =
|
308 |
+
* Update: Added sorting for name field in Audience tab
|
309 |
+
* Fix: Warning: Illegal string offset 'es_registered'
|
310 |
+
* Fix: Set list name blank in campaign list page
|
311 |
+
* Fix: Contacts sort by email was not working.
|
312 |
+
|
313 |
= 4.1.5 (20.06.2019) =
|
314 |
* Update: Added "Opt-In Type" column in exported contacts lists
|
315 |
* Update: Allow to send broadcast only if contacts are available in list
|