Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram - Version 1.10.31

Version Description

Revised Gallery Templates

Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram
Version 1.10.31
Comparing to
See all releases

Code changes from version 1.10.30.1 to 1.10.31

classes/class-icegram-campaign-admin.php CHANGED
@@ -232,7 +232,7 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
232
  }
233
 
234
  ?>
235
- <span class="target_rules_desc"> <em><?php echo 'Messages in this campaign will be shown when all these rules match...' ?></em></span>
236
  <div class="campaign_target_rules_panel">
237
  <?php do_action( 'icegram_campaign_target_rules', $post->ID, $campaign_target_rules ); ?>
238
  </div>
232
  }
233
 
234
  ?>
235
+ <span class="target_rules_desc"> <em><?php _e('Messages in this campaign will be shown when all these rules match...', 'icegram') ?></em></span>
236
  <div class="campaign_target_rules_panel">
237
  <?php do_action( 'icegram_campaign_target_rules', $post->ID, $campaign_target_rules ); ?>
238
  </div>
classes/feedback/assets/images/loading.gif ADDED
Binary file
classes/feedback/{class-ig-feedback-v-1-0-5.php → class-ig-feedback-v-1-0-7.php} RENAMED
@@ -1,33 +1,24 @@
1
  <?php
2
- /**
3
- * IG Feedback
4
- *
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
12
- * @author Icegram
13
- * @since 1.0.0
14
- */
15
-
16
- defined( 'ABSPATH' ) || exit;
17
-
18
- if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
19
  /**
20
- * Icegram Deactivation Survey.
21
  *
22
- * This prompts the user for more details when they deactivate the plugin.
 
23
  *
24
- * @version 1.0
25
- * @package Icegram
26
- * @author Malay Ladu
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.
@@ -388,23 +379,25 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
388
 
389
  ?>
390
 
391
- <form class="ig-general-feedback" id="ig-general-feedback">
392
- <p class="ig-feedback-data-name">
393
- <label class="ig-label">Name</label><br/>
394
- <input type="text" name="feedback_data[name]" id="ig-feedback-data-name" value="<?php echo $params['name']; ?>"/>
395
- </p>
396
- <p class="ig-feedback-data-email">
397
- <label class="ig-label"">Email</label><br/>
398
- <input type="email" name="feedback_data[email]" id="ig-feedback-data-email" value="<?php echo $params['email']; ?>"/>
399
- </p>
400
- <p class="ig-feedback-data-message">
401
- <label class="ig-label"">Feedback</label><br/>
402
- <textarea name="feedback_data[details]" id="ig-feedback-data-message"></textarea>
403
- </p>
404
- <p>
405
- <input type="checkbox" name="feedback_data[collect_system_info]" checked="checked" id="ig-feedback-data-consent"/><?php echo $params['consent_text']; ?>
406
- </p>
407
- </form>
 
 
408
 
409
  <?php
410
 
@@ -460,9 +453,11 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
460
  }
461
  }
462
 
463
- $('#wpwrap').append('<div class="ig-es-feedback-button">Feedback</div>');
464
 
465
- $('.ig-es-feedback-button').on('click', function () {
 
 
466
 
467
  Swal.mixin({
468
  footer: '<?php echo $this->footer; ?>',
@@ -488,12 +483,13 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
488
 
489
  },
490
  preConfirm: () => {
 
 
491
 
492
- var email = $('#ig-feedback-data-email').val();
493
- var name = $('#ig-feedback-data-name').val();
494
- var message = $('#ig-feedback-data-message').val();
495
- var consent = $('#ig-feedback-data-consent').attr('checked');
496
-
497
 
498
  if (email !== '' && !validateEmail(email)) {
499
  Swal.showValidationMessage('Please enter valid email');
@@ -589,9 +585,9 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
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();
@@ -603,6 +599,15 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
603
 
604
  };
605
 
 
 
 
 
 
 
 
 
 
606
 
607
  function validateEmail(email) {
608
  var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
@@ -628,7 +633,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
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
  });
@@ -640,8 +645,9 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
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);
@@ -651,6 +657,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
651
  // Survey submit.
652
  $form.submit(function (event) {
653
  event.preventDefault();
 
654
  if (!$form.find('input[type=radio]:checked').val()) {
655
  $form.find('.ig-deactivate-survey-footer').prepend('<span class="error"><?php echo esc_js( __( 'Please select an option', 'email-subscribers' ) ); ?></span>');
656
  return;
@@ -660,10 +667,10 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
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
  }
@@ -823,6 +830,11 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
823
  text-decoration: none;
824
  padding-top: 7px;
825
  }
 
 
 
 
 
826
  </style>
827
  <?php
828
  }
@@ -838,7 +850,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
838
  return;
839
  }
840
 
841
- $email = get_option('admin_email');
842
 
843
  $options = array(
844
  1 => array(
@@ -887,11 +899,13 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
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' ), '&amp;' ); ?></button>
 
895
  <a href="#" class="ig-deactivate-survey-deactivate"><?php echo sprintf( esc_html__( 'Skip %s Deactivate', 'email-subscribers' ), '&amp;' ); ?></a>
896
  </div>
897
  </form>
@@ -956,11 +970,15 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
956
  if ( false === strpos( $url, 'http://' ) && false === strpos( $url, 'https://' ) ) {
957
  $url = 'http://' . $url;
958
  }
 
959
  $url_parts = parse_url( $url );
960
  $host = ! empty( $url_parts['host'] ) ? $url_parts['host'] : false;
961
- if( $host === '192.168.0.112' ){
 
 
962
  return false;
963
  }
 
964
  if ( ! empty( $url ) && ! empty( $host ) ) {
965
  if ( false !== ip2long( $host ) ) {
966
  if ( ! filter_var( $host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) ) {
@@ -1103,6 +1121,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_0_5' ) ) {
1103
 
1104
  $additional_info = array();
1105
  $additional_info = apply_filters( $plugin_abbr . '_additional_feedback_meta_info', $additional_info, $system_info ); // Get Additional meta information
 
1106
  if ( is_array( $additional_info ) && count( $additional_info ) > 0 ) {
1107
  $meta_info = array_merge( $meta_info, $additional_info );
1108
  }
1
  <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ if ( ! class_exists( 'IG_Feedback_V_1_0_7' ) ) {
 
 
 
 
 
 
 
 
 
 
 
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_0_7
15
+ * @package feedback
16
+ * @copyright Copyright (c) 2019, Icegram
17
+ * @license https://opensource.org/licenses/gpl-license GNU Public License
18
+ * @author Icegram
19
+ * @since 1.0.0
20
  */
