Version Description
Download this release
Release Info
Developer | Icegram |
Plugin | Email Subscribers & Newsletters |
Version | 4.3.13 |
Comparing to | |
See all releases |
Code changes from version 4.3.12 to 4.3.13
- email-subscribers.php +3 -3
- lite/includes/class-es-common.php +4 -2
- lite/includes/feedback.php +79 -1
- lite/includes/feedback/assets/css/feedback.min.css +9 -0
- lite/includes/feedback/class-ig-feedback.php +216 -16
- lite/includes/feedback/class-ig-tracker.php +4 -4
- lite/public/class-email-subscribers-public.php +2 -2
- lite/public/partials/class-es-shortcode.php +1 -1
- readme.txt +7 -4
email-subscribers.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Email Subscribers & Newsletters
|
4 |
* Plugin URI: https://www.icegram.com/
|
5 |
* Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
|
6 |
-
* Version: 4.3.
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
@@ -29,7 +29,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
29 |
* @since 4.3.0
|
30 |
*/
|
31 |
if ( ! defined( 'IG_ES_FEEDBACK_TRACKER_VERSION' ) ) {
|
32 |
-
define( 'IG_ES_FEEDBACK_TRACKER_VERSION', '1.0
|
33 |
}
|
34 |
|
35 |
|
@@ -111,7 +111,7 @@ if ( $is_premium ) {
|
|
111 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
112 |
|
113 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
114 |
-
define( 'ES_PLUGIN_VERSION', '4.3.
|
115 |
}
|
116 |
|
117 |
// Plugin Folder Path.
|
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.3.13
|
7 |
* Author: Icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Requires at least: 3.9
|
29 |
* @since 4.3.0
|
30 |
*/
|
31 |
if ( ! defined( 'IG_ES_FEEDBACK_TRACKER_VERSION' ) ) {
|
32 |
+
define( 'IG_ES_FEEDBACK_TRACKER_VERSION', '1.2.0' );
|
33 |
}
|
34 |
|
35 |
|
111 |
/* ***************************** Initial Compatibility Work (End) ******************* */
|
112 |
|
113 |
if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
|
114 |
+
define( 'ES_PLUGIN_VERSION', '4.3.13' );
|
115 |
}
|
116 |
|
117 |
// Plugin Folder Path.
|
lite/includes/class-es-common.php
CHANGED
@@ -1023,13 +1023,15 @@ Class ES_Common {
|
|
1023 |
} elseif ( 'feedback' === $params['type'] ) {
|
1024 |
$feedback->render_general_feedback( $params );
|
1025 |
} elseif ( 'fb' === $params['type'] ) {
|
1026 |
-
|
1027 |
/**
|
1028 |
* We are not calling home for this event and we want to show
|
1029 |
* this Widget only once. So, we are storing feedback data now.
|
1030 |
*/
|
1031 |
$feedback->set_feedback_data( 'ig_es', $event );
|
1032 |
$feedback->render_fb_widget( $params );
|
|
|
|
|
|
|
1033 |
}
|
1034 |
}
|
1035 |
}
|
@@ -1224,7 +1226,7 @@ Class ES_Common {
|
|
1224 |
*/
|
1225 |
public static function generate_hash( $length ) {
|
1226 |
|
1227 |
-
$length
|
1228 |
|
1229 |
return substr( md5( uniqid() . uniqid() . wp_rand( $length, 64 ) ), 0, $length );
|
1230 |
}
|
1023 |
} elseif ( 'feedback' === $params['type'] ) {
|
1024 |
$feedback->render_general_feedback( $params );
|
1025 |
} elseif ( 'fb' === $params['type'] ) {
|
|
|
1026 |
/**
|
1027 |
* We are not calling home for this event and we want to show
|
1028 |
* this Widget only once. So, we are storing feedback data now.
|
1029 |
*/
|
1030 |
$feedback->set_feedback_data( 'ig_es', $event );
|
1031 |
$feedback->render_fb_widget( $params );
|
1032 |
+
} elseif ( 'poll' === $params['type'] ) {
|
1033 |
+
$feedback->set_feedback_data( 'ig_es', $event );
|
1034 |
+
$feedback->render_poll_widget( $params );
|
1035 |
}
|
1036 |
}
|
1037 |
}
|
1226 |
*/
|
1227 |
public static function generate_hash( $length ) {
|
1228 |
|
1229 |
+
$length = ( $length ) ? $length : 12;
|
1230 |
|
1231 |
return substr( md5( uniqid() . uniqid() . wp_rand( $length, 64 ) ), 0, $length );
|
1232 |
}
|
lite/includes/feedback.php
CHANGED
@@ -187,4 +187,82 @@ if ( ! function_exists( 'ig_es_can_ask_user_for_review' ) ) {
|
|
187 |
}
|
188 |
}
|
189 |
|
190 |
-
add_filter( 'ig_es_can_ask_user_for_review', 'ig_es_can_ask_user_for_review', 10, 2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
}
|
189 |
|
190 |
+
add_filter( 'ig_es_can_ask_user_for_review', 'ig_es_can_ask_user_for_review', 10, 2 );
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Render Icegram-Email Subscribers merge feedback widget.
|
194 |
+
*
|
195 |
+
* @since 4.3.13
|
196 |
+
*/
|
197 |
+
function ig_es_render_iges_merge_feedback() {
|
198 |
+
|
199 |
+
global $ig_es_feedback;
|
200 |
+
|
201 |
+
if ( is_admin() ) {
|
202 |
+
|
203 |
+
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
204 |
+
return;
|
205 |
+
}
|
206 |
+
|
207 |
+
if ( ! ES()->is_es_admin_screen() ) {
|
208 |
+
return;
|
209 |
+
}
|
210 |
+
|
211 |
+
$total_contacts = ES()->contacts_db->count_active_contacts_by_list_id();
|
212 |
+
|
213 |
+
if ( $total_contacts >= 5 ) {
|
214 |
+
|
215 |
+
$event = 'poll.merge_iges';
|
216 |
+
|
217 |
+
// If user has already given feedback on Icegram page, don't ask them again
|
218 |
+
$is_event_tracked = $ig_es_feedback->is_event_tracked( 'ig', $event );
|
219 |
+
|
220 |
+
if ( $is_event_tracked ) {
|
221 |
+
return;
|
222 |
+
}
|
223 |
+
|
224 |
+
$params = array(
|
225 |
+
'type' => 'poll',
|
226 |
+
'title' => __( 'Subscription forms and CTAs??', 'email-subscribers' ),
|
227 |
+
'event' => $event,
|
228 |
+
'desc' => '<div><p>You use <a href="https://wordpress.org/plugins/email-subscribers" target="_blank"><b>Email Subscribers</b></a> to send email campaigns.</p> <p>Would you like us to include onsite popups and action bars in the plugin as well? This way you can <b>convert visitors to subscribers, drive traffic and run email marketing from a single plugin</b>.</p> <p>Why do we ask?</p> <p>Our <a href="https://wordpress.org/plugins/icegram" target="_blank"><b>Icegram</b></a> plugin already does onsite campaigns. We are thinking of merging Icegram & Email Subscribers into a single plugin.</p> <p><b>Will a comprehensive ConvertKit / MailChimp like email + onsite campaign plugin be useful to you?</b></p> </div>',
|
229 |
+
'poll_options' => array(
|
230 |
+
'yes' => array( 'text' => '<b>' . __( 'Yes', 'email-subscribers' ) . '</b>', 'color' => 'green' ),
|
231 |
+
'no' => array( 'text' => '<b>' . __( 'No', 'email-subscribers' ) . '</b>', 'color' => 'red' )
|
232 |
+
),
|
233 |
+
'allow_multiple' => false,
|
234 |
+
'position' => 'bottom-center',
|
235 |
+
'width' => 400,
|
236 |
+
'delay' => 2, // seconds
|
237 |
+
'confirmButtonText' => __( 'Send my feedback to <b>Icegram team</b>', 'email-subscribers' ),
|
238 |
+
'show_once' => true
|
239 |
+
);
|
240 |
+
|
241 |
+
ES_Common::render_feedback_widget( $params );
|
242 |
+
|
243 |
+
}
|
244 |
+
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
add_action( 'admin_footer', 'ig_es_render_iges_merge_feedback' );
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Can load sweetalert js file
|
252 |
+
*
|
253 |
+
* @param bool $load
|
254 |
+
*
|
255 |
+
* @return bool
|
256 |
+
*
|
257 |
+
* @since 4.3.13
|
258 |
+
*/
|
259 |
+
function ig_es_can_load_sweetalert_js( $load = false ) {
|
260 |
+
|
261 |
+
if ( ES()->is_es_admin_screen() ) {
|
262 |
+
return true;
|
263 |
+
}
|
264 |
+
|
265 |
+
return $load;
|
266 |
+
}
|
267 |
+
|
268 |
+
add_filter( 'ig_es_can_load_sweetalert_js', 'ig_es_can_load_sweetalert_js', 10, 1 );
|
lite/includes/feedback/assets/css/feedback.min.css
CHANGED
@@ -56,4 +56,13 @@
|
|
56 |
.email-subscribers_page_es_settings .ig-feedback-data-message textarea, .ig-feedback-data-message textarea {
|
57 |
height: 200px;
|
58 |
width: 92%
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
56 |
.email-subscribers_page_es_settings .ig-feedback-data-message textarea, .ig-feedback-data-message textarea {
|
57 |
height: 200px;
|
58 |
width: 92%
|
59 |
+
}
|
60 |
+
|
61 |
+
.ig-feedback-data-poll-message textarea {
|
62 |
+
height: 100px;
|
63 |
+
width: 100%;
|
64 |
+
}
|
65 |
+
|
66 |
+
.swal2-actions {
|
67 |
+
margin: 0px !important;
|
68 |
}
|
lite/includes/feedback/class-ig-feedback.php
CHANGED
@@ -4,21 +4,21 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
if ( ! class_exists( '
|
8 |
/**
|
9 |
* IG Feedback
|
10 |
*
|
11 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
12 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
13 |
*
|
14 |
-
* @class
|
15 |
* @since 1.0.0
|
16 |
* @copyright Copyright (c) 2019, Icegram
|
17 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
18 |
* @author Icegram
|
19 |
* @package feedback
|
20 |
*/
|
21 |
-
class
|
22 |
|
23 |
/**
|
24 |
* Version of Feedback Library
|
@@ -27,7 +27,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
-
public $version = '1.0
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
@@ -344,9 +344,16 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
344 |
* Load Javascripts
|
345 |
*
|
346 |
* @since 1.0.1
|
|
|
|
|
347 |
*/
|
348 |
public function enqueue_scripts() {
|
349 |
-
|
|
|
|
|
|
|
|
|
|
|
350 |
}
|
351 |
|
352 |
/**
|
@@ -355,20 +362,20 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
355 |
* @since 1.0.1
|
356 |
*/
|
357 |
public function enqueue_styles() {
|
358 |
-
wp_register_style(
|
359 |
-
wp_enqueue_style(
|
360 |
|
361 |
-
wp_register_style(
|
362 |
-
wp_enqueue_style(
|
363 |
|
364 |
-
wp_register_style(
|
365 |
-
wp_enqueue_style(
|
366 |
|
367 |
-
wp_register_style(
|
368 |
-
wp_enqueue_style(
|
369 |
|
370 |
-
wp_register_style(
|
371 |
-
wp_enqueue_style(
|
372 |
}
|
373 |
|
374 |
/**
|
@@ -395,7 +402,8 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
395 |
'backdrop' => true,
|
396 |
'delay' => 3, // In Seconds
|
397 |
'consent_text' => 'You are agree to our terms and condition',
|
398 |
-
'email' => $this->get_contact_email()
|
|
|
399 |
);
|
400 |
|
401 |
$params = wp_parse_args( $params, $default_params );
|
@@ -847,6 +855,164 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
847 |
<?php
|
848 |
}
|
849 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
850 |
/**
|
851 |
* Get Feedback API url
|
852 |
*
|
@@ -1372,6 +1538,40 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_16' ) ) {
|
|
1372 |
return $event_feedback_data;
|
1373 |
}
|
1374 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1375 |
/**
|
1376 |
* Set event into transient
|
1377 |
*
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
8 |
/**
|
9 |
* IG Feedback
|
10 |
*
|
11 |
* The IG Feedback class adds functionality to get quick interactive feedback from users.
|
12 |
* There are different types of feedabck widget like Stars, Emoji, Thubms Up/ Down, Number etc.
|
13 |
*
|
14 |
+
* @class IG_Feedback_V_1_2_0
|
15 |
* @since 1.0.0
|
16 |
* @copyright Copyright (c) 2019, Icegram
|
17 |
* @license https://opensource.org/licenses/gpl-license GNU Public License
|
18 |
* @author Icegram
|
19 |
* @package feedback
|
20 |
*/
|
21 |
+
class IG_Feedback_V_1_2_0 {
|
22 |
|
23 |
/**
|
24 |
* Version of Feedback Library
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
+
public $version = '1.2.0';
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
344 |
* Load Javascripts
|
345 |
*
|
346 |
* @since 1.0.1
|
347 |
+
*
|
348 |
+
* @modify 1.1.0
|
349 |
*/
|
350 |
public function enqueue_scripts() {
|
351 |
+
|
352 |
+
$can_load = apply_filters( $this->plugin_abbr . '_can_load_sweetalert_js', false );
|
353 |
+
|
354 |
+
if ( $can_load ) {
|
355 |
+
wp_enqueue_script( 'sweetalert', plugin_dir_url( __FILE__ ) . 'assets/js/sweetalert2.min.js', array( 'jquery' ) );
|
356 |
+
}
|
357 |
}
|
358 |
|
359 |
/**
|
362 |
* @since 1.0.1
|
363 |
*/
|
364 |
public function enqueue_styles() {
|
365 |
+
wp_register_style( "sweetalert_{$this->version}", plugin_dir_url( __FILE__ ) . 'assets/css/sweetalert2.min.css', array(), $this->version );
|
366 |
+
wp_enqueue_style( "sweetalert_{$this->version}" );
|
367 |
|
368 |
+
wp_register_style( "animate_{$this->version}", plugin_dir_url( __FILE__ ) . 'assets/css/animate.min.css', array(), $this->version );
|
369 |
+
wp_enqueue_style( "animate_{$this->version}" );
|
370 |
|
371 |
+
wp_register_style( "ig-feedback-star-rating_{$this->version}", plugin_dir_url( __FILE__ ) . 'assets/css/star-rating.min.css', array(), $this->version );
|
372 |
+
wp_enqueue_style( "ig-feedback-star-rating_{$this->version}" );
|
373 |
|
374 |
+
wp_register_style( "ig-feedback-emoji_{$this->version}", plugin_dir_url( __FILE__ ) . 'assets/css/emoji.min.css', array(), $this->version );
|
375 |
+
wp_enqueue_style( "ig-feedback-emoji_{$this->version}" );
|
376 |
|
377 |
+
wp_register_style( "ig-feedback_{$this->version}", plugin_dir_url( __FILE__ ) . 'assets/css/feedback.min.css', array(), $this->version );
|
378 |
+
wp_enqueue_style( "ig-feedback_{$this->version}" );
|
379 |
}
|
380 |
|
381 |
/**
|
402 |
'backdrop' => true,
|
403 |
'delay' => 3, // In Seconds
|
404 |
'consent_text' => 'You are agree to our terms and condition',
|
405 |
+
'email' => $this->get_contact_email(),
|
406 |
+
'name' => ''
|
407 |
);
|
408 |
|
409 |
$params = wp_parse_args( $params, $default_params );
|
855 |
<?php
|
856 |
}
|
857 |
|
858 |
+
/**
|
859 |
+
* Render Poll widget
|
860 |
+
*
|
861 |
+
* @param array $params
|
862 |
+
*
|
863 |
+
* @since 1.1.0
|
864 |
+
*/
|
865 |
+
public function render_poll_widget( $params = array() ) {
|
866 |
+
$params = $this->prepare_widget_params( $params );
|
867 |
+
|
868 |
+
$poll_options = ! empty( $params['poll_options'] ) ? $params['poll_options'] : array();
|
869 |
+
|
870 |
+
if ( empty( $poll_options ) ) {
|
871 |
+
return;
|
872 |
+
}
|
873 |
+
|
874 |
+
$allow_multiple = ! empty( $params['allow_multiple'] ) ? $params['allow_multiple'] : false;
|
875 |
+
|
876 |
+
$title = $params['title'];
|
877 |
+
$slug = sanitize_title( $title );
|
878 |
+
$event = $this->event_prefix . $params['event'];
|
879 |
+
$desc = ! empty( $params['desc'] ) ? $params['desc'] : '';
|
880 |
+
|
881 |
+
ob_start();
|
882 |
+
|
883 |
+
?>
|
884 |
+
|
885 |
+
<div class="ig-general-feedback" id="ig-general-feedback-<?php echo $this->plugin; ?>">
|
886 |
+
<form class="ig-general-feedback" id="ig-general-feedback">
|
887 |
+
<p><?php echo $desc; ?></p>
|
888 |
+
|
889 |
+
<p class="ig-general-feedback">
|
890 |
+
<?php foreach ( $poll_options as $value => $option ) { ?>
|
891 |
+
<input type="radio" name="feedback_data[poll_options]" value="<?php echo $value; ?>"><b style="color: <?php echo $option['color']; ?>"><?php echo $option['text']; ?></b><br/>
|
892 |
+
<?php } ?>
|
893 |
+
</p>
|
894 |
+
<p class="ig-feedback-data-poll-message" id="ig-feedback-data-poll-message">
|
895 |
+
<textarea name="feedback_data[details]" id="ig-feedback-data-poll-additional-message" placeholder="Additional feedback"></textarea>
|
896 |
+
</p>
|
897 |
+
</form>
|
898 |
+
</div>
|
899 |
+
|
900 |
+
<?php
|
901 |
+
|
902 |
+
$html = str_replace( array( "\r", "\n" ), '', trim( ob_get_clean() ) );
|
903 |
+
|
904 |
+
$params['html'] = $html;
|
905 |
+
|
906 |
+
$title = $params['title'];
|
907 |
+
$slug = sanitize_title( $title );
|
908 |
+
$event = $this->event_prefix . $params['event'];
|
909 |
+
$html = ! empty( $params['html'] ) ? $params['html'] : '';
|
910 |
+
|
911 |
+
?>
|
912 |
+
|
913 |
+
<script type="text/javascript">
|
914 |
+
|
915 |
+
jQuery(document).ready(function ($) {
|
916 |
+
|
917 |
+
function doSend(data, meta, system_info) {
|
918 |
+
|
919 |
+
var data = {
|
920 |
+
action: '<?php echo $this->ajax_action; ?>',
|
921 |
+
feedback: {
|
922 |
+
type: '<?php echo $params['type']; ?>',
|
923 |
+
slug: '<?php echo $slug; ?>',
|
924 |
+
title: '<?php echo esc_js( $title ); ?>',
|
925 |
+
data: data
|
926 |
+
},
|
927 |
+
|
928 |
+
event: '<?php echo $event; ?>',
|
929 |
+
|
930 |
+
// Add additional information
|
931 |
+
misc: {
|
932 |
+
plugin: '<?php echo $this->plugin; ?>',
|
933 |
+
plugin_abbr: '<?php echo $this->plugin_abbr; ?>',
|
934 |
+
is_dev_mode: '<?php echo $this->is_dev_mode; ?>',
|
935 |
+
set_transient: '<?php echo $params['set_transient']; ?>',
|
936 |
+
meta_info: meta,
|
937 |
+
system_info: system_info
|
938 |
+
}
|
939 |
+
};
|
940 |
+
|
941 |
+
return jQuery.post(ajaxurl, data);
|
942 |
+
}
|
943 |
+
|
944 |
+
Swal.mixin({
|
945 |
+
footer: '',
|
946 |
+
position: '<?php echo $params['position']; ?>',
|
947 |
+
width: <?php echo $params['width']; ?>,
|
948 |
+
animation: false,
|
949 |
+
focusConfirm: false,
|
950 |
+
allowEscapeKey: true,
|
951 |
+
showCloseButton: '<?php echo $params['showCloseButton']; ?>',
|
952 |
+
allowOutsideClick: '<?php echo $params['allowOutsideClick']; ?>',
|
953 |
+
showLoaderOnConfirm: true,
|
954 |
+
confirmButtonText: '<?php echo $params['confirmButtonText']; ?>',
|
955 |
+
backdrop: '<?php echo (int) $params['backdrop']; ?>'
|
956 |
+
}).queue([
|
957 |
+
{
|
958 |
+
title: '<p class="ig-feedback-title"><?php echo esc_js( $params['title'] ); ?></p>',
|
959 |
+
html: '<?php echo $html; ?>',
|
960 |
+
customClass: {
|
961 |
+
popup: 'animated fadeInUpBig'
|
962 |
+
},
|
963 |
+
onOpen: () => {
|
964 |
+
|
965 |
+
},
|
966 |
+
|
967 |
+
preConfirm: () => {
|
968 |
+
var $overlay = $('#ig-general-feedback-<?php echo $this->plugin; ?>');
|
969 |
+
var $form = $overlay.find('form');
|
970 |
+
var poll_options = $form.find("input[name='feedback_data[poll_options]']:checked").val();
|
971 |
+
var message = $form.find("#ig-feedback-data-poll-additional-message").val();
|
972 |
+
|
973 |
+
if (poll_options === undefined) {
|
974 |
+
Swal.showValidationMessage('Please select option');
|
975 |
+
return;
|
976 |
+
}
|
977 |
+
|
978 |
+
var data = {
|
979 |
+
poll_option: poll_options,
|
980 |
+
additional_feedback: message
|
981 |
+
};
|
982 |
+
|
983 |
+
var meta = {};
|
984 |
+
|
985 |
+
return doSend(data, meta, true);
|
986 |
+
}
|
987 |
+
},
|
988 |
+
|
989 |
+
]).then(response => {
|
990 |
+
|
991 |
+
if (response.hasOwnProperty('value')) {
|
992 |
+
|
993 |
+
Swal.fire({
|
994 |
+
type: 'success',
|
995 |
+
width: <?php echo $params['width']; ?>,
|
996 |
+
title: "Thank You!",
|
997 |
+
showConfirmButton: false,
|
998 |
+
position: '<?php echo $params['position']; ?>',
|
999 |
+
timer: 1500,
|
1000 |
+
animation: false
|
1001 |
+
});
|
1002 |
+
|
1003 |
+
}
|
1004 |
+
});
|
1005 |
+
|
1006 |
+
|
1007 |
+
});
|
1008 |
+
|
1009 |
+
</script>
|
1010 |
+
|
1011 |
+
|
1012 |
+
<?php
|
1013 |
+
}
|
1014 |
+
|
1015 |
+
|
1016 |
/**
|
1017 |
* Get Feedback API url
|
1018 |
*
|
1538 |
return $event_feedback_data;
|
1539 |
}
|
1540 |
|
1541 |
+
/**
|
1542 |
+
* Check whether event tracked or not.
|
1543 |
+
*
|
1544 |
+
* @param $plugin_abbr
|
1545 |
+
* @param $event
|
1546 |
+
*
|
1547 |
+
* @return bool
|
1548 |
+
*
|
1549 |
+
* @since 1.1.0
|
1550 |
+
*/
|
1551 |
+
public function is_event_tracked( $plugin_abbr = '', $event = '' ) {
|
1552 |
+
|
1553 |
+
if ( empty( $plugin_abbr ) || empty( $event ) ) {
|
1554 |
+
return false;
|
1555 |
+
}
|
1556 |
+
|
1557 |
+
$feedback_data = $this->get_feedback_data( $plugin_abbr );
|
1558 |
+
|
1559 |
+
if ( count( $feedback_data ) > 0 ) {
|
1560 |
+
|
1561 |
+
$events = array_keys( $feedback_data );
|
1562 |
+
|
1563 |
+
foreach ( $events as $key => $value ) {
|
1564 |
+
if ( strpos( $value, $event ) ) {
|
1565 |
+
return true;
|
1566 |
+
}
|
1567 |
+
}
|
1568 |
+
|
1569 |
+
}
|
1570 |
+
|
1571 |
+
return false;
|
1572 |
+
}
|
1573 |
+
|
1574 |
+
|
1575 |
/**
|
1576 |
* Set event into transient
|
1577 |
*
|
lite/includes/feedback/class-ig-tracker.php
CHANGED
@@ -4,15 +4,15 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
-
if ( ! class_exists( '
|
8 |
|
9 |
/**
|
10 |
-
* Class
|
11 |
*
|
12 |
* Icegram tracker handler class is responsible for sending anonymous plugin
|
13 |
* data to Icegram servers for users that actively allowed data tracking.
|
14 |
*
|
15 |
-
* @class
|
16 |
* @since 1.0.0
|
17 |
*
|
18 |
* @copyright Copyright (c) 2019, Icegram
|
@@ -20,7 +20,7 @@ if ( ! class_exists( 'IG_Tracker_V_1_0_16' ) ) {
|
|
20 |
* @author Icegram
|
21 |
* @package feedback
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Tracker_V_1_2_0' ) ) {
|
8 |
|
9 |
/**
|
10 |
+
* Class IG_Tracker_V_1_2_0
|
11 |
*
|
12 |
* Icegram tracker handler class is responsible for sending anonymous plugin
|
13 |
* data to Icegram servers for users that actively allowed data tracking.
|
14 |
*
|
15 |
+
* @class IG_Tracker_V_1_2_0
|
16 |
* @since 1.0.0
|
17 |
*
|
18 |
* @copyright Copyright (c) 2019, Icegram
|
20 |
* @author Icegram
|
21 |
* @package feedback
|
22 |
*/
|
23 |
+
class IG_Tracker_V_1_2_0 {
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
lite/public/class-email-subscribers-public.php
CHANGED
@@ -181,13 +181,13 @@ class Email_Subscribers_Public {
|
|
181 |
'guid' => $guid
|
182 |
);
|
183 |
|
184 |
-
ES()->mailer->send_welcome_email( $email, $data );
|
185 |
-
|
186 |
$lists = ES()->lists_db->get_all_lists_name_by_contact( $db_id );
|
187 |
$list_name = implode( ", ", $lists );
|
188 |
|
189 |
$data['list_name'] = $list_name;
|
190 |
|
|
|
|
|
191 |
ES()->mailer->send_add_new_contact_notification_to_admins( $data );
|
192 |
} elseif ( $option === 'unsubscribe' ) {
|
193 |
$unsubscribed = 1;
|
181 |
'guid' => $guid
|
182 |
);
|
183 |
|
|
|
|
|
184 |
$lists = ES()->lists_db->get_all_lists_name_by_contact( $db_id );
|
185 |
$list_name = implode( ", ", $lists );
|
186 |
|
187 |
$data['list_name'] = $list_name;
|
188 |
|
189 |
+
ES()->mailer->send_welcome_email( $email, $data );
|
190 |
+
|
191 |
ES()->mailer->send_add_new_contact_notification_to_admins( $data );
|
192 |
} elseif ( $option === 'unsubscribe' ) {
|
193 |
$unsubscribed = 1;
|
lite/public/partials/class-es-shortcode.php
CHANGED
@@ -231,7 +231,7 @@ class ES_Shortcode {
|
|
231 |
|
232 |
|
233 |
if($gdpr_consent === 'yes') { ?>
|
234 |
-
<p><input type="checkbox" name="es_gdpr_consent" value="true" required
|
235 |
<?php } else if ( ( in_array( 'gdpr/gdpr.php', $active_plugins ) || array_key_exists( 'gdpr/gdpr.php', $active_plugins ) ) ) {
|
236 |
echo GDPR::consent_checkboxes();
|
237 |
}
|
231 |
|
232 |
|
233 |
if($gdpr_consent === 'yes') { ?>
|
234 |
+
<p><input type="checkbox" name="es_gdpr_consent" value="true" required /> <label style="display: inline"><?php echo $gdpr_consent_text; ?></label></p>
|
235 |
<?php } else if ( ( in_array( 'gdpr/gdpr.php', $active_plugins ) || array_key_exists( 'gdpr/gdpr.php', $active_plugins ) ) ) {
|
236 |
echo GDPR::consent_checkboxes();
|
237 |
}
|
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.3.2
|
8 |
-
Stable tag: 4.3.
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses
|
11 |
|
@@ -61,6 +61,7 @@ Email Subscribers is a fully-featured subscription plugin specially created keep
|
|
61 |
* **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
|
62 |
* **Automatic Background Sending**
|
63 |
* **Connect with SMTP / Email Sending Services**
|
|
|
64 |
* **UTM Tracking**
|
65 |
* **Automatic Spam Score Checking**
|
66 |
* **Automatically add people to your mailing list whenever someone posts a comment on your website**
|
@@ -101,10 +102,8 @@ Don’t believe it? Have a look at the review section. The support guys are frie
|
|
101 |
> I highly recommend this product. It does everything it says it will do, is easily adaptable to your website, and Mansi’s level of support is fantastic. Unlike some of the other similar plugins, this one gives you total control over who requests to subscribe to your newsletter or blog.
|
102 |
> - [ForPm](https://wordpress.org/support/topic/great-product-and-support-11/)
|
103 |
|
104 |
-
|
105 |
Go to [Email Subscribers review section](https://wordpress.org/support/plugin/email-subscribers/reviews/) to know more about our recent reviews.
|
106 |
|
107 |
-
|
108 |
**Help Fellow WordPressers by Writing a Review**
|
109 |
|
110 |
If you like Email Subscribers, please leave a [5 stars](https://wordpress.org/support/view/plugin-reviews/email-subscribers?filter=5#postform) review on WordPress. That helps fellow website owners access Email Subscribers easily and benefit from it!
|
@@ -257,13 +256,17 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
|
|
257 |
|
258 |
== Changelog ==
|
259 |
|
|
|
|
|
|
|
|
|
|
|
260 |
**4.3.12 (17.02.2020)**
|
261 |
|
262 |
* Update: Added support for HTML in GDPR consent text
|
263 |
* Update: Now, contact will be deleted upon the deletion of WordPress user if WordPress sync is on.
|
264 |
* Update: Removed .SVG images from templates as it's blocked by Gmail
|
265 |
* Fix: Confirmation email did not go out if the subject is empty
|
266 |
-
* Fix: **{{LIST}}** keyword did not work in the welcome email
|
267 |
* Fix: Email Sending options was not saved properly
|
268 |
|
269 |
**4.3.11 (12.02.2020)**
|
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.3.2
|
8 |
+
Stable tag: 4.3.13
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses
|
11 |
|
61 |
* **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
|
62 |
* **Automatic Background Sending**
|
63 |
* **Connect with SMTP / Email Sending Services**
|
64 |
+
* **Link Tracking**
|
65 |
* **UTM Tracking**
|
66 |
* **Automatic Spam Score Checking**
|
67 |
* **Automatically add people to your mailing list whenever someone posts a comment on your website**
|
102 |
> I highly recommend this product. It does everything it says it will do, is easily adaptable to your website, and Mansi’s level of support is fantastic. Unlike some of the other similar plugins, this one gives you total control over who requests to subscribe to your newsletter or blog.
|
103 |
> - [ForPm](https://wordpress.org/support/topic/great-product-and-support-11/)
|
104 |
|
|
|
105 |
Go to [Email Subscribers review section](https://wordpress.org/support/plugin/email-subscribers/reviews/) to know more about our recent reviews.
|
106 |
|
|
|
107 |
**Help Fellow WordPressers by Writing a Review**
|
108 |
|
109 |
If you like Email Subscribers, please leave a [5 stars](https://wordpress.org/support/view/plugin-reviews/email-subscribers?filter=5#postform) review on WordPress. That helps fellow website owners access Email Subscribers easily and benefit from it!
|
256 |
|
257 |
== Changelog ==
|
258 |
|
259 |
+
**4.3.13 (24.02.2020)**
|
260 |
+
|
261 |
+
* Update: Added custom style for consent text
|
262 |
+
* Fix: **{{LIST}}** keyword did not work in the welcome email
|
263 |
+
|
264 |
**4.3.12 (17.02.2020)**
|
265 |
|
266 |
* Update: Added support for HTML in GDPR consent text
|
267 |
* Update: Now, contact will be deleted upon the deletion of WordPress user if WordPress sync is on.
|
268 |
* Update: Removed .SVG images from templates as it's blocked by Gmail
|
269 |
* Fix: Confirmation email did not go out if the subject is empty
|
|
|
270 |
* Fix: Email Sending options was not saved properly
|
271 |
|
272 |
**4.3.11 (12.02.2020)**
|