-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass.frontend.php
More file actions
executable file
·86 lines (73 loc) · 2.21 KB
/
class.frontend.php
File metadata and controls
executable file
·86 lines (73 loc) · 2.21 KB
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
<?php
// Exit If Accessed Directly
if( ! defined( 'ABSPATH' ) ) { exit; }
// I18N
add_action( 'plugins_loaded', function() {
load_plugin_textdomain( 'benchmark-email-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
} );
// JB Tracker
add_action( 'wp_footer', function() {
// Handle Disabled
$tracking_disabled = get_option( 'wpbme_tracking_disable' );
if( $tracking_disabled == 'yes' ) { return; }
// Handle Disconnected
$wpbme_ap_token = get_option( 'wpbme_ap_token' );
if( ! $wpbme_ap_token ) { return; }
// Output Tracker JS
printf(
'
<script type="text/javascript">
var _paq = _paq || [];
( function() {
if( window.apScriptInserted ) { return; }
_paq.push( [ "clientToken", "%s" ] );
var d = document, g = d.createElement( "script" ), s = d.getElementsByTagName( "script" )[0];
g.type = "text/javascript";
g.async = true;
g.defer = true;
g.src = "https://prod.benchmarkemail.com/tracker.bundle.js";
s.parentNode.insertBefore( g, s );
window.apScriptInserted = true;
} )();
</script>
', $wpbme_ap_token
);
} );
// Shortcode
add_shortcode( 'benchmark-email-lite', function( $atts ) {
$form_id = isset( $atts['form_id'] ) ? intval( $atts['form_id'] ) : '';
if( $form_id ) {
return wpbme_frontend::get_signup_form( $form_id );
}
$widget_id = isset( $atts['widget_id'] ) ? intval( $atts['widget_id'] ) : '';
if( $widget_id ) {
$form_id = get_option( 'wpbme_legacy_widget_' . $widget_id );
if( $form_id ) {
return wpbme_frontend::get_signup_form( $form_id );
}
}
} );
// Front End Class
class wpbme_frontend {
// Renders Signup Form
static function get_signup_form( $form_id ) {
// Pull Signup Form From Cache
$option_name = 'wpbme_js_' . $form_id;
$formdata = get_transient( $option_name );
if( $formdata ) {
return $formdata->JSCode;
}
// Pull Signup Form From API
$formdata = wpbme_api::get_form_data( $form_id );
if( empty( $formdata->JSCode ) ) {
return sprintf(
'<p>%s</p>',
__( 'There was an error obtaining the Benchmark signup form.', 'benchmark-email-lite' )
);
}
// Save Signup Form To Cache
set_transient( $option_name, $formdata, 14400 );
// Return Signup Form
return $formdata->JSCode;
}
}