21
+ class IG_Feedback_V_1_0_7 {
22
 
23
  /**
24
  * The API URL where we will send feedback data.
379
 
380
  ?>
381
 
382
+ <div class="ig-general-feedback" id="ig-general-feedback-<?php echo $this->plugin; ?>">
383
+ <form class="ig-general-feedback" id="ig-general-feedback">
384
+ <p class="ig-feedback-data-name">
385
+ <label class="ig-label">Name</label><br/>
386
+ <input type="text" name="feedback_data[name]" id="ig-feedback-data-name" value="<?php echo $params['name']; ?>"/>
387
+ </p>
388
+ <p class="ig-feedback-data-email">
389
+ <label class="ig-label"">Email</label><br/>
390
+ <input type="email" name="feedback_data[email]" id="ig-feedback-data-email" value="<?php echo $params['email']; ?>"/>
391
+ </p>
392
+ <p class="ig-feedback-data-message">
393
+ <label class="ig-label"">Feedback</label><br/>
394
+ <textarea name="feedback_data[details]" id="ig-feedback-data-message"></textarea>
395
+ </p>
396
+ <p>
397
+ <input type="checkbox" name="feedback_data[collect_system_info]" checked="checked" id="ig-feedback-data-consent"/><?php echo $params['consent_text']; ?>
398
+ </p>
399
+ </form>
400
+ </div>
401
 
402
  <?php
403
 
453
  }
454
  }
455
 
456
+ var feedbackButtonID = 'ig-feedback-button-<?php echo $this->plugin; ?>';
457
 
458
+ $('#wpwrap').append('<div class="ig-es-feedback-button" id="' + feedbackButtonID + '">Feedback</div>');
459
+
460
+ $('#' + feedbackButtonID).on('click', function () {
461
 
462
  Swal.mixin({
463
  footer: '<?php echo $this->footer; ?>',
483
 
484
  },
485
  preConfirm: () => {
486
+ var $overlay = $('#ig-general-feedback-<?php echo $this->plugin; ?>');
487
+ var $form = $overlay.find('form');
488
 
489
+ var email = $form.find('#ig-feedback-data-email').val();
490
+ var name = $form.find('#ig-feedback-data-name').val();
491
+ var message = $form.find('#ig-feedback-data-message').val();
492
+ var consent = $form.find('#ig-feedback-data-consent').attr('checked');
 
493
 
494
  if (email !== '' && !validateEmail(email)) {
495
  Swal.showValidationMessage('Please enter valid email');
585
  formOpen = false,
586
  consent = $('#ig-deactivate-survey-help-consent-<?php echo $this->plugin; ?>');
587
 
588
+ function togglePersonalInfoFields(show) {
589
 
590
+ if (show) {
591
  $form.find('#ig-deactivate-survey-info-name').show();
592
  $form.find('#ig-deactivate-survey-info-email-address').show();
593
  $form.find('#ig-deactivate-survey-consent-additional-data').show();
599
 
600
  };
601
 
602
+ function loader($show) {
603
+
604
+ if ($show) {
605
+ $form.find('#ig-deactivate-survey-loader').show();
606
+ } else {
607
+ $form.find('#ig-deactivate-survey-loader').hide();
608
+ }
609
+
610
+ }
611
 
612
  function validateEmail(email) {
613
  var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
633
  $form.find('.ig-deactivate-survey-option').removeClass('selected');
634
  $(this).closest('.ig-deactivate-survey-option').addClass('selected').find('input[type=text]').show();
635
 
636
+ if (consent.attr('checked') === 'checked') {
637
  togglePersonalInfoFields(true);
638
  }
639
  });
645
 
646
  // Help Consent
647
  togglePersonalInfoFields(false);
648
+ loader(false);
649
  consent.on('click', function () {
650
+ if (consent.attr('checked') === 'checked') {
651
  togglePersonalInfoFields(true);
652
  } else {
653
  togglePersonalInfoFields(false);
657
  // Survey submit.
658
  $form.submit(function (event) {
659
  event.preventDefault();
660
+ loader(true);
661
  if (!$form.find('input[type=radio]:checked').val()) {
662
  $form.find('.ig-deactivate-survey-footer').prepend('<span class="error"><?php echo esc_js( __( 'Please select an option', 'email-subscribers' ) ); ?></span>');
663
  return;
667
  var name = '';
668
  var email = '';
669
 
670
+ if (consent.attr('checked') === 'checked') {
671
+ name = $form.find('#ig-deactivate-survey-info-name').val();
672
+ email = $form.find('#ig-deactivate-survey-info-email-address').val();
673
+ if (email === '' || !validateEmail(email)) {
674
  alert('Please enter valid email');
675
  return;
676
  }
830
  text-decoration: none;
831
  padding-top: 7px;
832
  }
833
+
834
+ .ig-deactivate-survey-loader {
835
+ vertical-align: middle;
836
+ padding: 10px;
837
+ }
838
  </style>
839
  <?php
840
  }
850
  return;
851
  }
852
 
853
+ $email = get_option( 'admin_email' );
854
 
855
  $options = array(
856
  1 => array(
899
  <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>
900
  </div>
901
  <div class="ig-deactivate-survey-info-data">
902
+
903
+ <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=""/>
904
+ <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; ?>"/>
905
  </div>
906
  <div class="ig-deactivate-survey-footer">
907
  <button type="submit" class="ig-deactivate-survey-submit button button-primary button-large"><?php echo sprintf( esc_html__( 'Submit %s Deactivate', 'email-subscribers' ), '&amp;' ); ?></button>
908
+ <img class="ig-deactivate-survey-loader" id="ig-deactivate-survey-loader" src="<?php echo plugin_dir_url( __FILE__ ); ?>/assets/images/loading.gif"/>
909
  <a href="#" class="ig-deactivate-survey-deactivate"><?php echo sprintf( esc_html__( 'Skip %s Deactivate', 'email-subscribers' ), '&amp;' ); ?></a>
910
  </div>
911
  </form>
970
  if ( false === strpos( $url, 'http://' ) && false === strpos( $url, 'https://' ) ) {
971
  $url = 'http://' . $url;
972
  }
973
+
974
  $url_parts = parse_url( $url );
975
  $host = ! empty( $url_parts['host'] ) ? $url_parts['host'] : false;
976
+
977
+ // Discard our development environment
978
+ if ( '192.168.0.112' === $host ) {
979
  return false;
980
  }
981
+
982
  if ( ! empty( $url ) && ! empty( $host ) ) {
983
  if ( false !== ip2long( $host ) ) {
984
  if ( ! filter_var( $host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) ) {
1121
 
1122
  $additional_info = array();
1123
  $additional_info = apply_filters( $plugin_abbr . '_additional_feedback_meta_info', $additional_info, $system_info ); // Get Additional meta information
1124
+
1125
  if ( is_array( $additional_info ) && count( $additional_info ) > 0 ) {
1126
  $meta_info = array_merge( $meta_info, $additional_info );
1127
  }
classes/feedback/{class-ig-tracker-v-1-0-5.php → class-ig-tracker-v-1-0-7.php} RENAMED
@@ -4,17 +4,23 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
- if ( ! class_exists( 'IG_Tracker_V_1_0_5' ) ) {
8
 
9
  /**
10
- * Icegram tracker.
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
- * @since 1.0.0
 
 
 
 
 
 
16
  */
17
- class IG_Tracker_V_1_0_5 {
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_7' ) ) {
8
 
9
  /**
10
+ * Class IG_Tracker_V_1_0_7
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_0_7
16
+ * @package feedback
17
+ * @copyright Copyright (c) 2019, Icegram
18
+ * @license https://opensource.org/licenses/gpl-license GNU Public License
19
+ * @author Icegram
20
+ * @since 1.0.0
21
+ *
22
  */
23
+ class IG_Tracker_V_1_0_7 {
24
 
25
  /**
26
  * Get Active, Inactive or all plugins info
gallery.php CHANGED
@@ -294,7 +294,7 @@
294
  <div class="wp-clearfix">
295
  <!-- Sidebar - quick filtering and searching -->
296
  <div class="description" style="padding-bottom:2em;">
297
- <h2 style="margin-bottom:0.5em;"><?php esc_html_e( 'Icegram design templates' ); ?></h2>
298
  <div><?php _e('Here\'s a collection of some ','icegram') ?><strong><?php _e('beautiful, powerful ready-to-use Icegram Campaigns.','icegram') ?></strong></div>
299
  <div><?php _e('No coding or special skills required. Simply click to ' ,'icegram')?><strong><?php _e(' Use This ','icegram')?></strong> <?php _e('and the campaign will automatically appear in your Icegram dashboard.','icegram')?></div>
300
  </div>
@@ -308,13 +308,13 @@
308
  foreach ($cat_list as $category) {
309
  ?>
310
  <div class="category <?php echo $category['slug']?>">
311
- <h2><?php echo $category['name']?></h2>
312
  <ul>
313
  <?php
314
  if(!empty($category['list'])){
315
  foreach ($category['list'] as $sub_cat) {
316
  ?>
317
- <li class="category-type" category="<?php echo $category['slug']?>" <?php echo $category['slug']?>="<?php echo $sub_cat['term_id']?>" ><?php echo $sub_cat['name']?></li>
318
  <?php
319
  }
320
  }
@@ -377,7 +377,7 @@
377
  <a href="#" class="previous-theme"><span class="screen-reader-text"><?php _ex( 'Previous', 'Button label for a theme' ); ?></span></a>
378
  <a href="#" class="next-theme"><span class="screen-reader-text"><?php _ex( 'Next', 'Button label for a theme' ); ?></span></a>
379
  <a href="?action=fetch_messages&campaign_id={{data.campaign_id}}&gallery_item={{data.slug}}" class="btn purple theme-install" style="display:none"><?php _e( 'Use This', 'icegram' ); ?></a>
380
- <a href="https://www.icegram.com/pricing/" target="_blank" class="ig-get-pro btn green" style="display:none;">
381
  <# if(data.plan === '3') { #>
382
  <span><?php _e("Get The Max Plan", 'icegram') ?></span>
383
  <# } else if(data.plan === '2') { #>
@@ -389,7 +389,7 @@
389
  <div class="install-theme-info">
390
  <h3 class="theme-name">{{ data.title.rendered }}</h3>
391
  <span class="theme-by">
392
- <a href="https://www.icegram.com/"><?php printf( __( '- By %s' ), 'Icegram' ); ?></a>
393
  </span>
394
 
395
  <img class="theme-screenshot" src="{{ data.image.guid }}" alt="">
@@ -413,7 +413,7 @@
413
  <div class="theme-info" style="padding:0.2em;height:auto;">
414
  <p style="border-top: 1px solid #f3f3f3;padding: 1em 0;margin:0.5em 0;"><?php _e( 'Would you like to personalize this template to fit your brand?', 'icegram' );?></p>
415
  <div>
416
- <a href="https://www.icegram.com/documentation/customize-icegrams-gallery-templates/?utm_source=ig_gallery&utm_medium=ig_inapp_promo&utm_campaign=ig_custom_css" target="_blank" class="btn green" style="margin-top:0.4em;"><?php _e( 'Personalize It Now' , 'icegram'); ?></a>
417
  </div>
418
  </div>
419
  </div>
294
  <div class="wp-clearfix">
295
  <!-- Sidebar - quick filtering and searching -->
296
  <div class="description" style="padding-bottom:2em;">
297
+ <h2 style="margin-bottom:0.5em;"><?php esc_html_e( 'Icegram design templates', 'icegram' ); ?></h2>
298
  <div><?php _e('Here\'s a collection of some ','icegram') ?><strong><?php _e('beautiful, powerful ready-to-use Icegram Campaigns.','icegram') ?></strong></div>
299
  <div><?php _e('No coding or special skills required. Simply click to ' ,'icegram')?><strong><?php _e(' Use This ','icegram')?></strong> <?php _e('and the campaign will automatically appear in your Icegram dashboard.','icegram')?></div>
300
  </div>
308
  foreach ($cat_list as $category) {
309
  ?>
310
  <div class="category <?php echo $category['slug']?>">
311
+ <h2><?php _e($category['name'], 'icegram')?></h2>
312
  <ul>
313
  <?php
314
  if(!empty($category['list'])){
315
  foreach ($category['list'] as $sub_cat) {
316
  ?>
317
+ <li class="category-type" category="<?php echo $category['slug']?>" <?php echo $category['slug']?>="<?php echo $sub_cat['term_id']?>" ><?php _e($sub_cat['name'], 'icegram')?></li>
318
  <?php
319
  }
320
  }
377
  <a href="#" class="previous-theme"><span class="screen-reader-text"><?php _ex( 'Previous', 'Button label for a theme' ); ?></span></a>
378
  <a href="#" class="next-theme"><span class="screen-reader-text"><?php _ex( 'Next', 'Button label for a theme' ); ?></span></a>
379
  <a href="?action=fetch_messages&campaign_id={{data.campaign_id}}&gallery_item={{data.slug}}" class="btn purple theme-install" style="display:none"><?php _e( 'Use This', 'icegram' ); ?></a>
380
+ <a href="https://www.icegram.com/pricing/?utm_source=ig_inapp&utm_medium=ig_gallery&utm_campaign=get_pro" target="_blank" class="ig-get-pro btn green" style="display:none;">
381
  <# if(data.plan === '3') { #>
382
  <span><?php _e("Get The Max Plan", 'icegram') ?></span>
383
  <# } else if(data.plan === '2') { #>
389
  <div class="install-theme-info">
390
  <h3 class="theme-name">{{ data.title.rendered }}</h3>
391
  <span class="theme-by">
392
+ <a href="https://www.icegram.com/" target="_blank"><?php printf( __( '- By %s' ), 'Icegram' ); ?></a>
393
  </span>
394
 
395
  <img class="theme-screenshot" src="{{ data.image.guid }}" alt="">
413
  <div class="theme-info" style="padding:0.2em;height:auto;">
414
  <p style="border-top: 1px solid #f3f3f3;padding: 1em 0;margin:0.5em 0;"><?php _e( 'Would you like to personalize this template to fit your brand?', 'icegram' );?></p>
415
  <div>
416
+ <a href="https://www.icegram.com/documentation/customize-icegrams-gallery-templates/?utm_source=ig_gallery&utm_medium=ig_inapp_promo&utm_campaign=ig_custom_css" target="_blank" class="" style="margin-top:0.4em;"><?php _e( 'Personalize It Now' , 'icegram'); ?></a>
417
  </div>
418
  </div>
419
  </div>
icegram.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Icegram - Popups, Optins, CTAs & lot more...
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
- * Version: 1.10.30.1
7
  * Author: icegram
8
  * Author URI: https://www.icegram.com/
9
  * Copyright (c) 2014-19 Icegram
@@ -34,18 +34,18 @@ class Icegram {
34
 
35
  function __construct() {
36
  global $ig_feedback, $ig_tracker;
37
- $feedback_version = '1.0.5';
 
38
 
39
- $this->version = "1.10.30.1";
40
  $this->shortcode_instances = array();
41
  $this->mode = 'local';
42
  $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
43
  $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
44
- $this->include_classes();
45
  $this->cache_compatibility = get_option('icegram_cache_compatibility', 'no');
46
 
47
  if( is_admin() ){
48
- $ig_tracker = 'IG_Tracker_V_' . str_replace('.', '_', $feedback_version);
49
  $ig_feedback_class = 'IG_Feedback_V_' . str_replace('.', '_', $feedback_version);
50
  $ig_feedback = new $ig_feedback_class( 'Icegram', 'icegram', 'ig', 'igfree.', false );
51
  $ig_feedback->render_deactivate_feedback();
@@ -166,13 +166,13 @@ class Icegram {
166
  $total_campaigns_draft = $total_campaigns->draft;
167
  $ig_star_review = get_option('ig_star_review_icegram');
168
  $ig_rating_text = array();
169
- $ig_rating_text['star_review'] = __( 'If you like <strong>Icegram</strong>, please consider leaving us a <a target="_blank" href="https://wordpress.org/support/plugin/icegram/reviews/?filter=5#new-post">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating. A huge thank you from the team in advance!', true );
170
- $ig_rating_text['help_review'] = __( 'If you like <strong>Icegram</strong>, tell us more about your experience and leave us <a target="_blank" href="https://wordpress.org/support/plugin/icegram/reviews/?filter=5#new-post">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating. A huge thank you from the team in advance!', true );
171
 
172
  if (($total_campaigns_draft > 1 || $total_campaigns_publish >= 1) && $ig_star_review !== 'no' ) {
173
  $key = array_rand($ig_rating_text);
174
  $ig_rating_text = $ig_rating_text[$key];
175
- echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">' . $ig_rating_text . ' <a style="float:right" class="ig-admin-btn ig-admin-btn-secondary" href="?ig_dismiss_admin_notice=1&option_name=ig_star_review">' . __( 'No, I don\'t like it', true ) . '</a></p></div>';
176
  }
177
  //star review end
178
  //bfcm 2018 :start
@@ -521,7 +521,8 @@ class Icegram {
521
  public function check_for_gallery_items( $force_update = false ) {
522
  global $icegram;
523
  if ( $force_update === true || false === ( $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' ) ) ) {
524
- $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?per_page=100&page=1';
 
525
  $ig_gallery_json = wp_remote_get( $url_for_gallery_item );
526
  if ( ! is_wp_error( $ig_gallery_json ) ) {
527
  $ig_gallery_json = ( wp_remote_retrieve_body( $ig_gallery_json ) );
@@ -677,17 +678,17 @@ class Icegram {
677
  'canInstall' => ( ! is_multisite() && ( 'install_themes' ) ),
678
  'isInstall' => true,
679
  'installURI' => ( ! is_multisite() && ( 'install_themes' ) ) ? admin_url( 'theme-install.php' ) : null,
680
- 'confirmDelete' => __( "Are you sure you want to delete this theme?\n\nClick 'Cancel' to go back, 'OK' to confirm the delete." ),
681
  'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ),
682
  'ig_plan' => $ig_plan,
683
  'cat_list' => $cat_list
684
  ),
685
  'l10n' => array(
686
- 'addNew' => __( 'Add New Gallery Templates' ),
687
- 'search' => __( 'Search Gallery Templates' ),
688
- 'searchPlaceholder' => __( 'Search Design Templates' ), // placeholder (no ellipsis)
689
- 'themesFound' => __( 'Number of Gallery Templates found: %d' ),
690
- 'noThemesFound' => __( 'No Gallery Templates found. Try a different search.' ),
691
  ),
692
  'installedThemes' => $imported_gallery_items
693
  ) );
@@ -1249,8 +1250,8 @@ class Icegram {
1249
  }
1250
 
1251
  // Include all classes required for Icegram plugin
1252
- function include_classes() {
1253
- $feedback_version = '1.0.5';
1254
  $feedback_version_for_file = str_replace('.', '-', $feedback_version);
1255
  $t = 'classes/feedback/class-ig-tracker-v-' . $feedback_version_for_file . '.php';
1256
  $f = 'classes/feedback/class-ig-feedback-v-' . $feedback_version_for_file . '.php';
@@ -1262,7 +1263,7 @@ class Icegram {
1262
  foreach ( $classes as $file ) {
1263
  // Files with 'admin' in their name are included only for admin section
1264
  if ( is_file( $file ) && ( (strpos($file, '-admin') >= 0 && is_admin()) ) ){
1265
- $all_active_plugins = IG_Tracker_V_1_0_5::get_plugins();
1266
  if( (strpos($file, 'ig-upsale-admin.php') !== false ) && in_array('icegram-engage/icegram-engage.php', $all_active_plugins)){
1267
  continue;
1268
  }
3
  * Plugin Name: Icegram - Popups, Optins, CTAs & lot more...
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
+ * Version: 1.10.31
7
  * Author: icegram
8
  * Author URI: https://www.icegram.com/
9
  * Copyright (c) 2014-19 Icegram
34
 
35
  function __construct() {
36
  global $ig_feedback, $ig_tracker;
37
+ $feedback_version = '1.0.7';
38
+ $ig_tracker = 'IG_Tracker_V_' . str_replace('.', '_', $feedback_version);
39
 
40
+ $this->version = "1.10.31";
41
  $this->shortcode_instances = array();
42
  $this->mode = 'local';
43
  $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
44
  $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
45
+ $this->include_classes( $feedback_version );
46
  $this->cache_compatibility = get_option('icegram_cache_compatibility', 'no');
47
 
48
  if( is_admin() ){
 
49
  $ig_feedback_class = 'IG_Feedback_V_' . str_replace('.', '_', $feedback_version);
50
  $ig_feedback = new $ig_feedback_class( 'Icegram', 'icegram', 'ig', 'igfree.', false );
51
  $ig_feedback->render_deactivate_feedback();
166
  $total_campaigns_draft = $total_campaigns->draft;
167
  $ig_star_review = get_option('ig_star_review_icegram');
168
  $ig_rating_text = array();
169
+ $ig_rating_text['star_review'] = __( 'If you like <strong>Icegram</strong>, please consider leaving us a <a target="_blank" href="https://wordpress.org/support/plugin/icegram/reviews/?filter=5#new-post">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating. A huge thank you from the team in advance!', 'icegram' );
170
+ $ig_rating_text['help_review'] = __( 'If you like <strong>Icegram</strong>, tell us more about your experience and leave us <a target="_blank" href="https://wordpress.org/support/plugin/icegram/reviews/?filter=5#new-post">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating. A huge thank you from the team in advance!', 'icegram' );
171
 
172
  if (($total_campaigns_draft > 1 || $total_campaigns_publish >= 1) && $ig_star_review !== 'no' ) {
173
  $key = array_rand($ig_rating_text);
174
  $ig_rating_text = $ig_rating_text[$key];
175
+ echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">' . $ig_rating_text . ' <a style="float:right" class="ig-admin-btn ig-admin-btn-secondary" href="?ig_dismiss_admin_notice=1&option_name=ig_star_review">' . __( 'No, I don\'t like it', 'icegram' ) . '</a></p></div>';
176
  }
177
  //star review end
178
  //bfcm 2018 :start
521
  public function check_for_gallery_items( $force_update = false ) {
522
  global $icegram;
523
  if ( $force_update === true || false === ( $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' ) ) ) {
524
+ // $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?per_page=200&page=1';
525
+ $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?filter[posts_per_page]=200';
526
  $ig_gallery_json = wp_remote_get( $url_for_gallery_item );
527
  if ( ! is_wp_error( $ig_gallery_json ) ) {
528
  $ig_gallery_json = ( wp_remote_retrieve_body( $ig_gallery_json ) );
678
  'canInstall' => ( ! is_multisite() && ( 'install_themes' ) ),
679
  'isInstall' => true,
680
  'installURI' => ( ! is_multisite() && ( 'install_themes' ) ) ? admin_url( 'theme-install.php' ) : null,
681
+ 'confirmDelete' => __( "Are you sure you want to delete this theme?\n\nClick 'Cancel' to go back, 'OK' to confirm the delete.", 'icegram' ),
682
  'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ),
683
  'ig_plan' => $ig_plan,
684
  'cat_list' => $cat_list
685
  ),
686
  'l10n' => array(
687
+ 'addNew' => __( 'Add New Gallery Templates', 'icegram'),
688
+ 'search' => __( 'Search Gallery Templates', 'icegram'),
689
+ 'searchPlaceholder' => __( 'Search Design Templates', 'icegram'), // placeholder (no ellipsis)
690
+ 'themesFound' => __( 'Number of Gallery Templates found: %d', 'icegram'),
691
+ 'noThemesFound' => __( 'No Gallery Templates found. Try a different search.', 'icegram'),
692
  ),
693
  'installedThemes' => $imported_gallery_items
694
  ) );
1250
  }
1251
 
1252
  // Include all classes required for Icegram plugin
1253
+ function include_classes( $feedback_version ) {
1254
+ global $ig_tracker;
1255
  $feedback_version_for_file = str_replace('.', '-', $feedback_version);
1256
  $t = 'classes/feedback/class-ig-tracker-v-' . $feedback_version_for_file . '.php';
1257
  $f = 'classes/feedback/class-ig-feedback-v-' . $feedback_version_for_file . '.php';
1263
  foreach ( $classes as $file ) {
1264
  // Files with 'admin' in their name are included only for admin section
1265
  if ( is_file( $file ) && ( (strpos($file, '-admin') >= 0 && is_admin()) ) ){
1266
+ $all_active_plugins = $ig_tracker::get_plugins();
1267
  if( (strpos($file, 'ig-upsale-admin.php') !== false ) && in_array('icegram-engage/icegram-engage.php', $all_active_plugins)){
1268
  continue;
1269
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.icegram.com/
4
  Tags: popup, wordpress popups,Exit-popup, optin-popup, popups, hellobar, optin, lead capture, form, marketing, notification, messenger, targeting, monster, ninja ,wordpress lead generation, wordpress lightbox optin, wordpress lightbox optin form, wordpress lightbox optins, wordpress mobile optin forms, wordpress mobile popup, wordpress mobile popups, wordpress optin form, wordpress overlay popup, wordpress popup, wordpress popup form, wordpress popup plugin, wordpress popup solution, wordpress popups , popups, subscribe, wp popups, optin bars, action grabber, promotion, popup message, leads, lists, builder, action bar, floating bar, footer bar, hellobar alternative, pop over, Popup plugin, aweber, campaign monitor, constant contact, email list, exit-intent, onclick popup, analytics, Hubspot, popup ads, pop-up, Mailing list pop-up, re-targeting, Animation,Popups with Animation ,Responsive Popup, split testing, AB testing
5
  Requires at least: 3.9
6
  Tested up to: 5.2.2
7
- Stable tag: 1.10.30.1
8
  License: GPLv3
9
 
10
  The best WP popup plugin that let's you create a popup within seconds. Customize popup, target popups to show offers, email signups, social buttons etc and instantly increase conversions on your website.
@@ -217,6 +217,9 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
217
  5. Target your Icegram message using these display rules
218
 
219
  == Upgrade Notice ==
 
 
 
220
  = 1.10.30.1 =
221
  Bug Fix release
222
 
@@ -468,6 +471,9 @@ Initial Release
468
 
469
 
470
  == Changelog ==
 
 
 
471
  = 1.10.30.1 =
472
  *Fix: Fatal error 'ES_DB_Forms' class not found.
473
 
4
  Tags: popup, wordpress popups,Exit-popup, optin-popup, popups, hellobar, optin, lead capture, form, marketing, notification, messenger, targeting, monster, ninja ,wordpress lead generation, wordpress lightbox optin, wordpress lightbox optin form, wordpress lightbox optins, wordpress mobile optin forms, wordpress mobile popup, wordpress mobile popups, wordpress optin form, wordpress overlay popup, wordpress popup, wordpress popup form, wordpress popup plugin, wordpress popup solution, wordpress popups , popups, subscribe, wp popups, optin bars, action grabber, promotion, popup message, leads, lists, builder, action bar, floating bar, footer bar, hellobar alternative, pop over, Popup plugin, aweber, campaign monitor, constant contact, email list, exit-intent, onclick popup, analytics, Hubspot, popup ads, pop-up, Mailing list pop-up, re-targeting, Animation,Popups with Animation ,Responsive Popup, split testing, AB testing
5
  Requires at least: 3.9
6
  Tested up to: 5.2.2
7
+ Stable tag: 1.10.31
8
  License: GPLv3
9
 
10
  The best WP popup plugin that let's you create a popup within seconds. Customize popup, target popups to show offers, email signups, social buttons etc and instantly increase conversions on your website.
217
  5. Target your Icegram message using these display rules
218
 
219
  == Upgrade Notice ==
220
+ = 1.10.31 =
221
+ Revised Gallery Templates
222
+
223
  = 1.10.30.1 =
224
  Bug Fix release
225
 
471
 
472
 
473
  == Changelog ==
474
+ = 1.10.31 =
475
+ * Enhancement: Revised Gallery templates
476
+
477
  = 1.10.30.1 =
478
  *Fix: Fatal error 'ES_DB_Forms' class not found.
479