1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245:
<?php
class Inbound_Email_Preview {
static $smartbar_enable;
static $smartbar_content;
static $smartbar_background_color;
static $smartbar_font_color;
static $smartbar_padding;
static $smartbar_js;
static $smartbar_css;
function __construct() {
self::load_hooks();
}
public function load_hooks() {
add_action('mailer/email/header', array(__CLASS__, 'load_header_scripts'), 11);
add_action('mailer/email/footer', array(__CLASS__, 'load_footer_scripts'), 11);
add_filter('single_template', array(__CLASS__, 'load_email'), 11);
}
public static function load_header_scripts() {
global $post;
self::$smartbar_enable = get_field("smartbar_enable", $post->ID);
self::$smartbar_content = str_replace( array("\n" , "\t" ) , "" , get_field("smartbar_content", $post->ID ) );
self::$smartbar_content = stripslashes( self::$smartbar_content );
self::$smartbar_content = str_replace( "'" , '"' , self::$smartbar_content );
self::$smartbar_content = addslashes( self::$smartbar_content );
self::$smartbar_background_color = get_field("smartbar_background_color", $post->ID );
self::$smartbar_font_color = get_field("smartbar_font_color", $post->ID );
self::$smartbar_padding = get_field("smartbar_padding", $post->ID );
self::$smartbar_css = str_replace( array("\n" , "\t" ) , "" , strip_tags(get_field("smartbar_css", $post->ID )));
self::$smartbar_js = get_field("smartbar_js", $post->ID );
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<?php if (!self::$smartbar_enable) {
return;
}
?>
<style type="text/css">
nav {
transition: all .1s ease-in-out .1s;
color:
padding: 0;
width: 100%;
position: fixed;
display:inline-flex;
}
<?php
if (self::$smartbar_background_color) : ?>
nav {
background-color: self::$smartbar_background_color;
}
<?php endif ?>
body {
padding:0px;
margin:0px;
}
</style>
<?php
}
public static function load_footer_scripts() {
do_action('wp_enqueue_scripts');
global $wp_scripts;
if (isset($wp_scripts->registered['inbound-analytics'])) {
if (isset($wp_scripts->registered['inbound-analytics']->extra['data'])) {
echo '<script type="text/javascript">';
echo $wp_scripts->registered['inbound-analytics']->extra['data'];
echo '</script>';
}
echo '<script src="'.$wp_scripts->registered['inbound-analytics']->src.'"></script>';
}
if (!self::$smartbar_enable) {
return;
}
?>
<script type="text/javascript">
var Subscribe = (function () {
var smartbar_content,
smartbar_css,
smartbar_font_color,
smartbar_background_color,
smartbar_padding;
var methods = {
init: function () {
Subscribe.setupVars();
Subscribe.addListeners();
Subscribe.createNav();
},
setupVars: function () {
Subscribe.smartbar_content = JSON.parse('<?php echo json_encode(array('html'=>self::$smartbar_content) ); ?>');
Subscribe.smartbar_css = JSON.parse('<?php echo json_encode(array('text'=>self::$smartbar_css) ); ?>');
Subscribe.smartbar_font_color = <?php echo json_encode(self::$smartbar_font_color ); ?>;
Subscribe.smartbar_background_color = <?php echo json_encode(self::$smartbar_background_color ); ?>;
},
addListeners: function () {
},
createNav: function () {
var nav = jQuery("<nav></nav>").attr('class', 'subscribe-container');
var prompt = jQuery("<div></div>").attr('class', 'subscribe-prompt').html(Subscribe.smartbar_content.html);
var content = jQuery("<div></div>").attr('class', 'subscribe-content');
var css = jQuery("<style></style>").text(Subscribe.smartbar_css.text);
var browser_link = jQuery('.view-in-browser').hide();
nav.prepend(prompt);
nav.prepend(content);
nav.prepend(content);
jQuery('body').prepend(css);
jQuery('body').prepend(nav);
Subscribe.stickNav();
},
stickNav: function () {
var lastScrollTop = 0,
header = jQuery('nav'),
headerHeight = header.height();
header.css( 'margin-bottom' ,headerHeight+'px' );
jQuery(window).scroll(function () {
var scrollTop = jQuery(window).scrollTop()
jQuery('.scrollTop').html(scrollTop);
if (scrollTop > lastScrollTop) {
header.css('top','-'+headerHeight+'px')
} else {
header.css('top','0px')
}
lastScrollTop = scrollTop;
});
},
expandNav: function () {
},
collapseNav: function () {
}
}
return methods;
})();
Subscribe.init();
</script>
<?php
}
public static function load_email($template) {
global $wp_query, $post, $query_string, $Inbound_Mailer_Variations;
if ($post->post_type != "inbound-email") {
return $template;
}
Inbound_Mailer_Load_Templates();
$vid = $Inbound_Mailer_Variations->get_current_variation_id();
$template = $Inbound_Mailer_Variations->get_current_template($post->ID, $vid);
if (!isset($template)) {
error_log('Template not selected for variation');
return $template;
}
if (file_exists(INBOUND_EMAIL_PATH . 'templates/' . $template . '/index.php')) {
return INBOUND_EMAIL_PATH . 'templates/' . $template . '/index.php';
} else if (file_exists(INBOUND_EMAIL_UPLOADS_PATH . $template . '/index.php')) {
return INBOUND_EMAIL_UPLOADS_PATH . $template . '/index.php';
} else if (file_exists(INBOUND_EMAIL_THEME_TEMPLATES_PATH . $template . '/index.php')) {
return INBOUND_EMAIL_THEME_TEMPLATES_PATH . $template . '/index.php';
}
return $template;
}
}
$Inbound_Email_Preview = new Inbound_Email_Preview();