Version Description
Many small improvements. Support for analytics added. WordPress 4.0 compatible.
Download this release
Release Info
Developer | niravmehta |
Plugin | Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram |
Version | 1.4 |
Comparing to | |
See all releases |
Code changes from version 1.3 to 1.4
- addons.php +12 -3
- assets/css/admin.css +19 -0
- assets/js/admin.js +6 -0
- assets/js/icegram.js +85 -14
- classes/class-icegram-campaign-admin.php +19 -1
- classes/class-icegram-campaign.php +6 -3
- classes/class-icegram-message-admin.php +1 -1
- icegram.php +112 -12
- message-types/action-bar/default.css +9 -0
- message-types/action-bar/main.js +3 -6
- message-types/action-bar/themes/air-mail.css +15 -25
- message-types/action-bar/themes/bold.css +8 -12
- message-types/action-bar/themes/hello.css +0 -3
- message-types/action-bar/themes/solid.css +4 -3
- readme.txt +24 -7
addons.php
CHANGED
@@ -11,9 +11,6 @@ if ( empty($ig_addons) ) {
|
|
11 |
<div class="wrap ig_addons_wrap">
|
12 |
<h2>
|
13 |
<?php _e( 'Icegram Add-ons', 'icegram' ); ?>
|
14 |
-
<?php if (time() < strtotime("31 August 2014")) { ?>
|
15 |
-
<span class="ig_addons_special_message">25% Discount on All Items till August 30, 2014. Use Coopon <code><a href="http://www.icegram.com/addons/?coupon-code=launch25&utm_source=inapp&utm_campaign=launch&utm_medium=store" target="_blank">LAUNCH25</a></code></span>
|
16 |
-
<?php } ?>
|
17 |
</h2>
|
18 |
<ul class="addons">
|
19 |
<?php
|
@@ -23,6 +20,18 @@ if ( empty($ig_addons) ) {
|
|
23 |
<li class="addon">
|
24 |
<a href="<?php echo $addon->link;?>?utm_source=inapp&utm_campaign=addons&utm_medium=store" target="_blank">
|
25 |
<h3><?php echo $addon->name; ?></h3>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
<p>
|
27 |
<?php
|
28 |
if( !empty( $addon->image ) ) {
|
11 |
<div class="wrap ig_addons_wrap">
|
12 |
<h2>
|
13 |
<?php _e( 'Icegram Add-ons', 'icegram' ); ?>
|
|
|
|
|
|
|
14 |
</h2>
|
15 |
<ul class="addons">
|
16 |
<?php
|
20 |
<li class="addon">
|
21 |
<a href="<?php echo $addon->link;?>?utm_source=inapp&utm_campaign=addons&utm_medium=store" target="_blank">
|
22 |
<h3><?php echo $addon->name; ?></h3>
|
23 |
+
<?php
|
24 |
+
if( !empty( $addon->category ) ) {
|
25 |
+
$categories = explode(",", $addon->category);
|
26 |
+
if (!empty($categories)) {
|
27 |
+
echo "<div class='ig_addon_category'>";
|
28 |
+
foreach ($categories as $cat) {
|
29 |
+
echo "<span class='{$cat}'>{$cat}</span> ";
|
30 |
+
}
|
31 |
+
echo "</div>";
|
32 |
+
}
|
33 |
+
}
|
34 |
+
?>
|
35 |
<p>
|
36 |
<?php
|
37 |
if( !empty( $addon->image ) ) {
|
assets/css/admin.css
CHANGED
@@ -586,6 +586,25 @@ CSS for landing page and Help and Support
|
|
586 |
.ig_addons_wrap .addons li a:focus, .ig_addons_wrap .addons li a:hover {
|
587 |
background-color: #fff;
|
588 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
589 |
.ig_addons_special_message {
|
590 |
font-size: 60%;
|
591 |
line-height: 60%;
|
586 |
.ig_addons_wrap .addons li a:focus, .ig_addons_wrap .addons li a:hover {
|
587 |
background-color: #fff;
|
588 |
}
|
589 |
+
.ig_addons_wrap .addons li .ig_addon_category {
|
590 |
+
margin-top: -3.5em;
|
591 |
+
float: right;
|
592 |
+
text-transform: capitalize;
|
593 |
+
font-style: normal;
|
594 |
+
margin-right: 1em;
|
595 |
+
font-size: 80%;
|
596 |
+
}
|
597 |
+
.ig_addons_wrap .addons li .ig_addon_category span {
|
598 |
+
margin-left: 1.2em;
|
599 |
+
padding: 2px 3px;
|
600 |
+
background-color: #DEDEDE;
|
601 |
+
border-radius: .3em;
|
602 |
+
}
|
603 |
+
.ig_addons_wrap .addons li .ig_addon_category span.free {
|
604 |
+
background-color: #C3D3FF;
|
605 |
+
color: #3754a8;
|
606 |
+
}
|
607 |
+
|
608 |
.ig_addons_special_message {
|
609 |
font-size: 60%;
|
610 |
line-height: 60%;
|
assets/js/admin.js
CHANGED
@@ -227,6 +227,12 @@ jQuery(function() {
|
|
227 |
jQuery('#where_page_id_chosen').find('input').trigger('click');
|
228 |
}
|
229 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
|
231 |
jQuery('.date-picker').datepicker({
|
232 |
dateFormat: 'yy-mm-dd',
|
227 |
jQuery('#where_page_id_chosen').find('input').trigger('click');
|
228 |
}
|
229 |
});
|
230 |
+
jQuery('input#where_sitewide').on('change', function() {
|
231 |
+
jQuery('select#exclude_page_id').parent('p').slideToggle();
|
232 |
+
if (jQuery(this).is(':checked')) {
|
233 |
+
jQuery('#exclude_page_id_chosen').find('input').trigger('click');
|
234 |
+
}
|
235 |
+
});
|
236 |
|
237 |
jQuery('.date-picker').datepicker({
|
238 |
dateFormat: 'yy-mm-dd',
|
assets/js/icegram.js
CHANGED
@@ -34,26 +34,33 @@
|
|
34 |
var i = 0;
|
35 |
this.messages = [];
|
36 |
var self = this;
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
50 |
|
51 |
-
// Submit event data on unload...
|
52 |
jQuery( window ).unload( function() {
|
53 |
if (typeof(window.icegram.submit_tracking_data) === 'function') {
|
54 |
window.icegram.submit_tracking_data();
|
55 |
}
|
56 |
} );
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
// Trigger event for others!
|
59 |
jQuery( window ).trigger( 'init.icegram', [ this ] );
|
@@ -127,6 +134,9 @@
|
|
127 |
data: {
|
128 |
action: 'icegram_event_track',
|
129 |
event_data: this.tracking_data
|
|
|
|
|
|
|
130 |
}
|
131 |
});
|
132 |
}
|
@@ -205,6 +215,12 @@
|
|
205 |
this.el.find('.ig_content').css('background-color', this.data.bg_color);
|
206 |
}
|
207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
// Hint clickability for buttons / ctas
|
209 |
if (typeof(this.data.link) === 'string' && this.data.link != '') {
|
210 |
this.el.parent().find('.ig_cta, .ig_button').css('cursor', 'pointer');
|
@@ -218,6 +234,7 @@
|
|
218 |
// Set up message display trigger
|
219 |
this.set_up_show_trigger();
|
220 |
}
|
|
|
221 |
|
222 |
Icegram_Message_Type.prototype.render_template = function ( ) {
|
223 |
if ( typeof(window.icegram.get_template_fn( this.type ) ) !== 'function') {
|
@@ -354,6 +371,60 @@
|
|
354 |
});
|
355 |
}
|
356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
if (typeof Object.create != 'function') {
|
358 |
(function () {
|
359 |
var F = function () {};
|
34 |
var i = 0;
|
35 |
this.messages = [];
|
36 |
var self = this;
|
37 |
+
if (this.message_data.length > 0) {
|
38 |
+
jQuery.each( this.message_data, function ( i, v ) {
|
39 |
+
var m = null;
|
40 |
+
var classname_suffix = v['type'].split('-').join(' ').ucwords().split(' ').join('_');
|
41 |
+
if (typeof (window['Icegram_Message_Type_' + classname_suffix]) === 'function') {
|
42 |
+
m = new window['Icegram_Message_Type_' + classname_suffix]( v );
|
43 |
+
} else {
|
44 |
+
m = new Icegram_Message_Type( v );
|
45 |
+
}
|
46 |
+
self.messages.push( m );
|
47 |
+
self.map_id_to_index['_'+v['id'] ] = i;
|
48 |
+
self.map_type_to_index[ v['type'] ] = jQuery.isArray(self.map_type_to_index[ v['type'] ]) ? self.map_type_to_index[ v['type'] ] : new Array();
|
49 |
+
self.map_type_to_index[ v['type'] ].push(i);
|
50 |
+
});
|
51 |
+
}
|
52 |
|
53 |
+
// Submit event data on unload and at every 5 seconds...
|
54 |
jQuery( window ).unload( function() {
|
55 |
if (typeof(window.icegram.submit_tracking_data) === 'function') {
|
56 |
window.icegram.submit_tracking_data();
|
57 |
}
|
58 |
} );
|
59 |
+
setTimeout( function() {
|
60 |
+
if (typeof(window.icegram.submit_tracking_data) === 'function') {
|
61 |
+
window.icegram.submit_tracking_data();
|
62 |
+
} } , 5 * 1000 );
|
63 |
+
|
64 |
|
65 |
// Trigger event for others!
|
66 |
jQuery( window ).trigger( 'init.icegram', [ this ] );
|
134 |
data: {
|
135 |
action: 'icegram_event_track',
|
136 |
event_data: this.tracking_data
|
137 |
+
},
|
138 |
+
success: function(data, status, xhr) {
|
139 |
+
window.icegram.tracking_data = [];
|
140 |
}
|
141 |
});
|
142 |
}
|
215 |
this.el.find('.ig_content').css('background-color', this.data.bg_color);
|
216 |
}
|
217 |
|
218 |
+
if(this.data.label == undefined || this.data.label == '') {
|
219 |
+
this.el.find('.ig_button').hide();
|
220 |
+
}else if (this.data.bg_color != undefined && this.data.bg_color != '') {
|
221 |
+
var hsl_color = window.icegram.get_complementary_color(this.data.bg_color);
|
222 |
+
this.el.find('.ig_button').css('background-color', "hsl(" + hsl_color.h + "," + hsl_color.s + "%," + hsl_color.l + "%)" );
|
223 |
+
}
|
224 |
// Hint clickability for buttons / ctas
|
225 |
if (typeof(this.data.link) === 'string' && this.data.link != '') {
|
226 |
this.el.parent().find('.ig_cta, .ig_button').css('cursor', 'pointer');
|
234 |
// Set up message display trigger
|
235 |
this.set_up_show_trigger();
|
236 |
}
|
237 |
+
|
238 |
|
239 |
Icegram_Message_Type.prototype.render_template = function ( ) {
|
240 |
if ( typeof(window.icegram.get_template_fn( this.type ) ) !== 'function') {
|
371 |
});
|
372 |
}
|
373 |
|
374 |
+
Icegram.prototype.get_complementary_color = function (hex) {
|
375 |
+
|
376 |
+
hex = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i , function(m, r, g, b) {
|
377 |
+
return r + r + g + g + b + b;
|
378 |
+
});
|
379 |
+
|
380 |
+
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
381 |
+
if(result){
|
382 |
+
var r = parseInt(result[1], 16);
|
383 |
+
var g = parseInt(result[2], 16);
|
384 |
+
var b = parseInt(result[3], 16);
|
385 |
+
var brightness = Math.sqrt(r * r * .241 + g * g * .691 + b * b * .068);
|
386 |
+
r /= 255;
|
387 |
+
g /= 255;
|
388 |
+
b /= 255;
|
389 |
+
|
390 |
+
var maxColor = Math.max(r, g, b);
|
391 |
+
var minColor = Math.min(r, g, b);
|
392 |
+
//Calculate L:
|
393 |
+
var L = (maxColor + minColor) / 2 ;
|
394 |
+
var S = 0;
|
395 |
+
var H = 0;
|
396 |
+
if(maxColor != minColor){
|
397 |
+
//Calculate S:
|
398 |
+
S = (L < 0.5) ? (maxColor - minColor) / (maxColor + minColor) : (maxColor - minColor) / (2.0 - maxColor - minColor) ;
|
399 |
+
//Calculate H:
|
400 |
+
if(r == maxColor){
|
401 |
+
H = (g - b) / (maxColor - minColor);
|
402 |
+
}else if(g == maxColor){
|
403 |
+
H = 2.0 + (b - r) / (maxColor - minColor);
|
404 |
+
}else{
|
405 |
+
H = 4.0 + (r - g) / (maxColor - minColor);
|
406 |
+
}
|
407 |
+
}
|
408 |
+
|
409 |
+
L = Math.floor(L * 100);
|
410 |
+
S = Math.floor(S * 100);
|
411 |
+
H = Math.floor(H * 60);
|
412 |
+
if(H<0){
|
413 |
+
H += 360;
|
414 |
+
}
|
415 |
+
if(brightness > 130){
|
416 |
+
S -= 15;
|
417 |
+
L -= 25;
|
418 |
+
}else{
|
419 |
+
S += 15;
|
420 |
+
L += 25;
|
421 |
+
}
|
422 |
+
|
423 |
+
return {h: H, s: S, l: L};
|
424 |
+
} // result if
|
425 |
+
return null;
|
426 |
+
}
|
427 |
+
|
428 |
if (typeof Object.create != 'function') {
|
429 |
(function () {
|
430 |
var F = function () {};
|
classes/class-icegram-campaign-admin.php
CHANGED
@@ -33,7 +33,7 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
|
|
33 |
// Initialize campaign metabox
|
34 |
function add_campaigns_metaboxes() {
|
35 |
$meta_box_title = __( 'Message', 'icegram' );
|
36 |
-
add_meta_box( 'campaign_data', $meta_box_title, array( &$this, 'campaign_data_content' ), 'ig_campaign', 'normal', '
|
37 |
add_meta_box( 'campaign_target_rules', __( 'Targeting Rules', 'icegram' ), array( &$this, 'campaign_target_rules_content' ), 'ig_campaign', 'normal' );
|
38 |
}
|
39 |
|
@@ -147,6 +147,20 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
|
|
147 |
<?php _e( 'Sitewide', 'icegram' ); ?>
|
148 |
</label>
|
149 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
<p class="form-field">
|
151 |
<label class="options_header"> </label>
|
152 |
<label for="where_homepage">
|
@@ -427,6 +441,10 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
|
|
427 |
$campaign_target_rules['page_id'] = $_POST['page_id'];
|
428 |
update_post_meta( $post_id, 'icegram_campaign_target_pages', $_POST['page_id'] );
|
429 |
}
|
|
|
|
|
|
|
|
|
430 |
|
431 |
if ( count( $campaign_target_rules ) > 0 ) {
|
432 |
update_post_meta( $post_id, 'icegram_campaign_target_rules', $campaign_target_rules );
|
33 |
// Initialize campaign metabox
|
34 |
function add_campaigns_metaboxes() {
|
35 |
$meta_box_title = __( 'Message', 'icegram' );
|
36 |
+
add_meta_box( 'campaign_data', $meta_box_title, array( &$this, 'campaign_data_content' ), 'ig_campaign', 'normal', 'default' );
|
37 |
add_meta_box( 'campaign_target_rules', __( 'Targeting Rules', 'icegram' ), array( &$this, 'campaign_target_rules_content' ), 'ig_campaign', 'normal' );
|
38 |
}
|
39 |
|
147 |
<?php _e( 'Sitewide', 'icegram' ); ?>
|
148 |
</label>
|
149 |
</p>
|
150 |
+
<p class="form-field" <?php echo ( !empty( $campaign_target_rules['sitewide'] ) && $campaign_target_rules['sitewide'] == 'yes' ) ? '' : 'style="display: none;"'; ?>>
|
151 |
+
<label class="options_header"></label>
|
152 |
+
<?php
|
153 |
+
echo '<select name="exclude_page_id[]" id="exclude_page_id" data-placeholder="' . __( 'Select pages to exclude…', 'icegram' ) . '" style="min-width:300px;" class="icegram_chosen_page" multiple>';
|
154 |
+
foreach ( get_pages() as $page ) {
|
155 |
+
echo '<option value="' . $page->ID . '"';
|
156 |
+
if( !empty( $campaign_target_rules['exclude_page_id'] ) ) {
|
157 |
+
echo selected( in_array( $page->ID, $campaign_target_rules['exclude_page_id'] ) );
|
158 |
+
}
|
159 |
+
echo '>' . $page->post_title . '</option>';
|
160 |
+
}
|
161 |
+
echo '</select>';
|
162 |
+
?>
|
163 |
+
</p>
|
164 |
<p class="form-field">
|
165 |
<label class="options_header"> </label>
|
166 |
<label for="where_homepage">
|
441 |
$campaign_target_rules['page_id'] = $_POST['page_id'];
|
442 |
update_post_meta( $post_id, 'icegram_campaign_target_pages', $_POST['page_id'] );
|
443 |
}
|
444 |
+
if ( isset( $_POST['exclude_page_id'] ) ) {
|
445 |
+
$campaign_target_rules['exclude_page_id'] = $_POST['exclude_page_id'];
|
446 |
+
update_post_meta( $post_id, 'icegram_campaign_target_pages', $_POST['exclude_page_id'] );
|
447 |
+
}
|
448 |
|
449 |
if ( count( $campaign_target_rules ) > 0 ) {
|
450 |
update_post_meta( $post_id, 'icegram_campaign_target_rules', $campaign_target_rules );
|
classes/class-icegram-campaign.php
CHANGED
@@ -21,7 +21,6 @@ if ( !class_exists( 'Icegram_Campaign' ) ) {
|
|
21 |
$this->title = $this->_post->post_title;
|
22 |
$this->messages = get_post_meta( $this->_post->ID, 'messages', true );
|
23 |
$this->rules = get_post_meta( $this->_post->ID, 'icegram_campaign_target_rules', true );
|
24 |
-
|
25 |
$this->rules_summary['where'] = array(
|
26 |
'homepage' => ( !empty( $this->rules['homepage'] ) ) ? $this->rules['homepage'] : '',
|
27 |
'other_page' => ( !empty( $this->rules['other_page'] ) && $this->rules['other_page'] == 'yes' && !empty( $this->rules['page_id'] ) ) ? $this->rules['page_id'] : '',
|
@@ -112,16 +111,20 @@ if ( !class_exists( 'Icegram_Campaign' ) ) {
|
|
112 |
}
|
113 |
|
114 |
function _is_valid_page( $campaign_valid, $campaign, $options ) {
|
|
|
115 |
if( !$campaign_valid || !empty($options['skip_page_check']) ) {
|
116 |
return $campaign_valid;
|
117 |
}
|
118 |
-
if ( !empty( $campaign->rules_summary['where']['sitewide'] ) && $campaign->rules_summary['where']['sitewide'] == 'yes' )
|
|
|
|
|
|
|
119 |
return true;
|
|
|
120 |
}
|
121 |
if ( !empty( $campaign->rules_summary['where']['homepage'] ) && $campaign->rules_summary['where']['homepage'] == 'yes' && ( is_home() || is_front_page() ) ) {
|
122 |
return true;
|
123 |
}
|
124 |
-
$page_id = Icegram::get_current_page_id();
|
125 |
if ( !empty( $page_id ) ) {
|
126 |
if ( !empty( $campaign->rules_summary['where']['other_page'] ) && in_array( $page_id, $campaign->rules_summary['where']['other_page'] ) ) {
|
127 |
return true;
|
21 |
$this->title = $this->_post->post_title;
|
22 |
$this->messages = get_post_meta( $this->_post->ID, 'messages', true );
|
23 |
$this->rules = get_post_meta( $this->_post->ID, 'icegram_campaign_target_rules', true );
|
|
|
24 |
$this->rules_summary['where'] = array(
|
25 |
'homepage' => ( !empty( $this->rules['homepage'] ) ) ? $this->rules['homepage'] : '',
|
26 |
'other_page' => ( !empty( $this->rules['other_page'] ) && $this->rules['other_page'] == 'yes' && !empty( $this->rules['page_id'] ) ) ? $this->rules['page_id'] : '',
|
111 |
}
|
112 |
|
113 |
function _is_valid_page( $campaign_valid, $campaign, $options ) {
|
114 |
+
$page_id = Icegram::get_current_page_id();
|
115 |
if( !$campaign_valid || !empty($options['skip_page_check']) ) {
|
116 |
return $campaign_valid;
|
117 |
}
|
118 |
+
if ( (!empty( $campaign->rules_summary['where']['sitewide'] ) && $campaign->rules_summary['where']['sitewide'] == 'yes' )) {
|
119 |
+
if (!empty($campaign->rules['exclude_page_id']) && in_array($page_id, $campaign->rules['exclude_page_id'])){
|
120 |
+
return false;
|
121 |
+
}else{
|
122 |
return true;
|
123 |
+
}
|
124 |
}
|
125 |
if ( !empty( $campaign->rules_summary['where']['homepage'] ) && $campaign->rules_summary['where']['homepage'] == 'yes' && ( is_home() || is_front_page() ) ) {
|
126 |
return true;
|
127 |
}
|
|
|
128 |
if ( !empty( $page_id ) ) {
|
129 |
if ( !empty( $campaign->rules_summary['where']['other_page'] ) && in_array( $page_id, $campaign->rules_summary['where']['other_page'] ) ) {
|
130 |
return true;
|
classes/class-icegram-message-admin.php
CHANGED
@@ -280,7 +280,7 @@ if ( !class_exists( 'Icegram_Message_Admin' ) ) {
|
|
280 |
// Used to save the settings which are being made in the message form and added to message page appropriately
|
281 |
function update_message_settings( $post_id, $post ) {
|
282 |
|
283 |
-
if (empty( $post_id ) || empty( $post ) || empty( $_POST )) return;
|
284 |
if (defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) return;
|
285 |
if (is_int( wp_is_post_revision( $post ) )) return;
|
286 |
if (is_int( wp_is_post_autosave( $post ) )) return;
|
280 |
// Used to save the settings which are being made in the message form and added to message page appropriately
|
281 |
function update_message_settings( $post_id, $post ) {
|
282 |
|
283 |
+
if (empty( $post_id ) || empty( $post ) || empty( $_POST['message_data'] ) || empty( $_POST['message_data'][$post_id] ) ) return;
|
284 |
if (defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) return;
|
285 |
if (is_int( wp_is_post_revision( $post ) )) return;
|
286 |
if (is_int( wp_is_post_autosave( $post ) )) return;
|
icegram.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Icegram
|
4 |
* Plugin URI: http://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.
|
7 |
* Author: Icegram
|
8 |
* Author URI: http://www.icegram.com/
|
9 |
*
|
@@ -33,7 +33,7 @@ class Icegram {
|
|
33 |
|
34 |
function __construct() {
|
35 |
|
36 |
-
$this->version = "1.
|
37 |
$this->shortcode_instances = array();
|
38 |
$this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
|
39 |
$this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
|
@@ -51,6 +51,7 @@ class Icegram {
|
|
51 |
|
52 |
add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
|
53 |
add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
|
|
|
54 |
} else {
|
55 |
add_action( 'wp_footer', array( &$this, 'display_messages' ) );
|
56 |
//add_action( 'wp_head', array( &$this, 'nofollow_noindex' ) );
|
@@ -70,6 +71,7 @@ class Icegram {
|
|
70 |
add_action( 'wp_ajax_icegram_event_track', array( &$this, 'icegram_event_track' ) );
|
71 |
add_action( 'wp_ajax_nopriv_icegram_event_track', array( &$this, 'icegram_event_track' ) );
|
72 |
add_action( 'wp_ajax_klawoo_subscribe', array( &$this, 'klawoo_subscribe' ) );
|
|
|
73 |
}
|
74 |
|
75 |
}
|
@@ -79,12 +81,12 @@ class Icegram {
|
|
79 |
<div class="wrap">
|
80 |
<?php
|
81 |
if ( stripos(get_current_screen()->base, 'settings') !== false ) {
|
82 |
-
echo "<h2>".__( '
|
83 |
}
|
84 |
?>
|
85 |
<table class="form-table">
|
86 |
<tr>
|
87 |
-
<th scope="row"><?php _e( '
|
88 |
<td>
|
89 |
<form name="klawoo_subscribe" action="#" method="POST" accept-charset="utf-8">
|
90 |
<input class="ltr" type="text" name="name" id="name" placeholder="Name"/>
|
@@ -126,6 +128,7 @@ class Icegram {
|
|
126 |
<?php
|
127 |
}
|
128 |
|
|
|
129 |
public function klawoo_subscribe() {
|
130 |
$url = 'http://app.klawoo.com/subscribe';
|
131 |
|
@@ -167,6 +170,96 @@ class Icegram {
|
|
167 |
exit();
|
168 |
}
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
public function icegram_event_track() {
|
171 |
|
172 |
if( !empty( $_POST['event_data'] ) ) {
|
@@ -216,12 +309,10 @@ class Icegram {
|
|
216 |
}
|
217 |
|
218 |
function db_update() {
|
219 |
-
|
220 |
$current_db_version = get_option( 'icegram_db_version' );
|
221 |
if ( !$current_db_version || version_compare( $current_db_version, '1.2', '<' ) ) {
|
222 |
include( 'updates/icegram-update-1.2.php' );
|
223 |
}
|
224 |
-
|
225 |
}
|
226 |
|
227 |
public function admin_menus() {
|
@@ -421,11 +512,11 @@ class Icegram {
|
|
421 |
'powered_by_text' => __( 'Powered by Icegram', 'icegram' )
|
422 |
) );
|
423 |
$messages = apply_filters( 'icegram_messages_to_show', $messages );
|
424 |
-
$icegram = array ( 'messages' => array_values( $messages ),
|
425 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
426 |
'preview_id' => !empty( $_GET['campaign_preview_id'] ) ? $_GET['campaign_preview_id'] : '',
|
427 |
'defaults' => $icegram_default
|
428 |
-
);
|
429 |
if (empty($icegram['preview_id'])) {
|
430 |
unset($icegram['preview_id']);
|
431 |
}
|
@@ -549,6 +640,7 @@ class Icegram {
|
|
549 |
global $wpdb;
|
550 |
|
551 |
$message_data = array();
|
|
|
552 |
$meta_key = $preview ? 'icegram_message_preview_data' : 'icegram_message_data';
|
553 |
$message_data_query = "SELECT post_id, meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key LIKE '$meta_key'";
|
554 |
if ( !empty( $message_ids ) && is_array( $message_ids ) ) {
|
@@ -557,7 +649,9 @@ class Icegram {
|
|
557 |
$wpml_settings = get_option('icl_sitepress_settings');
|
558 |
$original_if_missing = (is_array($wpml_settings) && array_key_exists('show_untranslated_blog_posts', $wpml_settings) && !empty($wpml_settings['show_untranslated_blog_posts']) ) ? true : false;
|
559 |
foreach ($message_ids as $i=>$id ) {
|
560 |
-
$
|
|
|
|
|
561 |
}
|
562 |
}
|
563 |
$message_ids = array_filter(array_unique($message_ids));
|
@@ -566,6 +660,10 @@ class Icegram {
|
|
566 |
$message_data_results = $wpdb->get_results( $message_data_query, 'ARRAY_A' );
|
567 |
foreach ( $message_data_results as $message_data_result ) {
|
568 |
$message_data[$message_data_result['post_id']] = maybe_unserialize( $message_data_result['meta_value'] );
|
|
|
|
|
|
|
|
|
569 |
}
|
570 |
}
|
571 |
}
|
@@ -629,11 +727,12 @@ class Icegram {
|
|
629 |
$message_data['campaign_id'] = ($preview_mode) ? $_GET['campaign_preview_id'] : '';
|
630 |
|
631 |
// Pull display time and retargeting rule from campaign if possible
|
632 |
-
|
633 |
-
|
|
|
634 |
$campaign = $valid_campaigns[ $message_data['campaign_id'] ];
|
635 |
if (!empty($campaign) && $campaign instanceof Icegram_Campaign) {
|
636 |
-
$message_meta_from_campaign = $campaign->get_message_meta_by_id( $
|
637 |
if (!empty($message_meta_from_campaign['time'])) {
|
638 |
$message_data['delay_time'] = $message_meta_from_campaign['time'];
|
639 |
}
|
@@ -1044,6 +1143,7 @@ class Icegram {
|
|
1044 |
global $post, $wpdb;
|
1045 |
|
1046 |
$obj = get_queried_object();
|
|
|
1047 |
if( !empty( $obj->has_archive ) ) {
|
1048 |
$id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type='page'", $obj->has_archive ) );
|
1049 |
} elseif( is_object( $post ) && isset( $post->ID ) ) {
|
3 |
* Plugin Name: Icegram
|
4 |
* Plugin URI: http://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.4
|
7 |
* Author: Icegram
|
8 |
* Author URI: http://www.icegram.com/
|
9 |
*
|
33 |
|
34 |
function __construct() {
|
35 |
|
36 |
+
$this->version = "1.4";
|
37 |
$this->shortcode_instances = array();
|
38 |
$this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
|
39 |
$this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
|
51 |
|
52 |
add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
|
53 |
add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
|
54 |
+
add_action( 'icegram_settings_after', array( &$this, 'icegram_houskeeping' ) );
|
55 |
} else {
|
56 |
add_action( 'wp_footer', array( &$this, 'display_messages' ) );
|
57 |
//add_action( 'wp_head', array( &$this, 'nofollow_noindex' ) );
|
71 |
add_action( 'wp_ajax_icegram_event_track', array( &$this, 'icegram_event_track' ) );
|
72 |
add_action( 'wp_ajax_nopriv_icegram_event_track', array( &$this, 'icegram_event_track' ) );
|
73 |
add_action( 'wp_ajax_klawoo_subscribe', array( &$this, 'klawoo_subscribe' ) );
|
74 |
+
add_action( 'wp_ajax_icegram_run_housekeeping', array( &$this, 'run_housekeeping' ) );
|
75 |
}
|
76 |
|
77 |
}
|
81 |
<div class="wrap">
|
82 |
<?php
|
83 |
if ( stripos(get_current_screen()->base, 'settings') !== false ) {
|
84 |
+
echo "<h2>".__( 'Free Add-ons, Proven Marketing Tricks and Updates', 'icegram' )."</h2>";
|
85 |
}
|
86 |
?>
|
87 |
<table class="form-table">
|
88 |
<tr>
|
89 |
+
<th scope="row"><?php _e( 'Get add-ons and tips...', 'icegram' ) ?></th>
|
90 |
<td>
|
91 |
<form name="klawoo_subscribe" action="#" method="POST" accept-charset="utf-8">
|
92 |
<input class="ltr" type="text" name="name" id="name" placeholder="Name"/>
|
128 |
<?php
|
129 |
}
|
130 |
|
131 |
+
|
132 |
public function klawoo_subscribe() {
|
133 |
$url = 'http://app.klawoo.com/subscribe';
|
134 |
|
170 |
exit();
|
171 |
}
|
172 |
|
173 |
+
public function icegram_houskeeping(){
|
174 |
+
?>
|
175 |
+
<div class="wrap">
|
176 |
+
<?php
|
177 |
+
if ( stripos(get_current_screen()->base, 'settings') !== false ) {
|
178 |
+
?>
|
179 |
+
<form name="icegram_housekeeping" action="#" method="POST" accept-charset="utf-8">
|
180 |
+
<h2><?php _e( 'Housekeeping', 'icegram' ) ?></h2>
|
181 |
+
<p class="ig_housekeeping">
|
182 |
+
<label for="icegram_remove_shortcodes">
|
183 |
+
<input type="checkbox" name="icegram_remove_shortcodes" value="yes" />
|
184 |
+
<?php _e( 'Remove all Icegram shortcodes', 'icegram' ); ?>
|
185 |
+
</label>
|
186 |
+
<br/><br/>
|
187 |
+
<label for="icegram_remove_all_data">
|
188 |
+
<input type="checkbox" name="icegram_remove_all_data" value="yes" />
|
189 |
+
<?php _e( 'Remove all Icegram campaigns and messages', 'icegram' ); ?>
|
190 |
+
</label>
|
191 |
+
<br/><br/>
|
192 |
+
<img alt="" src="<?php echo admin_url( 'images/wpspin_light.gif' ) ?>" class="ig_loader" style="vertical-align:middle;display:none" />
|
193 |
+
<input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Clean Up', 'icegram' ); ?>">
|
194 |
+
<div id="icegram_housekeeping_response"></div>
|
195 |
+
</p>
|
196 |
+
</form>
|
197 |
+
|
198 |
+
</div>
|
199 |
+
<script type="text/javascript">
|
200 |
+
jQuery(function () {
|
201 |
+
jQuery("form[name=icegram_housekeeping]").submit(function (e) {
|
202 |
+
if(confirm("<?php _e( 'You won\'t be able to recover this data once you proceed. Do you really want to perform this action?', 'icegram' ); ?>") == true){
|
203 |
+
e.preventDefault();
|
204 |
+
jQuery('.ig_loader').show();
|
205 |
+
jQuery('#icegram_housekeeping_response').text("");
|
206 |
+
params = jQuery("form[name=icegram_housekeeping]").serializeArray();
|
207 |
+
params.push( {name: 'action', value: 'icegram_run_housekeeping' });
|
208 |
+
|
209 |
+
jQuery.ajax({
|
210 |
+
method: 'POST',
|
211 |
+
type: 'text',
|
212 |
+
url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
|
213 |
+
data: params,
|
214 |
+
success: function(response) {
|
215 |
+
jQuery('.ig_loader').hide();
|
216 |
+
jQuery('#icegram_housekeeping_response').text("<?php _e('Done!', 'icegram'); ?>");
|
217 |
+
}
|
218 |
+
});
|
219 |
+
}
|
220 |
+
});
|
221 |
+
});
|
222 |
+
</script>
|
223 |
+
<?php
|
224 |
+
}
|
225 |
+
}
|
226 |
+
public function run_housekeeping() {
|
227 |
+
global $wpdb;
|
228 |
+
$params = $_POST;
|
229 |
+
$_POST = array();
|
230 |
+
|
231 |
+
if(!empty($params['icegram_remove_shortcodes']) && $params['icegram_remove_shortcodes'] == 'yes') {
|
232 |
+
// first get all posts with [icegram] shortcode in them
|
233 |
+
$sql = "SELECT * FROM `$wpdb->posts` WHERE `post_content` LIKE '%[icegram %]%' and `post_type` != 'revision' ";
|
234 |
+
$posts = $wpdb->get_results($sql, OBJECT);
|
235 |
+
if ( !empty($posts) && is_array($posts) ) {
|
236 |
+
foreach ($posts as $post) {
|
237 |
+
$post_content = $post->post_content;
|
238 |
+
// remove shortcode with regexp now
|
239 |
+
$re = "/\\[icegram(.)*\\]/i";
|
240 |
+
$post_content = preg_replace($re, '', $post_content);
|
241 |
+
// save post content back
|
242 |
+
if ($post_content && $post_content != $post->post_content) {
|
243 |
+
wp_update_post( array ( 'ID' => $post->ID,
|
244 |
+
'post_content' => $post_content
|
245 |
+
) );
|
246 |
+
}
|
247 |
+
}
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
if(!empty($params['icegram_remove_all_data']) && $params['icegram_remove_all_data'] == 'yes') {
|
252 |
+
$posts = get_posts( array( 'post_type' => array( 'ig_campaign', 'ig_message' ) ) );
|
253 |
+
if ( !empty($posts) && is_array($posts) ) {
|
254 |
+
foreach ($posts as $post) {
|
255 |
+
wp_delete_post( $post->ID, true);
|
256 |
+
}
|
257 |
+
}
|
258 |
+
do_action('icegram_remove_all_data');
|
259 |
+
}
|
260 |
+
$_POST = $params;
|
261 |
+
}
|
262 |
+
|
263 |
public function icegram_event_track() {
|
264 |
|
265 |
if( !empty( $_POST['event_data'] ) ) {
|
309 |
}
|
310 |
|
311 |
function db_update() {
|
|
|
312 |
$current_db_version = get_option( 'icegram_db_version' );
|
313 |
if ( !$current_db_version || version_compare( $current_db_version, '1.2', '<' ) ) {
|
314 |
include( 'updates/icegram-update-1.2.php' );
|
315 |
}
|
|
|
316 |
}
|
317 |
|
318 |
public function admin_menus() {
|
512 |
'powered_by_text' => __( 'Powered by Icegram', 'icegram' )
|
513 |
) );
|
514 |
$messages = apply_filters( 'icegram_messages_to_show', $messages );
|
515 |
+
$icegram = apply_filters( 'icegram_data', array ( 'messages' => array_values( $messages ),
|
516 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
517 |
'preview_id' => !empty( $_GET['campaign_preview_id'] ) ? $_GET['campaign_preview_id'] : '',
|
518 |
'defaults' => $icegram_default
|
519 |
+
));
|
520 |
if (empty($icegram['preview_id'])) {
|
521 |
unset($icegram['preview_id']);
|
522 |
}
|
640 |
global $wpdb;
|
641 |
|
642 |
$message_data = array();
|
643 |
+
$original_message_id_map = array();
|
644 |
$meta_key = $preview ? 'icegram_message_preview_data' : 'icegram_message_data';
|
645 |
$message_data_query = "SELECT post_id, meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key LIKE '$meta_key'";
|
646 |
if ( !empty( $message_ids ) && is_array( $message_ids ) ) {
|
649 |
$wpml_settings = get_option('icl_sitepress_settings');
|
650 |
$original_if_missing = (is_array($wpml_settings) && array_key_exists('show_untranslated_blog_posts', $wpml_settings) && !empty($wpml_settings['show_untranslated_blog_posts']) ) ? true : false;
|
651 |
foreach ($message_ids as $i=>$id ) {
|
652 |
+
$translated = icl_object_id( $id, 'ig_message', $original_if_missing );
|
653 |
+
$message_ids[ $i ] = $translated;
|
654 |
+
$original_message_id_map[ $translated ] = $id;
|
655 |
}
|
656 |
}
|
657 |
$message_ids = array_filter(array_unique($message_ids));
|
660 |
$message_data_results = $wpdb->get_results( $message_data_query, 'ARRAY_A' );
|
661 |
foreach ( $message_data_results as $message_data_result ) {
|
662 |
$message_data[$message_data_result['post_id']] = maybe_unserialize( $message_data_result['meta_value'] );
|
663 |
+
// For WPML compatibility
|
664 |
+
if (!empty( $original_message_id_map[ $message_data_result['post_id'] ])) {
|
665 |
+
$message_data[$message_data_result['post_id']]['original_message_id'] = $original_message_id_map[ $message_data_result['post_id'] ];
|
666 |
+
}
|
667 |
}
|
668 |
}
|
669 |
}
|
727 |
$message_data['campaign_id'] = ($preview_mode) ? $_GET['campaign_preview_id'] : '';
|
728 |
|
729 |
// Pull display time and retargeting rule from campaign if possible
|
730 |
+
$message_id = (!empty($message_data['original_message_id'])) ? $message_data['original_message_id'] : $id;
|
731 |
+
if (!empty($message_campaign_map[ $message_id ])) {
|
732 |
+
$message_data['campaign_id'] = $message_campaign_map[ $message_id ];
|
733 |
$campaign = $valid_campaigns[ $message_data['campaign_id'] ];
|
734 |
if (!empty($campaign) && $campaign instanceof Icegram_Campaign) {
|
735 |
+
$message_meta_from_campaign = $campaign->get_message_meta_by_id( $message_id );
|
736 |
if (!empty($message_meta_from_campaign['time'])) {
|
737 |
$message_data['delay_time'] = $message_meta_from_campaign['time'];
|
738 |
}
|
1143 |
global $post, $wpdb;
|
1144 |
|
1145 |
$obj = get_queried_object();
|
1146 |
+
$id = 0;
|
1147 |
if( !empty( $obj->has_archive ) ) {
|
1148 |
$id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type='page'", $obj->has_archive ) );
|
1149 |
} elseif( is_object( $post ) && isset( $post->ID ) ) {
|
message-types/action-bar/default.css
CHANGED
@@ -113,4 +113,13 @@ div.icegram .action_bar form {
|
|
113 |
}
|
114 |
div.icegram .action_bar input, div.icegram .action_bar label {
|
115 |
display: inline-block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
113 |
}
|
114 |
div.icegram .action_bar input, div.icegram .action_bar label {
|
115 |
display: inline-block;
|
116 |
+
}
|
117 |
+
|
118 |
+
div.icegram .action_bar .clear:after {
|
119 |
+
content: ".";
|
120 |
+
display: block;
|
121 |
+
clear: both;
|
122 |
+
visibility: hidden;
|
123 |
+
line-height: 0;
|
124 |
+
height: 0;
|
125 |
}
|
message-types/action-bar/main.js
CHANGED
@@ -11,7 +11,7 @@ Icegram_Message_Type_Action_Bar.prototype.constructor = Icegram_Message_Type_Act
|
|
11 |
Icegram_Message_Type_Action_Bar.prototype.get_template_default = function () {
|
12 |
return '<div class="icegram action_bar_{{=id}}" >'+
|
13 |
'<div class="action_bar ig_container {{=theme}}" id="icegram_message_{{=id}}">'+
|
14 |
-
'<div class="ig_content">'+
|
15 |
'<div class="ig_arrow_block" id="action_bar_close_{{=id}}">'+
|
16 |
'<span class="ig_arrow"></span>'+
|
17 |
'</div>'+
|
@@ -34,9 +34,6 @@ Icegram_Message_Type_Action_Bar.prototype.post_render = function ( ) {
|
|
34 |
var message_button = this.el.find('.ig_button');
|
35 |
this.el.find('.ig_data').append(message_button);
|
36 |
}
|
37 |
-
if ( this.data.theme == 'air-mail') {
|
38 |
-
this.el.find('.ig_content').css('background-color', this.data.bg_color);
|
39 |
-
}
|
40 |
};
|
41 |
|
42 |
Icegram_Message_Type_Action_Bar.prototype.set_position = function ( ) {
|
@@ -58,7 +55,7 @@ Icegram_Message_Type_Action_Bar.prototype.is_visible = function ( ) {
|
|
58 |
};
|
59 |
|
60 |
Icegram_Message_Type_Action_Bar.prototype.show = function ( options, silent ) {
|
61 |
-
|
62 |
var anim_delay = silent !== true ? 1000 : 0;
|
63 |
switch(this.data.position) {
|
64 |
case "21":
|
@@ -113,7 +110,7 @@ Icegram_Message_Type_Action_Bar.prototype.add_powered_by = function ( pb ) {
|
|
113 |
};
|
114 |
|
115 |
Icegram_Message_Type_Action_Bar.prototype.hide = function ( options, silent ) {
|
116 |
-
|
117 |
var self = this;
|
118 |
var anim_delay = silent !== true ? 1000 : 0;
|
119 |
switch(this.data.position) {
|
11 |
Icegram_Message_Type_Action_Bar.prototype.get_template_default = function () {
|
12 |
return '<div class="icegram action_bar_{{=id}}" >'+
|
13 |
'<div class="action_bar ig_container {{=theme}}" id="icegram_message_{{=id}}">'+
|
14 |
+
'<div class="ig_content clear">'+
|
15 |
'<div class="ig_arrow_block" id="action_bar_close_{{=id}}">'+
|
16 |
'<span class="ig_arrow"></span>'+
|
17 |
'</div>'+
|
34 |
var message_button = this.el.find('.ig_button');
|
35 |
this.el.find('.ig_data').append(message_button);
|
36 |
}
|
|
|
|
|
|
|
37 |
};
|
38 |
|
39 |
Icegram_Message_Type_Action_Bar.prototype.set_position = function ( ) {
|
55 |
};
|
56 |
|
57 |
Icegram_Message_Type_Action_Bar.prototype.show = function ( options, silent ) {
|
58 |
+
if ( this.is_visible() ) return; //TODO:: we are not hiding action bar we are sliding up with css need to check
|
59 |
var anim_delay = silent !== true ? 1000 : 0;
|
60 |
switch(this.data.position) {
|
61 |
case "21":
|
110 |
};
|
111 |
|
112 |
Icegram_Message_Type_Action_Bar.prototype.hide = function ( options, silent ) {
|
113 |
+
if ( !this.is_visible() ) return; //TODO:: need to check this this is not workig for action bar
|
114 |
var self = this;
|
115 |
var anim_delay = silent !== true ? 1000 : 0;
|
116 |
switch(this.data.position) {
|
message-types/action-bar/themes/air-mail.css
CHANGED
@@ -57,42 +57,32 @@
|
|
57 |
.action_bar.air-mail .ig_data {
|
58 |
max-width: 75%;
|
59 |
display: inline-block;
|
|
|
60 |
}
|
61 |
|
62 |
.action_bar.air-mail .ig_button, .action_bar.air-mail input[type="submit"], .action_bar.air-mail input[type="button"] {
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
text-align: center;
|
|
|
66 |
display: inline-block;
|
67 |
-
|
68 |
-
|
69 |
-
white-space: nowrap;
|
70 |
-
border: 2px solid #fff !important;
|
71 |
-
font-weight: 500;
|
72 |
-
font-style: normal;
|
73 |
-
position: relative;
|
74 |
-
-moz-border-radius: 2px;
|
75 |
-
-webkit-border-radius: 2px;
|
76 |
-
border-radius: 2px;
|
77 |
-
padding: .7em 2em;
|
78 |
}
|
79 |
|
80 |
.action_bar.air-mail .ig_button:hover, .action_bar.air-mail input[type="submit"]:hover, .action_bar.air-mail input[type="button"]:hover {
|
81 |
-
|
82 |
-
|
83 |
-
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1);
|
84 |
-
border: 2px solid #4472b9 !important;
|
85 |
}
|
86 |
|
87 |
.action_bar.air-mail .ig_button:active, .action_bar.air-mail input[type="submit"]:active, .action_bar.air-mail input[type="button"]:active {
|
88 |
-
-moz-transform: translate(1px, 4px);
|
89 |
-
-ms-transform: translate(1px, 4px);
|
90 |
-
-o-transform: translate(1px, 4px);
|
91 |
-
-webkit-transform: translate(1px, 4px);
|
92 |
-
transform: translate(1px, 4px);
|
93 |
-
-moz-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);
|
94 |
-
-webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);
|
95 |
-
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);
|
96 |
}
|
97 |
|
98 |
.action_bar.air-mail .ig_close {
|
57 |
.action_bar.air-mail .ig_data {
|
58 |
max-width: 75%;
|
59 |
display: inline-block;
|
60 |
+
float: left;
|
61 |
}
|
62 |
|
63 |
.action_bar.air-mail .ig_button, .action_bar.air-mail input[type="submit"], .action_bar.air-mail input[type="button"] {
|
64 |
+
background: hsl(6, 78%, 57%) !important;
|
65 |
+
-moz-border-radius: 5px;
|
66 |
+
-webkit-border-radius: 5px;
|
67 |
+
border-radius: 5px;
|
68 |
+
border-bottom: 3px solid hsl(6, 63%, 46%);
|
69 |
+
color: hsl(0, 0%, 100%);
|
70 |
+
text-transform: uppercase;
|
71 |
+
font-family: "Open Sans", sans-serif;
|
72 |
+
font-weight: 600;
|
73 |
text-align: center;
|
74 |
+
margin: 0 auto;
|
75 |
display: inline-block;
|
76 |
+
padding: .5em 2em;
|
77 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
.action_bar.air-mail .ig_button:hover, .action_bar.air-mail input[type="submit"]:hover, .action_bar.air-mail input[type="button"]:hover {
|
81 |
+
margin-top: -3px;
|
82 |
+
border-bottom: 6px solid #c0392b;
|
|
|
|
|
83 |
}
|
84 |
|
85 |
.action_bar.air-mail .ig_button:active, .action_bar.air-mail input[type="submit"]:active, .action_bar.air-mail input[type="button"]:active {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
|
88 |
.action_bar.air-mail .ig_close {
|
message-types/action-bar/themes/bold.css
CHANGED
@@ -38,20 +38,19 @@
|
|
38 |
.action_bar.bold .ig_data {
|
39 |
max-width: 75%;
|
40 |
display: inline-block;
|
|
|
41 |
}
|
42 |
|
43 |
.action_bar.bold .ig_button, .action_bar.bold input[type="submit"], .action_bar.bold input[type="button"] {
|
44 |
-
background: hsl(145, 82%, 30%);
|
45 |
-
color: hsl(0, 100%, 100%);
|
46 |
display: inline-block;
|
47 |
font-size: 1em;
|
48 |
letter-spacing: 1px;
|
49 |
vertical-align: text-bottom;
|
50 |
font-weight: 700;
|
51 |
text-align: center;
|
52 |
-
-moz-box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.
|
53 |
-
-webkit-box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.
|
54 |
-
box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.
|
55 |
-moz-border-radius: 3px;
|
56 |
-webkit-border-radius: 3px;
|
57 |
border-radius: 3px;
|
@@ -62,16 +61,13 @@
|
|
62 |
.action_bar.bold .ig_button:active, .action_bar.bold input[type="submit"]:active, .action_bar.bold input[type="button"]:active {
|
63 |
position: relative;
|
64 |
top: 3px;
|
65 |
-
-moz-box-shadow:
|
66 |
-
-webkit-box-shadow:
|
67 |
-
box-shadow:
|
68 |
}
|
69 |
|
70 |
.action_bar.bold .ig_arrow_block.border {
|
71 |
border: 3px solid #fff;
|
72 |
-
-moz-box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
73 |
-
-webkit-box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
74 |
-
box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
75 |
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
76 |
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
77 |
box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
@@ -90,4 +86,4 @@
|
|
90 |
-webkit-border-radius: 0 0 5px 5px;
|
91 |
border-radius: 0 0 5px 5px;
|
92 |
padding: .8em .4em;
|
93 |
-
}
|
38 |
.action_bar.bold .ig_data {
|
39 |
max-width: 75%;
|
40 |
display: inline-block;
|
41 |
+
float: left;
|
42 |
}
|
43 |
|
44 |
.action_bar.bold .ig_button, .action_bar.bold input[type="submit"], .action_bar.bold input[type="button"] {
|
|
|
|
|
45 |
display: inline-block;
|
46 |
font-size: 1em;
|
47 |
letter-spacing: 1px;
|
48 |
vertical-align: text-bottom;
|
49 |
font-weight: 700;
|
50 |
text-align: center;
|
51 |
+
-moz-box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.35), 0 2px 2px rgba(0, 0, 0, 0.25);
|
52 |
+
-webkit-box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.35), 0 2px 2px rgba(0, 0, 0, 0.25);
|
53 |
+
box-shadow: inset 0 -3px 1px rgba(0, 0, 0, 0.35), 0 2px 2px rgba(0, 0, 0, 0.25);
|
54 |
-moz-border-radius: 3px;
|
55 |
-webkit-border-radius: 3px;
|
56 |
border-radius: 3px;
|
61 |
.action_bar.bold .ig_button:active, .action_bar.bold input[type="submit"]:active, .action_bar.bold input[type="button"]:active {
|
62 |
position: relative;
|
63 |
top: 3px;
|
64 |
+
-moz-box-shadow: none;
|
65 |
+
-webkit-box-shadow: none;
|
66 |
+
box-shadow: none;
|
67 |
}
|
68 |
|
69 |
.action_bar.bold .ig_arrow_block.border {
|
70 |
border: 3px solid #fff;
|
|
|
|
|
|
|
71 |
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
72 |
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
73 |
box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
86 |
-webkit-border-radius: 0 0 5px 5px;
|
87 |
border-radius: 0 0 5px 5px;
|
88 |
padding: .8em .4em;
|
89 |
+
}
|
message-types/action-bar/themes/hello.css
CHANGED
@@ -82,9 +82,6 @@
|
|
82 |
|
83 |
.action_bar.hello .ig_arrow_block.border {
|
84 |
border: 3px solid #fff;
|
85 |
-
-moz-box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
86 |
-
-webkit-box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
87 |
-
box-shadow: 0 0 5px hsla(0, 0%, 0%, 0.35);
|
88 |
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
89 |
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
90 |
box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
82 |
|
83 |
.action_bar.hello .ig_arrow_block.border {
|
84 |
border: 3px solid #fff;
|
|
|
|
|
|
|
85 |
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
86 |
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
87 |
box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
|
message-types/action-bar/themes/solid.css
CHANGED
@@ -29,11 +29,10 @@
|
|
29 |
.action_bar.solid .ig_data {
|
30 |
max-width: 75%;
|
31 |
display: inline-block;
|
|
|
32 |
}
|
33 |
|
34 |
.action_bar.solid .ig_button, .action_bar.solid input[type="submit"], .action_bar.solid input[type="button"] {
|
35 |
-
background: #02612B;
|
36 |
-
color: hsl(0, 100%, 100%);
|
37 |
display: inline-block;
|
38 |
font-size: 1em;
|
39 |
letter-spacing: .1em;
|
@@ -46,7 +45,9 @@
|
|
46 |
}
|
47 |
|
48 |
.action_bar.solid .ig_button:hover, .action_bar.solid input[type="submit"]:hover, .action_bar.solid input[type="button"]:hover {
|
49 |
-
|
|
|
|
|
50 |
}
|
51 |
|
52 |
.action_bar.solid.top .ig_arrow_block.border, .action_bar.solid.bottom .ig_arrow_block {
|
29 |
.action_bar.solid .ig_data {
|
30 |
max-width: 75%;
|
31 |
display: inline-block;
|
32 |
+
float: left;
|
33 |
}
|
34 |
|
35 |
.action_bar.solid .ig_button, .action_bar.solid input[type="submit"], .action_bar.solid input[type="button"] {
|
|
|
|
|
36 |
display: inline-block;
|
37 |
font-size: 1em;
|
38 |
letter-spacing: .1em;
|
45 |
}
|
46 |
|
47 |
.action_bar.solid .ig_button:hover, .action_bar.solid input[type="submit"]:hover, .action_bar.solid input[type="button"]:hover {
|
48 |
+
-moz-box-shadow: inset 0 -4em 0 rgba(255, 255, 255, 0.15);
|
49 |
+
-webkit-box-shadow: inset 0 -4em 0 rgba(255, 255, 255, 0.15);
|
50 |
+
box-shadow: inset 0 -4em 0 rgba(255, 255, 255, 0.15);
|
51 |
}
|
52 |
|
53 |
.action_bar.solid.top .ig_arrow_block.border, .action_bar.solid.bottom .ig_arrow_block {
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Icegram ===
|
2 |
Contributors: storeapps, nareshvachhani, niravmehta, ratnakardubey, putler
|
3 |
-
Donate link:http://www.icegram.com/
|
4 |
-
Tags: popup, window, hellobar,
|
5 |
Requires at least: 3.9
|
6 |
-
Tested up to:
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -14,17 +14,24 @@ All in one solution to inspire, convert and engage your audiences. Action bars,
|
|
14 |
|
15 |
**The Ultimate Plugin To Capture Leads And Connect With Your Audience**
|
16 |
|
|
|
|
|
17 |
= Includes: =
|
18 |
* Popups, header / footer bars, notifications, messengers
|
19 |
* Powerful targeting rules
|
20 |
* All-in-one, fully integrated WordPress plugin
|
21 |
* Compatible with auto responders, other plugins and themes
|
22 |
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
24 |
Icegram comes with 20 beautiful themes. They integrate well with your favorite WordPress theme and do not slow down your site. When you want to customize override styling with custom CSS.
|
25 |
|
26 |
-
= Complete Control Over Message Content =
|
27 |
-
Icegram gives you the fully powered WordPress editor for your content. You can use any layout and formatting for content within each message container.
|
28 |
|
29 |
* Continue using powerful **short codes your theme provides** for layout and styling
|
30 |
* Add **HD Videos / Audio or any other multimedia** content
|
@@ -36,6 +43,7 @@ Icegram gives you the fully powered WordPress editor for your content. You can u
|
|
36 |
= Learn More =
|
37 |
|
38 |
* **[Discover all features and see demos on official Icegram website](http://www.icegram.com/)**
|
|
|
39 |
* Follow us on Twitter [@icegram](https://twitter.com/icegram/)
|
40 |
|
41 |
|
@@ -86,6 +94,9 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
|
|
86 |
|
87 |
== Upgrade Notice ==
|
88 |
|
|
|
|
|
|
|
89 |
= 1.3 =
|
90 |
7 premium addons available now. Plus lot of improvements. Recommended upgrade.
|
91 |
|
@@ -103,6 +114,12 @@ Initial Release
|
|
103 |
|
104 |
|
105 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
= 1.3 =
|
108 |
* NEW: 7 Premium add-ons available
|
1 |
=== Icegram ===
|
2 |
Contributors: storeapps, nareshvachhani, niravmehta, ratnakardubey, putler
|
3 |
+
Donate link: http://www.icegram.com/
|
4 |
+
Tags: popup, window, hellobar, optin, lead capture, marketing, header, footer, notification, messenger, targeting, segment, responsive
|
5 |
Requires at least: 3.9
|
6 |
+
Tested up to: 4.0
|
7 |
+
Stable tag: 1.4
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
14 |
|
15 |
**The Ultimate Plugin To Capture Leads And Connect With Your Audience**
|
16 |
|
17 |
+
Decrease bounce rates, increase engagement and grab your visitors' attention with this unique marketing plugin.
|
18 |
+
|
19 |
= Includes: =
|
20 |
* Popups, header / footer bars, notifications, messengers
|
21 |
* Powerful targeting rules
|
22 |
* All-in-one, fully integrated WordPress plugin
|
23 |
* Compatible with auto responders, other plugins and themes
|
24 |
|
25 |
+
[youtube http://www.youtube.com/watch?v=89N0SXDDvOI]
|
26 |
+
|
27 |
+
= Proven to Engage & Convert =
|
28 |
+
Icegram is based on time tested marketing and behavior science principles. Icegram messages have given phenomenal 60% click through rates to people and they never fail to deliver. When you use Icegram, you don't need to learn all those marketing secrets.. Icegram does that for you...
|
29 |
+
|
30 |
+
= Beautiful, Customizable Theme Designs =
|
31 |
Icegram comes with 20 beautiful themes. They integrate well with your favorite WordPress theme and do not slow down your site. When you want to customize override styling with custom CSS.
|
32 |
|
33 |
+
= Complete Control Over Message Delivery & Content =
|
34 |
+
Determine where, when and how to show on-site marketing messages to visitors. Use fine grained targeting rules for niche segmentation. Plus, Icegram gives you the fully powered WordPress editor for your content. You can use any layout and formatting for content within each message container.
|
35 |
|
36 |
* Continue using powerful **short codes your theme provides** for layout and styling
|
37 |
* Add **HD Videos / Audio or any other multimedia** content
|
43 |
= Learn More =
|
44 |
|
45 |
* **[Discover all features and see demos on official Icegram website](http://www.icegram.com/)**
|
46 |
+
* **[Free and paid add-ons](http://www.icegram.com/addons/)**
|
47 |
* Follow us on Twitter [@icegram](https://twitter.com/icegram/)
|
48 |
|
49 |
|
94 |
|
95 |
== Upgrade Notice ==
|
96 |
|
97 |
+
= 1.4 =
|
98 |
+
Many small improvements. Support for analytics added. WordPress 4.0 compatible.
|
99 |
+
|
100 |
= 1.3 =
|
101 |
7 premium addons available now. Plus lot of improvements. Recommended upgrade.
|
102 |
|
114 |
|
115 |
|
116 |
== Changelog ==
|
117 |
+
= 1.4 =
|
118 |
+
* NEW: Targeting Rule: "Exclude pages" from a site wide campaign
|
119 |
+
* NEW: Options to cleanup Icegram data and remove shortcodes from content
|
120 |
+
* NEW: CTA button color is automatically determined based on background color
|
121 |
+
* NEW: FREE Analytics add-on (available from www.icegram.com)
|
122 |
+
* Update: This version is compatible with WordPress 4.0
|
123 |
|
124 |
= 1.3 =
|
125 |
* NEW: 7 Premium add-ons available
|