Version Description
1.10.39
- Fix: Campaigns were not showing if display rules are set to role specific
- Update: WordPress 5.4 compatibility test
1.10.38
- UI enhancements
1.10.37
- Bugfix release
1.10.36
- Added Christmas Gallery Items
1.10.35
- Security Fixes
1.10.34
- Added Black Friday Cyber Monday Gallery Items
1.10.33
- Revised Gallery Templates for Halloween
1.10.32
- Added new featured gallery items
1.10.31
- Revised Gallery Templates
10.30.1
- Bug Fix release
1.10.28.2
- Bug Fix release
1.10.28.1
- Bug Fix release
1.10.28
- Revised Gallery Templates
1.10.27
- Bug Fix release
1.10.26
- Bug Fix release
1.10.25
- Revised Gallery Templates for Black Friday and Cyber Monday
1.10.24
- Revised Gallery Templates for Halloween
1.10.23
- Revised Gallery Templates
1.10.22
- Fixed popup blocker issue while previewing campaign
1.10.21
- Compatibility with latest Email Subscribers
1.10.20
- Compatibility with latest GDPR
1.10.19
- Compatibility with Rainmaker
1.10.18
- Improved the UI/UX of the Icegram Gallery
1.10.17
- Revised Gallery Templates
1.10.16
- Fixed "The plugin does not have a valid header" issue
1.10.15
- Added Christmas Gallery templates
1.10.14
- Compatibility with WordPress 4.9
1.10.13
- Added Black Friday and Cyber Monday Gallery templates
1.10.12
- Compatibility with MailPoet 3
1.10.11
- Added Halloween Gallery templates
1.10.10
- Revised Gallery Templates
1.10.9.1
- Bug Fix release
1.10.9
- Revised Gallery Templates
1.10.8
- compatibility with Contact Form 7(v4.8)
1.10.7
- Added more templates in Gallery
1.10.6
- Search bar, filters added to Icegram's Gallery
1.10.5
- Improvements in Call To Actions
1.10.4
- Directly choose Gallery Template while creating a New Campaign
1.10.3
- Email Subscribers compatibility
1.10.2
- Update mobile Detect library
1.10.1
- Bug Fix release
1.10
- Merge all addons in one
1.9.24
- Small improvements in responsiveness of Popups and Action bars
1.9.23
- Bug Fix release
1.9.22
- No Google penalty for mobile popups, an automatic solution
1.9.21
- Revamp admin UI
1.9.20.1
- Bug Fix release
1.9.20
- Rainmaker compatibility
1.9.19
- Secured Icegram from XSS vulnerability
1.9.18
- Compatibility with Icegram's CTA add-on and Rainmaker
1.9.17
- Performance enhancements
1.9.16
- Custom forms imported in Rainmaker
1.9.15
- Added the Gallery of ready to use Icegram Campaigns
1.9.14
- Added quick action for campaign preview.
1.9.13
- revamp of popup themes - Airmail, Convert, Inspire, Persuade.
1.9.12
- Add new custom CSS and JS code block.
1.9.11.1
- Remove warning in the admin panel.
1.9.11
- Compatibility with Gravity Forms.
1.9.10
- Fix for schedule campaign option
1.9.9
- Compatibility with Contact Form 7.
1.9.8.1
- Added sprite image for close buttons and other fixes.
1.9.8
- Enhanced the top Action bar position
1.9.7.1
- Incorrect plugin name
1.9.7
- Messengers are now responsive. Many small improvements.
1.9.6
- Many small changes and other fixes.
1.9.5
- Added animations for few more message types. Action bars are now responsive.
1.9.4
- Bugfix release for forms.
1.9.3
- Bugfix release for "Target link" not working.
1.9.2
- Shortcode problems solved. New anti-spam mechanism for forms.
1.9.1
- Few improvements in form functionality.
1.9
- Form embed functionality improvements, Added forms styles.
1.8.10
- Fixes for minified js and CSS. Changes for WP themes compatibility.
1.8.9
- Many small changes. Plus major changes for caching compatibility.
1.8.8
- Improved shortcode handling, WishList member compatibility, and other fixes.
1.8.7
- Popups now support custom background and text colors. And a handful of fixes!
1.8.6
- Fix for "white screen" errors, updated device detection, more readable call to action button colors
1.8.5
- Bugfix release for device targeting, preview before publishing not working.
1.8.4
- Popups are now responsive! Plus Visual Composer compatibility and other fixes.
1.8.3
- Campaign and message duplicate feature added. Plus some other improvements.
1.8.2
- Bugfix release for preview not working.
1.8.1
- Recommended upgrade. Many improvements.
1.8
- Target campaigns to any page with wildcard URL support in "Where" conditions and CTA Click based retargeting.
1.7.1
- Dismiss admin notice provision, retargeting compatibility with caches and bug fixes.
1.7
- Improvements in styling, form embeds and retargeting.
1.6
- Improvements in optin form embedding, bug fixes and more. Required update.
1.5
- Easy opt-in / subscription form parser and many other enhancements. Required update.
1.4
- Many small improvements. Support for analytics added. WordPress 4.0 compatible.
1.3
- 7 premium addons available now. Plus a lot of improvements. Recommended upgrade.
1.2
- Lots of enhancements... WPML support, pluggable architecture, many internal changes. Do upgrade.
1.1.1
- Compatibility with W3TC and Localization
1.1
- First release on WordPress.org
1.0
- Initial Release
Download this release
Release Info
Developer | Icegram |
Plugin | Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram |
Version | 1.10.39 |
Comparing to | |
See all releases |
Code changes from version 1.10.38 to 1.10.39
- assets/images/bfcm-2019.png +0 -0
- assets/images/bfcm-last-2019.png +0 -0
- assets/images/covid-19.png +0 -0
- classes/class-icegram-campaign.php +101 -84
- classes/feedback/class-ig-feedback.php +18 -16
- classes/feedback/class-ig-tracker.php +58 -4
- icegram.php +50 -16
- ig-offer.php +16 -20
- readme.txt +8 -3
assets/images/bfcm-2019.png
DELETED
Binary file
|
assets/images/bfcm-last-2019.png
DELETED
Binary file
|
assets/images/covid-19.png
ADDED
Binary file
|
classes/class-icegram-campaign.php
CHANGED
@@ -1,9 +1,11 @@
|
|
1 |
<?php
|
2 |
-
if ( !defined( 'ABSPATH' ) )
|
|
|
|
|
3 |
/**
|
4 |
-
* Icegram Campaign class
|
5 |
-
*/
|
6 |
-
if ( !class_exists( 'Icegram_Campaign' ) ) {
|
7 |
class Icegram_Campaign {
|
8 |
|
9 |
var $_post;
|
@@ -14,43 +16,49 @@ if ( !class_exists( 'Icegram_Campaign' ) ) {
|
|
14 |
|
15 |
function __construct( $id = '' ) {
|
16 |
|
17 |
-
if ( !empty( $id ) ) {
|
18 |
|
19 |
$this->_post = get_post( $id );
|
20 |
-
if(!is_object($this->_post))
|
21 |
-
|
|
|
|
|
22 |
//icegram_campaign_meta_key
|
23 |
-
$meta_key
|
24 |
-
$this->messages
|
25 |
-
$this->rules
|
26 |
-
$this->rules_summary['where']
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$this->rules_summary['when']
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
$this->rules_summary['device'] = array(
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
$this->rules_summary['users']
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
$this->rules_summary['retargeting']
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
54 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_user_roles' ), 10, 3 );
|
55 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_device' ), 10, 3 );
|
56 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_time' ), 10, 3 );
|
@@ -59,120 +67,129 @@ if ( !class_exists( 'Icegram_Campaign' ) ) {
|
|
59 |
}
|
60 |
|
61 |
function get_message_meta_by_id( $message_id ) {
|
62 |
-
foreach ($this->messages as $value) {
|
63 |
-
if ($value['id'] == $message_id) {
|
64 |
return $value;
|
65 |
}
|
66 |
}
|
67 |
}
|
68 |
|
69 |
function get_rule_value( $rule_type ) {
|
70 |
-
return (isset($this->rules_summary[$rule_type])) ? $this->rules_summary[$rule_type] : '';
|
71 |
}
|
72 |
|
73 |
function is_valid( $options = array() ) {
|
74 |
-
if( !empty( $this->_post->ID ) && $this->_post->post_status === 'publish') {
|
75 |
return apply_filters( 'icegram_campaign_validation', true, $this, $options );
|
76 |
}
|
|
|
77 |
return false;
|
78 |
}
|
79 |
|
80 |
function _is_valid_user_roles( $campaign_valid, $campaign, $options ) {
|
81 |
-
if(
|
82 |
return $campaign_valid;
|
83 |
}
|
84 |
-
|
85 |
-
if(in_array( 'not_logged_in', $campaign->rules_summary['users'], true ) && !is_user_logged_in() ){
|
86 |
-
|
87 |
-
}
|
88 |
-
elseif ( in_array( 'all', $campaign->rules_summary['users'], true ) ) {
|
89 |
return true;
|
90 |
-
} elseif ( is_user_logged_in() && !in_array( 'none', $campaign->rules_summary['users'], true ) ) {
|
91 |
$current_user = wp_get_current_user();
|
92 |
-
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
94 |
}
|
95 |
}
|
|
|
96 |
return false;
|
97 |
}
|
98 |
-
|
99 |
function _is_valid_device( $campaign_valid, $campaign, $options ) {
|
100 |
-
if(
|
101 |
return $campaign_valid;
|
102 |
}
|
103 |
$current_platform = Icegram::get_platform();
|
104 |
-
if ( !empty( $campaign->rules_summary['device'][ $current_platform ] ) && $campaign->rules_summary['device'][ $current_platform ] == 'yes' ) {
|
105 |
return true;
|
106 |
}
|
|
|
107 |
return false;
|
108 |
}
|
109 |
-
|
110 |
function _is_valid_time( $campaign_valid, $campaign, $options ) {
|
111 |
-
if(
|
112 |
return $campaign_valid;
|
113 |
}
|
114 |
-
if ( !empty( $campaign->rules_summary['when']['when'] ) && $campaign->rules_summary['when']['when'] == 'always' ) {
|
115 |
return true;
|
116 |
}
|
117 |
-
if ( ( !empty( $campaign->rules_summary['when']['from'] ) && current_time('timestamp') > strtotime( $campaign->rules_summary['when']['from'] . " 00:00:00") ) && ( !empty( $campaign->rules_summary['when']['to'] ) && strtotime( $campaign->rules_summary['when']['to'] . " 23:59:59") > current_time('timestamp') ) ) {
|
118 |
return true;
|
119 |
}
|
120 |
|
121 |
return false;
|
122 |
}
|
123 |
-
|
124 |
function _is_valid_page( $campaign_valid, $campaign, $options ) {
|
125 |
-
|
126 |
$page_id = Icegram::get_current_page_id();
|
127 |
-
if(
|
128 |
return $campaign_valid;
|
129 |
}
|
130 |
-
if ( (!empty( $campaign->rules_summary['where']['sitewide'] ) && $campaign->rules_summary['where']['sitewide'] == 'yes' ))
|
131 |
-
if (!empty($campaign->rules['exclude_page_id']) && in_array($page_id, $campaign->rules['exclude_page_id'])){
|
132 |
return false;
|
133 |
-
}else{
|
134 |
return true;
|
135 |
}
|
136 |
}
|
137 |
-
if ( !empty( $campaign->rules_summary['where']['homepage'] ) && $campaign->rules_summary['where']['homepage'] == 'yes' && ((isset($_REQUEST['is_home']) && $_REQUEST['is_home'] === 'true') || is_home() || is_front_page()
|
138 |
-
|
139 |
}
|
140 |
-
if ( !empty( $page_id ) ) {
|
141 |
-
if ( !empty( $campaign->rules_summary['where']['other_page'] ) && in_array( $page_id, $campaign->rules_summary['where']['other_page'] ) ) {
|
142 |
return true;
|
143 |
}
|
144 |
}
|
145 |
-
if ( (!empty( $campaign->rules_summary['where']['local_url'] ) && $campaign->rules_summary['where']['local_url'] == 'yes' ))
|
146 |
-
|
147 |
-
$current_page_url =
|
148 |
// TODO::change this check with remote mode
|
149 |
//return if call made from remote url
|
150 |
-
if(!empty($_POST['ig_remote_url'])){
|
151 |
return;
|
152 |
}
|
153 |
-
foreach ($campaign->rules['local_urls'] as $local_url_pattern) {
|
154 |
-
if(empty($local_url_pattern)){
|
155 |
-
$local_url_pattern = home_url().'/';
|
156 |
}
|
157 |
-
$result = $this->is_valid_url($local_url_pattern, $current_page_url);
|
158 |
-
if($result){
|
159 |
return $result;
|
160 |
-
}else{
|
161 |
continue;
|
162 |
}
|
163 |
}
|
164 |
}
|
|
|
165 |
return false;
|
166 |
}
|
167 |
|
168 |
-
static function is_valid_url($pattern, $current_page_url){
|
169 |
-
$pattern = preg_quote($pattern,'/');
|
170 |
-
if(strpos($pattern, '*') !== false){
|
171 |
-
|
172 |
}
|
173 |
-
|
174 |
-
$result
|
175 |
-
|
|
|
176 |
}
|
177 |
}
|
178 |
}
|
1 |
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
/**
|
6 |
+
* Icegram Campaign class
|
7 |
+
*/
|
8 |
+
if ( ! class_exists( 'Icegram_Campaign' ) ) {
|
9 |
class Icegram_Campaign {
|
10 |
|
11 |
var $_post;
|
16 |
|
17 |
function __construct( $id = '' ) {
|
18 |
|
19 |
+
if ( ! empty( $id ) ) {
|
20 |
|
21 |
$this->_post = get_post( $id );
|
22 |
+
if ( ! is_object( $this->_post ) ) {
|
23 |
+
return;
|
24 |
+
}
|
25 |
+
$this->title = $this->_post->post_title;
|
26 |
//icegram_campaign_meta_key
|
27 |
+
$meta_key = apply_filters( 'icegram_campaign_meta_key', 'messages', $this->_post->ID );
|
28 |
+
$this->messages = get_post_meta( $this->_post->ID, $meta_key, true );
|
29 |
+
$this->rules = get_post_meta( $this->_post->ID, 'icegram_campaign_target_rules', true );
|
30 |
+
$this->rules_summary['where'] = array(
|
31 |
+
'homepage' => ( ! empty( $this->rules['homepage'] ) ) ? $this->rules['homepage'] : '',
|
32 |
+
'other_page' => ( ! empty( $this->rules['other_page'] ) && $this->rules['other_page'] == 'yes' && ! empty( $this->rules['page_id'] ) ) ? $this->rules['page_id'] : '',
|
33 |
+
'blog' => ( ! empty( $this->rules['blog'] ) ) ? $this->rules['blog'] : '',
|
34 |
+
'sitewide' => ( ! empty( $this->rules['sitewide'] ) ) ? $this->rules['sitewide'] : '',
|
35 |
+
'local_url' => ( ! empty( $this->rules['local_url'] ) ) ? $this->rules['local_url'] : ''
|
36 |
+
);
|
37 |
+
$this->rules_summary['when'] = array(
|
38 |
+
'when' => ( ! empty( $this->rules['when'] ) ) ? $this->rules['when'] : '',
|
39 |
+
'from' => ( ! empty( $this->rules['from'] ) ) ? $this->rules['from'] : '',
|
40 |
+
'to' => ( ! empty( $this->rules['to'] ) ) ? $this->rules['to'] : ''
|
41 |
+
);
|
42 |
$this->rules_summary['device'] = array(
|
43 |
+
'mobile' => ( ! empty( $this->rules['mobile'] ) ) ? $this->rules['mobile'] : '',
|
44 |
+
'tablet' => ( ! empty( $this->rules['tablet'] ) ) ? $this->rules['tablet'] : '',
|
45 |
+
'laptop' => ( ! empty( $this->rules['laptop'] ) ) ? $this->rules['laptop'] : ''
|
46 |
+
);
|
47 |
+
$this->rules_summary['users'] = ( ! empty( $this->rules['logged_in'] ) && $this->rules['logged_in'] == 'logged_in' )
|
48 |
+
? ( ( ! empty( $this->rules['users'] ) ) ? $this->rules['users'] : array( 'none' ) )
|
49 |
+
: ( ! empty( $this->rules['logged_in'] ) ? array( $this->rules['logged_in'] ) : array( 'all' ) );
|
50 |
+
|
51 |
+
$this->rules_summary['retargeting'] = array(
|
52 |
+
'retargeting' => ( ! empty( $this->rules['retargeting'] ) ) ? $this->rules['retargeting'] : '',
|
53 |
+
'expiry_time' => ( ! empty( $this->rules['retargeting'] ) ) ? $this->rules['expiry_time'] : ''
|
54 |
+
);
|
55 |
+
$this->rules_summary['retargeting_clicked'] = array(
|
56 |
+
'retargeting_clicked' => ( ! empty( $this->rules['retargeting_clicked'] ) ) ? $this->rules['retargeting_clicked'] : '',
|
57 |
+
'expiry_time_clicked' => ( ! empty( $this->rules['retargeting_clicked'] ) ) ? $this->rules['expiry_time_clicked'] : ''
|
58 |
+
);
|
59 |
+
|
60 |
+
}
|
61 |
+
|
62 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_user_roles' ), 10, 3 );
|
63 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_device' ), 10, 3 );
|
64 |
add_filter( 'icegram_campaign_validation', array( $this, '_is_valid_time' ), 10, 3 );
|
67 |
}
|
68 |
|
69 |
function get_message_meta_by_id( $message_id ) {
|
70 |
+
foreach ( $this->messages as $value ) {
|
71 |
+
if ( $value['id'] == $message_id ) {
|
72 |
return $value;
|
73 |
}
|
74 |
}
|
75 |
}
|
76 |
|
77 |
function get_rule_value( $rule_type ) {
|
78 |
+
return ( isset( $this->rules_summary[ $rule_type ] ) ) ? $this->rules_summary[ $rule_type ] : '';
|
79 |
}
|
80 |
|
81 |
function is_valid( $options = array() ) {
|
82 |
+
if ( ! empty( $this->_post->ID ) && $this->_post->post_status === 'publish' ) {
|
83 |
return apply_filters( 'icegram_campaign_validation', true, $this, $options );
|
84 |
}
|
85 |
+
|
86 |
return false;
|
87 |
}
|
88 |
|
89 |
function _is_valid_user_roles( $campaign_valid, $campaign, $options ) {
|
90 |
+
if ( ! $campaign_valid ) {
|
91 |
return $campaign_valid;
|
92 |
}
|
93 |
+
|
94 |
+
if ( in_array( 'not_logged_in', $campaign->rules_summary['users'], true ) && ! is_user_logged_in() ) {
|
95 |
+
return true;
|
96 |
+
} elseif ( in_array( 'all', $campaign->rules_summary['users'], true ) ) {
|
|
|
97 |
return true;
|
98 |
+
} elseif ( is_user_logged_in() && ! in_array( 'none', $campaign->rules_summary['users'], true ) ) {
|
99 |
$current_user = wp_get_current_user();
|
100 |
+
|
101 |
+
$roles = (array) $current_user->roles;
|
102 |
+
|
103 |
+
foreach ( $roles as $role ) {
|
104 |
+
if ( in_array( $role, $campaign->rules_summary['users'], true ) ) {
|
105 |
+
return true;
|
106 |
+
}
|
107 |
}
|
108 |
}
|
109 |
+
|
110 |
return false;
|
111 |
}
|
112 |
+
|
113 |
function _is_valid_device( $campaign_valid, $campaign, $options ) {
|
114 |
+
if ( ! $campaign_valid ) {
|
115 |
return $campaign_valid;
|
116 |
}
|
117 |
$current_platform = Icegram::get_platform();
|
118 |
+
if ( ! empty( $campaign->rules_summary['device'][ $current_platform ] ) && $campaign->rules_summary['device'][ $current_platform ] == 'yes' ) {
|
119 |
return true;
|
120 |
}
|
121 |
+
|
122 |
return false;
|
123 |
}
|
124 |
+
|
125 |
function _is_valid_time( $campaign_valid, $campaign, $options ) {
|
126 |
+
if ( ! $campaign_valid ) {
|
127 |
return $campaign_valid;
|
128 |
}
|
129 |
+
if ( ! empty( $campaign->rules_summary['when']['when'] ) && $campaign->rules_summary['when']['when'] == 'always' ) {
|
130 |
return true;
|
131 |
}
|
132 |
+
if ( ( ! empty( $campaign->rules_summary['when']['from'] ) && current_time( 'timestamp' ) > strtotime( $campaign->rules_summary['when']['from'] . " 00:00:00" ) ) && ( ! empty( $campaign->rules_summary['when']['to'] ) && strtotime( $campaign->rules_summary['when']['to'] . " 23:59:59" ) > current_time( 'timestamp' ) ) ) {
|
133 |
return true;
|
134 |
}
|
135 |
|
136 |
return false;
|
137 |
}
|
138 |
+
|
139 |
function _is_valid_page( $campaign_valid, $campaign, $options ) {
|
140 |
+
|
141 |
$page_id = Icegram::get_current_page_id();
|
142 |
+
if ( ! $campaign_valid || ! empty( $options['skip_page_check'] ) ) {
|
143 |
return $campaign_valid;
|
144 |
}
|
145 |
+
if ( ( ! empty( $campaign->rules_summary['where']['sitewide'] ) && $campaign->rules_summary['where']['sitewide'] == 'yes' ) ) {
|
146 |
+
if ( ! empty( $campaign->rules['exclude_page_id'] ) && in_array( $page_id, $campaign->rules['exclude_page_id'] ) ) {
|
147 |
return false;
|
148 |
+
} else {
|
149 |
return true;
|
150 |
}
|
151 |
}
|
152 |
+
if ( ! empty( $campaign->rules_summary['where']['homepage'] ) && $campaign->rules_summary['where']['homepage'] == 'yes' && ( ( isset( $_REQUEST['is_home'] ) && $_REQUEST['is_home'] === 'true' ) || is_home() || is_front_page() ) ) {
|
153 |
+
return true;
|
154 |
}
|
155 |
+
if ( ! empty( $page_id ) ) {
|
156 |
+
if ( ! empty( $campaign->rules_summary['where']['other_page'] ) && in_array( $page_id, $campaign->rules_summary['where']['other_page'] ) ) {
|
157 |
return true;
|
158 |
}
|
159 |
}
|
160 |
+
if ( ( ! empty( $campaign->rules_summary['where']['local_url'] ) && $campaign->rules_summary['where']['local_url'] == 'yes' ) ) {
|
161 |
+
|
162 |
+
$current_page_url = Icegram::get_current_page_url();
|
163 |
// TODO::change this check with remote mode
|
164 |
//return if call made from remote url
|
165 |
+
if ( ! empty( $_POST['ig_remote_url'] ) ) {
|
166 |
return;
|
167 |
}
|
168 |
+
foreach ( $campaign->rules['local_urls'] as $local_url_pattern ) {
|
169 |
+
if ( empty( $local_url_pattern ) ) {
|
170 |
+
$local_url_pattern = home_url() . '/';
|
171 |
}
|
172 |
+
$result = $this->is_valid_url( $local_url_pattern, $current_page_url );
|
173 |
+
if ( $result ) {
|
174 |
return $result;
|
175 |
+
} else {
|
176 |
continue;
|
177 |
}
|
178 |
}
|
179 |
}
|
180 |
+
|
181 |
return false;
|
182 |
}
|
183 |
|
184 |
+
static function is_valid_url( $pattern, $current_page_url ) {
|
185 |
+
$pattern = preg_quote( $pattern, '/' );
|
186 |
+
if ( strpos( $pattern, '*' ) !== false ) {
|
187 |
+
$pattern = str_replace( '\*', '[-a-zA-Z0-9+&@#\/%?=~_|!:,.;]*', $pattern );
|
188 |
}
|
189 |
+
|
190 |
+
$result = (bool) preg_match( '/' . $pattern . '$/i', $current_page_url );
|
191 |
+
|
192 |
+
return $result;
|
193 |
}
|
194 |
}
|
195 |
}
|
classes/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_2_0' ) ) {
|
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
-
public $version = '1.2.
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
@@ -403,7 +403,8 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
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 );
|
@@ -636,9 +637,11 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
636 |
<label class="ig-label"">Feedback</label><br/>
|
637 |
<textarea name="feedback_data[details]" id="ig-feedback-data-message"></textarea>
|
638 |
</p>
|
639 |
-
|
640 |
-
<
|
641 |
-
|
|
|
|
|
642 |
</form>
|
643 |
</div>
|
644 |
|
@@ -696,12 +699,11 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
696 |
}
|
697 |
}
|
698 |
|
699 |
-
var
|
700 |
-
|
701 |
-
$('#wpwrap').append('<div class="ig-es-feedback-button" id="' + feedbackButtonID + '">Feedback</div>');
|
702 |
|
703 |
-
$('#'
|
704 |
|
|
|
705 |
Swal.mixin({
|
706 |
footer: '<?php echo $this->footer; ?>',
|
707 |
position: '<?php echo $params['position']; ?>',
|
@@ -744,7 +746,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
744 |
return;
|
745 |
}
|
746 |
|
747 |
-
var system_info =
|
748 |
if (consent === 'checked') {
|
749 |
system_info = true;
|
750 |
}
|
@@ -886,12 +888,12 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
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>
|
@@ -963,7 +965,7 @@ if ( ! class_exists( 'IG_Feedback_V_1_2_0' ) ) {
|
|
963 |
onOpen: () => {
|
964 |
|
965 |
},
|
966 |
-
|
967 |
preConfirm: () => {
|
968 |
var $overlay = $('#ig-general-feedback-<?php echo $this->plugin; ?>');
|
969 |
var $form = $overlay.find('form');
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Feedback_V_1_2_2' ) ) {
|
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_2
|
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_2 {
|
22 |
|
23 |
/**
|
24 |
* Version of Feedback Library
|
27 |
* @var string
|
28 |
*
|
29 |
*/
|
30 |
+
public $version = '1.2.2';
|
31 |
/**
|
32 |
* The API URL where we will send feedback data.
|
33 |
*
|
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 |
+
'consent' => false
|
408 |
);
|
409 |
|
410 |
$params = wp_parse_args( $params, $default_params );
|
637 |
<label class="ig-label"">Feedback</label><br/>
|
638 |
<textarea name="feedback_data[details]" id="ig-feedback-data-message"></textarea>
|
639 |
</p>
|
640 |
+
<?php if ( isset( $params['consent'] ) && $params['consent'] === true ) { ?>
|
641 |
+
<p>
|
642 |
+
<input type="checkbox" name="feedback_data[collect_system_info]" checked="checked" id="ig-feedback-data-consent"/><?php echo $params['consent_text']; ?>
|
643 |
+
</p>
|
644 |
+
<?php } ?>
|
645 |
</form>
|
646 |
</div>
|
647 |
|
699 |
}
|
700 |
}
|
701 |
|
702 |
+
var feedbackButtonClass = 'ig-feedback-button-<?php echo $this->plugin; ?>';
|
|
|
|
|
703 |
|
704 |
+
$('#wpwrap').append('<div class="ig-es-feedback-button ' + feedbackButtonClass + '">Feedback</div>');
|
705 |
|
706 |
+
$('.' + feedbackButtonClass).on('click', function () {
|
707 |
Swal.mixin({
|
708 |
footer: '<?php echo $this->footer; ?>',
|
709 |
position: '<?php echo $params['position']; ?>',
|
746 |
return;
|
747 |
}
|
748 |
|
749 |
+
var system_info = true;
|
750 |
if (consent === 'checked') {
|
751 |
system_info = true;
|
752 |
}
|
888 |
<form class="ig-general-feedback" id="ig-general-feedback">
|
889 |
<p><?php echo $desc; ?></p>
|
890 |
|
891 |
+
<p class="ig-general-feedback mb-3">
|
892 |
<?php foreach ( $poll_options as $value => $option ) { ?>
|
893 |
<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/>
|
894 |
<?php } ?>
|
895 |
</p>
|
896 |
+
<p class="ig-feedback-data-poll-message mb-3" id="ig-feedback-data-poll-message">
|
897 |
<textarea name="feedback_data[details]" id="ig-feedback-data-poll-additional-message" placeholder="Additional feedback"></textarea>
|
898 |
</p>
|
899 |
</form>
|
965 |
onOpen: () => {
|
966 |
|
967 |
},
|
968 |
+
|
969 |
preConfirm: () => {
|
970 |
var $overlay = $('#ig-general-feedback-<?php echo $this->plugin; ?>');
|
971 |
var $form = $overlay.find('form');
|
classes/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_2_0' ) ) {
|
|
20 |
* @author Icegram
|
21 |
* @package feedback
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
@@ -112,6 +112,60 @@ if ( ! class_exists( 'IG_Tracker_V_1_2_0' ) ) {
|
|
112 |
return self::get_plugins( 'inactive', $details );
|
113 |
}
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
/**
|
116 |
* Get Current Theme Info
|
117 |
*
|
4 |
exit; // Exit if accessed directly.
|
5 |
}
|
6 |
|
7 |
+
if ( ! class_exists( 'IG_Tracker_V_1_2_2' ) ) {
|
8 |
|
9 |
/**
|
10 |
+
* Class IG_Tracker_V_1_2_2
|
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_2
|
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_2 {
|
24 |
|
25 |
/**
|
26 |
* Get Active, Inactive or all plugins info
|
112 |
return self::get_plugins( 'inactive', $details );
|
113 |
}
|
114 |
|
115 |
+
/**
|
116 |
+
* Check whether plugin is active or not.
|
117 |
+
*
|
118 |
+
* @param string $plugin
|
119 |
+
*
|
120 |
+
* @return bool
|
121 |
+
*
|
122 |
+
* @since 1.2.2
|
123 |
+
*/
|
124 |
+
public static function is_plugin_activated( $plugin = '' ) {
|
125 |
+
if ( empty( $plugin ) ) {
|
126 |
+
return false;
|
127 |
+
}
|
128 |
+
|
129 |
+
$active_plugins = self::get_active_plugins();
|
130 |
+
|
131 |
+
if ( count( $active_plugins ) == 0 ) {
|
132 |
+
return false;
|
133 |
+
}
|
134 |
+
|
135 |
+
if ( in_array( $plugin, $active_plugins ) ) {
|
136 |
+
return true;
|
137 |
+
}
|
138 |
+
|
139 |
+
return false;
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Is plugin installed?
|
144 |
+
*
|
145 |
+
* @param string $plugin
|
146 |
+
*
|
147 |
+
* @return bool
|
148 |
+
*
|
149 |
+
* @since 1.2.2
|
150 |
+
*/
|
151 |
+
public static function is_plugin_installed( $plugin = '' ) {
|
152 |
+
if ( empty( $plugin ) ) {
|
153 |
+
return false;
|
154 |
+
}
|
155 |
+
|
156 |
+
$all_plugins = self::get_plugins();
|
157 |
+
|
158 |
+
if ( count( $all_plugins ) == 0 ) {
|
159 |
+
return false;
|
160 |
+
}
|
161 |
+
|
162 |
+
if ( in_array( $plugin, $all_plugins ) ) {
|
163 |
+
return true;
|
164 |
+
}
|
165 |
+
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
|
169 |
/**
|
170 |
* Get Current Theme Info
|
171 |
*
|
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.
|
7 |
* Author: icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Copyright (c) 2014-19 Icegram
|
@@ -35,10 +35,10 @@ class Icegram {
|
|
35 |
function __construct() {
|
36 |
global $ig_feedback, $ig_tracker;
|
37 |
|
38 |
-
$feedback_version = '1.2.
|
39 |
$ig_tracker = 'IG_Tracker_V_' . str_replace( '.', '_', $feedback_version );
|
40 |
|
41 |
-
$this->version = "1.10.
|
42 |
$this->shortcode_instances = array();
|
43 |
$this->mode = 'local';
|
44 |
$this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
|
@@ -166,33 +166,32 @@ class Icegram {
|
|
166 |
}
|
167 |
}
|
168 |
|
|
|
|
|
|
|
169 |
public function add_admin_notices() {
|
170 |
-
|
171 |
-
global $ig_feedback;
|
172 |
|
173 |
$screen = get_current_screen();
|
174 |
if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_message', 'edit-ig_campaign' ), true ) ) {
|
175 |
return;
|
176 |
}
|
177 |
|
178 |
-
|
179 |
-
$timezone_format = _x( 'Y-m-d', 'timezone date format' );
|
180 |
-
$ig_current_date = strtotime( date_i18n( $timezone_format ) );
|
181 |
-
$ig_offer_start = strtotime( "2019-11-22" );
|
182 |
-
$ig_offer_end = strtotime( "2019-12-03" );
|
183 |
-
if ( ( $ig_current_date >= $ig_offer_start ) && ( $ig_current_date <= $ig_offer_end ) ) {
|
184 |
include_once( 'ig-offer.php' );
|
185 |
}
|
186 |
-
//bfcm 2019 :end
|
187 |
|
188 |
}
|
189 |
|
190 |
public function dismiss_admin_notice() {
|
191 |
if ( isset( $_GET['ig_dismiss_admin_notice'] ) && $_GET['ig_dismiss_admin_notice'] == '1' && isset( $_GET['ig_option_name'] ) ) {
|
192 |
$option_name = sanitize_text_field( $_GET['ig_option_name'] );
|
193 |
-
update_option( $option_name . '_icegram',
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
196 |
exit();
|
197 |
} else {
|
198 |
$referer = wp_get_referer();
|
@@ -757,11 +756,13 @@ class Icegram {
|
|
757 |
$icegram_pre_data['post_obj']['shortcodes'] = $this->shortcode_instances;
|
758 |
$icegram_pre_data['post_obj']['cache_compatibility'] = $this->cache_compatibility;
|
759 |
$icegram_pre_data['post_obj']['device'] = $this->get_platform();
|
|
|
760 |
wp_register_script( 'icegram_main_js', $this->plugin_url . '/assets/js/main.min.js', array( 'jquery' ), $this->version, true );
|
761 |
if ( ! wp_script_is( 'icegram_main_js' ) ) {
|
762 |
wp_enqueue_script( 'icegram_main_js' );
|
763 |
wp_localize_script( 'icegram_main_js', 'icegram_pre_data', $icegram_pre_data );
|
764 |
}
|
|
|
765 |
}
|
766 |
|
767 |
function display_messages() {
|
@@ -1220,7 +1221,8 @@ class Icegram {
|
|
1220 |
// Filter handler within this file (and possibly others) will append to this SQL
|
1221 |
// and provide arguments for wpdb->prepare if needed.
|
1222 |
// First element in the array is SQL, remaining are values for placeholders in SQL
|
1223 |
-
$sql_params
|
|
|
1224 |
$campaign_ids = $wpdb->get_col( $wpdb->prepare( array_shift( $sql_params ), $sql_params ) );
|
1225 |
}
|
1226 |
$valid_campaigns = array();
|
@@ -1233,6 +1235,7 @@ class Icegram {
|
|
1233 |
}
|
1234 |
|
1235 |
}
|
|
|
1236 |
$valid_campaigns = apply_filters( 'icegram_valid_campaigns', $valid_campaigns );
|
1237 |
|
1238 |
return $valid_campaigns;
|
@@ -2005,9 +2008,40 @@ class Icegram {
|
|
2005 |
}
|
2006 |
}
|
2007 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
}
|
2009 |
|
2010 |
function initialize_icegram() {
|
|
|
2011 |
global $icegram;
|
2012 |
// i18n / l10n - load translations
|
2013 |
load_plugin_textdomain( 'icegram', false, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
|
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.39
|
7 |
* Author: icegram
|
8 |
* Author URI: https://www.icegram.com/
|
9 |
* Copyright (c) 2014-19 Icegram
|
35 |
function __construct() {
|
36 |
global $ig_feedback, $ig_tracker;
|
37 |
|
38 |
+
$feedback_version = '1.2.2';
|
39 |
$ig_tracker = 'IG_Tracker_V_' . str_replace( '.', '_', $feedback_version );
|
40 |
|
41 |
+
$this->version = "1.10.39";
|
42 |
$this->shortcode_instances = array();
|
43 |
$this->mode = 'local';
|
44 |
$this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
|
166 |
}
|
167 |
}
|
168 |
|
169 |
+
/**
|
170 |
+
* Show promotion
|
171 |
+
*/
|
172 |
public function add_admin_notices() {
|
173 |
+
global $icegram;
|
|
|
174 |
|
175 |
$screen = get_current_screen();
|
176 |
if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_message', 'edit-ig_campaign' ), true ) ) {
|
177 |
return;
|
178 |
}
|
179 |
|
180 |
+
if ( ! $icegram->is_premium_installed() ) {
|
|
|
|
|
|
|
|
|
|
|
181 |
include_once( 'ig-offer.php' );
|
182 |
}
|
|
|
183 |
|
184 |
}
|
185 |
|
186 |
public function dismiss_admin_notice() {
|
187 |
if ( isset( $_GET['ig_dismiss_admin_notice'] ) && $_GET['ig_dismiss_admin_notice'] == '1' && isset( $_GET['ig_option_name'] ) ) {
|
188 |
$option_name = sanitize_text_field( $_GET['ig_option_name'] );
|
189 |
+
update_option( $option_name . '_icegram', 'yes', false );
|
190 |
+
|
191 |
+
// Covid-19 Offer
|
192 |
+
if ( $option_name === 'ig_offer_covid_19' ) {
|
193 |
+
$url = "https://www.icegram.com/pricing/?utm_source=in_app&utm_medium=ig_banner&utm_campaign=offer_covid_19";
|
194 |
+
header( "Location: {$url}" );
|
195 |
exit();
|
196 |
} else {
|
197 |
$referer = wp_get_referer();
|
756 |
$icegram_pre_data['post_obj']['shortcodes'] = $this->shortcode_instances;
|
757 |
$icegram_pre_data['post_obj']['cache_compatibility'] = $this->cache_compatibility;
|
758 |
$icegram_pre_data['post_obj']['device'] = $this->get_platform();
|
759 |
+
|
760 |
wp_register_script( 'icegram_main_js', $this->plugin_url . '/assets/js/main.min.js', array( 'jquery' ), $this->version, true );
|
761 |
if ( ! wp_script_is( 'icegram_main_js' ) ) {
|
762 |
wp_enqueue_script( 'icegram_main_js' );
|
763 |
wp_localize_script( 'icegram_main_js', 'icegram_pre_data', $icegram_pre_data );
|
764 |
}
|
765 |
+
|
766 |
}
|
767 |
|
768 |
function display_messages() {
|
1221 |
// Filter handler within this file (and possibly others) will append to this SQL
|
1222 |
// and provide arguments for wpdb->prepare if needed.
|
1223 |
// First element in the array is SQL, remaining are values for placeholders in SQL
|
1224 |
+
$sql_params = apply_filters( 'icegram_get_valid_campaigns_sql', array( $sql ), array() );
|
1225 |
+
|
1226 |
$campaign_ids = $wpdb->get_col( $wpdb->prepare( array_shift( $sql_params ), $sql_params ) );
|
1227 |
}
|
1228 |
$valid_campaigns = array();
|
1235 |
}
|
1236 |
|
1237 |
}
|
1238 |
+
|
1239 |
$valid_campaigns = apply_filters( 'icegram_valid_campaigns', $valid_campaigns );
|
1240 |
|
1241 |
return $valid_campaigns;
|
2008 |
}
|
2009 |
}
|
2010 |
|
2011 |
+
/**
|
2012 |
+
* Check if premium plugin installed
|
2013 |
+
*
|
2014 |
+
* @return boolean
|
2015 |
+
*
|
2016 |
+
* @since 1.10.39
|
2017 |
+
*/
|
2018 |
+
public function is_premium_installed() {
|
2019 |
+
global $ig_tracker;
|
2020 |
+
|
2021 |
+
$icegram_premium = 'icegram-engage/icegram-engage.php';
|
2022 |
+
|
2023 |
+
return $ig_tracker::is_plugin_installed( $icegram_premium );
|
2024 |
+
}
|
2025 |
+
|
2026 |
+
/**
|
2027 |
+
* Check if premium plugin active
|
2028 |
+
*
|
2029 |
+
* @return boolean
|
2030 |
+
*
|
2031 |
+
* @since 1.10.39
|
2032 |
+
*/
|
2033 |
+
public function is_premium_activated() {
|
2034 |
+
global $ig_tracker;
|
2035 |
+
|
2036 |
+
$icegram_premium = 'icegram-engage/icegram-engage.php';
|
2037 |
+
|
2038 |
+
return $ig_tracker::is_plugin_activated( $icegram_premium );
|
2039 |
+
}
|
2040 |
+
|
2041 |
}
|
2042 |
|
2043 |
function initialize_icegram() {
|
2044 |
+
/* @var Icegram Object */
|
2045 |
global $icegram;
|
2046 |
// i18n / l10n - load translations
|
2047 |
load_plugin_textdomain( 'icegram', false, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
|
ig-offer.php
CHANGED
@@ -1,24 +1,20 @@
|
|
1 |
<style type="text/css">
|
2 |
-
.ig_offer{
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
}
|
8 |
-
|
9 |
-
/*width: 100%;*/
|
10 |
-
}
|
11 |
</style>
|
12 |
-
<?php
|
13 |
-
if( (get_option('ig_offer_bfcm_done_2019_icegram') !== 1) && ($ig_current_date >= strtotime("2019-11-22")) && ($ig_current_date <= strtotime("2019-11-30")) ) { ?>
|
14 |
-
<div class="ig_offer">
|
15 |
-
<a target="_blank" href="?ig_dismiss_admin_notice=1&ig_option_name=ig_offer_bfcm_done_2019"><img src="<?php echo $this->plugin_url ?>/assets/images/bfcm-2019.png" /></a>
|
16 |
-
</div>
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
<div class="ig_offer">
|
21 |
-
<a target="_blank" href="?ig_dismiss_admin_notice=1&ig_option_name=ig_offer_last_day_bfcm_done_2019"><img src="<?php echo $this->plugin_url ?>/assets/images/bfcm-last-2019.png" /></a>
|
22 |
-
</div>
|
23 |
|
24 |
-
|
|
|
|
|
|
|
|
|
|
1 |
<style type="text/css">
|
2 |
+
.ig_offer {
|
3 |
+
width: 60%;
|
4 |
+
margin: 0 auto;
|
5 |
+
text-align: center;
|
6 |
+
padding-top: 1.2em;
|
7 |
+
}
|
8 |
+
|
|
|
|
|
9 |
</style>
|
10 |
+
<?php
|
|
|
|
|
|
|
|
|
11 |
|
12 |
+
$timezone_format = _x( 'Y-m-d', 'timezone date format' );
|
13 |
+
$ig_current_date = strtotime( date_i18n( $timezone_format ) );
|
|
|
|
|
|
|
14 |
|
15 |
+
// Covid-19 Campaign
|
16 |
+
if ( ( get_option( 'ig_offer_covid_19_icegram' ) !== 'yes' ) && ( $ig_current_date >= strtotime( "2020-04-08" ) ) && ( $ig_current_date <= strtotime( "2020-04-30" ) ) ) { ?>
|
17 |
+
<div class="ig_es_offer">
|
18 |
+
<a target="_blank" href="?ig_dismiss_admin_notice=1&ig_option_name=ig_offer_covid_19"><img src="<?php echo $this->plugin_url; ?>/assets/images/covid-19.png"/></a>
|
19 |
+
</div>
|
20 |
+
<?php } ?>
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
=== Popups, Welcome Bar,
|
2 |
Contributors: icegram, storeapps, niravmehta, sandhyam, malayladu, putler
|
3 |
Donate link: https://www.icegram.com/
|
4 |
Tags: popup, optin, hellobar, 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.
|
7 |
-
Stable tag: 1.10.
|
8 |
License: GPLv3
|
9 |
|
10 |
The best WP popup plugin that lets 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.
|
@@ -237,6 +237,11 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
|
|
237 |
|
238 |
== Upgrade Notice ==
|
239 |
|
|
|
|
|
|
|
|
|
|
|
240 |
**1.10.38**
|
241 |
|
242 |
* UI enhancements
|
1 |
+
=== Popups, Welcome Bar, Optins and Lead Generation Plugin - Icegram ===
|
2 |
Contributors: icegram, storeapps, niravmehta, sandhyam, malayladu, putler
|
3 |
Donate link: https://www.icegram.com/
|
4 |
Tags: popup, optin, hellobar, 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.4
|
7 |
+
Stable tag: 1.10.39
|
8 |
License: GPLv3
|
9 |
|
10 |
The best WP popup plugin that lets 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.
|
237 |
|
238 |
== Upgrade Notice ==
|
239 |
|
240 |
+
**1.10.39**
|
241 |
+
|
242 |
+
* Fix: Campaigns were not showing if display rules are set to role specific
|
243 |
+
* Update: WordPress 5.4 compatibility test
|
244 |
+
|
245 |
**1.10.38**
|
246 |
|
247 |
* UI enhancements
|