Version Description
- Security Patch
Download this release
Release Info
Developer | DavidWells |
Plugin | WordPress Landing Pages |
Version | 1.7.8 |
Comparing to | |
See all releases |
Code changes from version 1.7.7 to 1.7.8
- classes/class.activation.php +3 -0
- classes/class.branching.php +45 -0
- landing-pages.php +3 -2
- readme.txt +4 -2
- shared/classes/class.branching.php +297 -0
- shared/classes/class.load-shared.php +2 -0
- shared/classes/class.options-api.php +40 -0
- shared/shortcodes/js/shortcodes.js +28 -7
- shared/shortcodes/preview.php +16 -9
classes/class.activation.php
CHANGED
@@ -41,6 +41,9 @@ class Landing_Pages_Activation {
|
|
41 |
|
42 |
/* Activate shared components */
|
43 |
self::activate_shared();
|
|
|
|
|
|
|
44 |
|
45 |
}
|
46 |
|
41 |
|
42 |
/* Activate shared components */
|
43 |
self::activate_shared();
|
44 |
+
|
45 |
+
/* Run additional actions */
|
46 |
+
do_action( 'activate_landing_pages' );
|
47 |
|
48 |
}
|
49 |
|
classes/class.branching.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !class_exists('Landing_Pages_Branching') ) {
|
4 |
+
|
5 |
+
class Landing_Pages_Branching {
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Load class instance
|
10 |
+
*/
|
11 |
+
public function __construct() {
|
12 |
+
self::load_hooks();
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Load hooks and filters
|
17 |
+
*/
|
18 |
+
public static function load_hooks() {
|
19 |
+
|
20 |
+
/* adds branching capabilities to branching API for landing pages */
|
21 |
+
add_filter( 'inbound_plugin_branches' , array( __CLASS__ , 'add_branches' ) , 10 , 1 );
|
22 |
+
|
23 |
+
/* reset active branch during svn update */
|
24 |
+
//add_action( 'activate_landing_pages' , array( __CLASS__ , 'reset_branch_status' ) , 10 , 1 );
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Add branches to branching api for landing pages plugin
|
29 |
+
*
|
30 |
+
*/
|
31 |
+
public static function add_branches( $branches ) {
|
32 |
+
$branches['landing-pages'] = array(
|
33 |
+
'git' => 'https://codeload.github.com/inboundnow/landing-pages/zip/master',
|
34 |
+
'svn' => 'https://codeload.github.com/inboundnow/landing-pages/zip/master'
|
35 |
+
//'svn' => 'https://downloads.wordpress.org/plugin/landing-pages.'.LANDINGPAGES_CURRENT_VERSION.'.zip'
|
36 |
+
);
|
37 |
+
|
38 |
+
return $branches;
|
39 |
+
}
|
40 |
+
|
41 |
+
|
42 |
+
}
|
43 |
+
|
44 |
+
$GLOBALS['Landing_Pages_Branching'] = new Landing_Pages_Branching;
|
45 |
+
}
|
landing-pages.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Landing Pages
|
4 |
Plugin URI: http://www.inboundnow.com/landing-pages/
|
5 |
Description: The first true all-in-one Landing Page solution for WordPress, including ongoing conversion metrics, a/b split testing, unlimited design options and so much more!
|
6 |
-
Version: 1.7.
|
7 |
Author: Inbound Now
|
8 |
Author URI: http://www.inboundnow.com/
|
9 |
Text Domain: landing-pages
|
@@ -102,7 +102,7 @@ if (!class_exists('Inbound_Landing_Pages_Plugin')) {
|
|
102 |
*/
|
103 |
private static function load_constants() {
|
104 |
|
105 |
-
define('LANDINGPAGES_CURRENT_VERSION', '1.7.
|
106 |
define('LANDINGPAGES_URLPATH', plugins_url( '/' , __FILE__ ) );
|
107 |
define('LANDINGPAGES_PATH', WP_PLUGIN_DIR.'/'.plugin_basename( dirname(__FILE__) ).'/' );
|
108 |
define('LANDINGPAGES_PLUGIN_SLUG', plugin_basename( dirname(__FILE__) ) );
|
@@ -152,6 +152,7 @@ if (!class_exists('Inbound_Landing_Pages_Plugin')) {
|
|
152 |
include_once('modules/module.templates.php');
|
153 |
include_once('modules/module.store.php');
|
154 |
include_once('modules/module.customizer.php');
|
|
|
155 |
|
156 |
BREAK;
|
157 |
|
3 |
Plugin Name: Landing Pages
|
4 |
Plugin URI: http://www.inboundnow.com/landing-pages/
|
5 |
Description: The first true all-in-one Landing Page solution for WordPress, including ongoing conversion metrics, a/b split testing, unlimited design options and so much more!
|
6 |
+
Version: 1.7.8
|
7 |
Author: Inbound Now
|
8 |
Author URI: http://www.inboundnow.com/
|
9 |
Text Domain: landing-pages
|
102 |
*/
|
103 |
private static function load_constants() {
|
104 |
|
105 |
+
define('LANDINGPAGES_CURRENT_VERSION', '1.7.8' );
|
106 |
define('LANDINGPAGES_URLPATH', plugins_url( '/' , __FILE__ ) );
|
107 |
define('LANDINGPAGES_PATH', WP_PLUGIN_DIR.'/'.plugin_basename( dirname(__FILE__) ).'/' );
|
108 |
define('LANDINGPAGES_PLUGIN_SLUG', plugin_basename( dirname(__FILE__) ) );
|
152 |
include_once('modules/module.templates.php');
|
153 |
include_once('modules/module.store.php');
|
154 |
include_once('modules/module.customizer.php');
|
155 |
+
//include_once('classes/class.branching.php');
|
156 |
|
157 |
BREAK;
|
158 |
|
readme.txt
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
=== WordPress Landing Pages ===
|
2 |
|
3 |
-
Contributors: David Wells,
|
4 |
Donate link: mailto:marketplace@inboundnow.com
|
5 |
License: GPLv2 or later
|
6 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
7 |
Tags: landing pages, inbound marketing, conversion pages, split testing, a b test, a b testing, a/b test, a/b testing, coming soon page, email list, landing page, list building, maintenance page, squeeze page, inbound now, landing-pages, splash pages, cpa, click tracking, goal tracking, analytics, free landing page templates
|
8 |
Requires at least: 3.8
|
9 |
Tested up to: 4.1
|
10 |
-
Stable Tag: 1.7.
|
11 |
|
12 |
Create landing pages for your WordPress site. Monitor and improve conversion rates, run A/B split tests, customize your own templates and more.
|
13 |
|
@@ -72,6 +72,8 @@ The plugin is also fully extendable and has a number of actions, filters, and ho
|
|
72 |
4. Choose from a ton of pre-made templates, use your existing design, or design your own theme!
|
73 |
|
74 |
== Changelog ==
|
|
|
|
|
75 |
|
76 |
= 1.7.7 =
|
77 |
* Fix double lead notification email
|
1 |
=== WordPress Landing Pages ===
|
2 |
|
3 |
+
Contributors: David Wells, Hudson Atwell
|
4 |
Donate link: mailto:marketplace@inboundnow.com
|
5 |
License: GPLv2 or later
|
6 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
7 |
Tags: landing pages, inbound marketing, conversion pages, split testing, a b test, a b testing, a/b test, a/b testing, coming soon page, email list, landing page, list building, maintenance page, squeeze page, inbound now, landing-pages, splash pages, cpa, click tracking, goal tracking, analytics, free landing page templates
|
8 |
Requires at least: 3.8
|
9 |
Tested up to: 4.1
|
10 |
+
Stable Tag: 1.7.8
|
11 |
|
12 |
Create landing pages for your WordPress site. Monitor and improve conversion rates, run A/B split tests, customize your own templates and more.
|
13 |
|
72 |
4. Choose from a ton of pre-made templates, use your existing design, or design your own theme!
|
73 |
|
74 |
== Changelog ==
|
75 |
+
= 1.7.8 =
|
76 |
+
* Security Patch
|
77 |
|
78 |
= 1.7.7 =
|
79 |
* Fix double lead notification email
|
shared/classes/class.branching.php
ADDED
@@ -0,0 +1,297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !class_exists('Inbound_Branching') ) {
|
4 |
+
|
5 |
+
class Inbound_Branching {
|
6 |
+
|
7 |
+
static $plugins; /* placeholder for dataset of plugins to apply developer mode too */
|
8 |
+
static $plugin; /* placeholder for plugin being processed */
|
9 |
+
static $branch; /* placeholder for current loaded branch */
|
10 |
+
static $plugin_data; /* array version of api response containing plugin data */
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Load class instance
|
14 |
+
*/
|
15 |
+
public function __construct() {
|
16 |
+
self::load_static_vars();
|
17 |
+
self::load_hooks();
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Load static vars
|
22 |
+
*/
|
23 |
+
public static function load_static_vars() {
|
24 |
+
self::$plugins = apply_filters( 'inbound_plugin_branches' , array() );
|
25 |
+
}
|
26 |
+
/**
|
27 |
+
* Load hooks and filters
|
28 |
+
*
|
29 |
+
*/
|
30 |
+
private static function load_hooks() {
|
31 |
+
/* add controls */
|
32 |
+
add_filter('plugin_action_links', array( __CLASS__ , 'add_plugin_options' ) , 20 , 2);
|
33 |
+
|
34 |
+
/* enqueue js includes */
|
35 |
+
add_action( 'admin_enqueue_scripts', array( __CLASS__ , 'enqueue_admin_scripts' ) );
|
36 |
+
|
37 |
+
/* add js listeners */
|
38 |
+
add_action( 'admin_print_footer_scripts', array( __CLASS__ , 'print_js_css' ) );
|
39 |
+
|
40 |
+
/* Adds listener to save email data */
|
41 |
+
add_action( 'wp_ajax_inbound_toggle_branch', array( __CLASS__ , 'toggle_branch' ) );
|
42 |
+
}
|
43 |
+
|
44 |
+
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Adds version control options to plugin links
|
48 |
+
*/
|
49 |
+
public static function add_plugin_options( $links, $plugin ) {
|
50 |
+
/* get plugin slug */
|
51 |
+
$parts = explode( '/', $plugin );
|
52 |
+
|
53 |
+
/* set current plugin being processed */
|
54 |
+
self::$plugin = $parts[0];
|
55 |
+
|
56 |
+
/* if array is not in our processing queue then skip */
|
57 |
+
if ( !array_key_exists( self::$plugin , self::$plugins ) ) {
|
58 |
+
return $links;
|
59 |
+
}
|
60 |
+
|
61 |
+
/* determine if plugin is currently github branch or svn branch */
|
62 |
+
self::get_current_branch();
|
63 |
+
|
64 |
+
/* generate branch toggle button */
|
65 |
+
$links['toggle'] = self::generate_version_toggle();
|
66 |
+
|
67 |
+
//echo self::$plugin;
|
68 |
+
return $links;
|
69 |
+
}
|
70 |
+
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Look in in options api to determine current branch
|
74 |
+
*/
|
75 |
+
public static function get_current_branch() {
|
76 |
+
self::$branch = Inbound_Options_API::get_option( 'inbound-branching' , self::$plugin , 'svn' );
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Store current branch URL in options api
|
81 |
+
*/
|
82 |
+
public static function set_current_branch() {
|
83 |
+
self::$branch = Inbound_Options_API::update_option( 'inbound-branching' , self::$plugin , self::$branch );
|
84 |
+
}
|
85 |
+
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Generate switch version dropdown button
|
89 |
+
*/
|
90 |
+
public static function generate_version_toggle() {
|
91 |
+
if ( self::$branch == 'svn' ) {
|
92 |
+
$class = "switch-versions button-primary primary";
|
93 |
+
$switch_to = "git";
|
94 |
+
$title = __( 'Switch to beta mode' , 'inbound-pro' );
|
95 |
+
$button_text = __( 'Enable Beta Mode' , 'inbound-pro' );
|
96 |
+
} else {
|
97 |
+
$class = "switch-versions button-primary primary";
|
98 |
+
$switch_to = "svn";
|
99 |
+
$title = __( 'Switch to latest stable release.' , 'inbound-pro' );
|
100 |
+
$button_text = __( 'Disable Beta' , 'inbound-pro' );
|
101 |
+
}
|
102 |
+
return '<span class="'.$class.'" id="'.self::$plugin.'-toggle" data-branch="'.$switch_to.'" data-plugin="'.self::$plugin.'" title="'.$title.'">'. $button_text .' <div class="spinner" id="spinner-'.self::$plugin.'-toggle"></span></div>';
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Enqueues JS
|
107 |
+
*/
|
108 |
+
public static function enqueue_admin_scripts() {
|
109 |
+
|
110 |
+
$screen = get_current_screen();
|
111 |
+
|
112 |
+
if ( $screen->base != 'plugins' ) {
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
|
116 |
+
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Print JS Listners for Switching Plugins
|
121 |
+
*/
|
122 |
+
public static function print_js_css() {
|
123 |
+
|
124 |
+
$screen = get_current_screen();
|
125 |
+
|
126 |
+
if ( $screen->base != 'plugins' ) {
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
|
130 |
+
|
131 |
+
?>
|
132 |
+
<script>
|
133 |
+
jQuery( 'document' ).ready( function() {
|
134 |
+
|
135 |
+
jQuery( '.switch-versions' ).on( 'click' , function() {
|
136 |
+
|
137 |
+
var result = confirm("<?php _e('Are you sure you want toggle beta mode on/off.' , 'inbound-pro' ); ?>");
|
138 |
+
|
139 |
+
if (!result) {
|
140 |
+
return;
|
141 |
+
}
|
142 |
+
|
143 |
+
/* get download url */
|
144 |
+
var branch = jQuery( '#' + this.id ).data( 'branch' );
|
145 |
+
var plugin = jQuery( '#' + this.id ).data( 'plugin' );
|
146 |
+
|
147 |
+
/* toggle spinner */
|
148 |
+
jQuery('#spinner-'+this.id).show();
|
149 |
+
|
150 |
+
/* run ajax to replace plugin */
|
151 |
+
jQuery.ajax({
|
152 |
+
type: "POST",
|
153 |
+
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
|
154 |
+
data: {
|
155 |
+
action: 'inbound_toggle_branch',
|
156 |
+
plugin: plugin,
|
157 |
+
branch : branch
|
158 |
+
},
|
159 |
+
dataType: 'html',
|
160 |
+
timeout: 200000,
|
161 |
+
success: function (response) {
|
162 |
+
if ( response == 1 ) {
|
163 |
+
|
164 |
+
/* toggle spinner */
|
165 |
+
jQuery('#spinner-'+this.id).show();
|
166 |
+
|
167 |
+
/* reload page */
|
168 |
+
location.reload();
|
169 |
+
|
170 |
+
} else {
|
171 |
+
alert( response );
|
172 |
+
|
173 |
+
/* toggle spinner */
|
174 |
+
jQuery('#spinner-'+this.id).show();
|
175 |
+
}
|
176 |
+
},
|
177 |
+
error: function(request, status, err) {
|
178 |
+
alert(status);
|
179 |
+
}
|
180 |
+
});
|
181 |
+
|
182 |
+
|
183 |
+
});
|
184 |
+
|
185 |
+
});
|
186 |
+
</script>
|
187 |
+
<style>
|
188 |
+
.row-actions .version-dropdown {
|
189 |
+
font-size:10px;
|
190 |
+
height:19px;
|
191 |
+
}
|
192 |
+
|
193 |
+
body .toggle .switch-versions {
|
194 |
+
vertical-align:top;
|
195 |
+
font-size:10px;
|
196 |
+
height:23px;
|
197 |
+
line-height:21px;
|
198 |
+
}
|
199 |
+
</style>
|
200 |
+
<?php
|
201 |
+
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Ajax listener to delete current plugin and replace it's files with selected branch.
|
206 |
+
*/
|
207 |
+
public static function toggle_branch() {
|
208 |
+
if ( ! current_user_can('delete_plugins') ) {
|
209 |
+
wp_die(__('You do not have sufficient permissions to delete plugins for this site.'));
|
210 |
+
}
|
211 |
+
|
212 |
+
/* load plugins */
|
213 |
+
self::load_static_vars();
|
214 |
+
|
215 |
+
/* load pclzip */
|
216 |
+
include_once( ABSPATH . '/wp-admin/includes/class-pclzip.php');
|
217 |
+
|
218 |
+
self::$branch = $_POST['branch'];
|
219 |
+
self::$plugin = $_POST['plugin'];
|
220 |
+
$branch_url = self::$plugins[ self::$plugin ][ self::$branch ];
|
221 |
+
|
222 |
+
|
223 |
+
/* get plugin path */
|
224 |
+
$plugin_path = WP_PLUGIN_DIR . '/' . self::$plugin;
|
225 |
+
|
226 |
+
/* get files in plugin directory currently */
|
227 |
+
self::delete_plugin_folder( $plugin_path );
|
228 |
+
|
229 |
+
/* create temp file */
|
230 |
+
$temp_file = tempnam('/tmp', 'TEMPPLUGIN' );
|
231 |
+
|
232 |
+
/* get zip file contents from svn */
|
233 |
+
$ch = curl_init();
|
234 |
+
curl_setopt($ch, CURLOPT_URL, $branch_url);
|
235 |
+
curl_setopt($ch, CURLOPT_HEADER, false);
|
236 |
+
curl_setopt($ch, CURLOPT_FAILONERROR, true);
|
237 |
+
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
|
238 |
+
curl_setopt($ch, CURLOPT_BINARYTRANSFER,true);
|
239 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
240 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
241 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
242 |
+
$file = curl_exec($ch);
|
243 |
+
curl_close($ch);
|
244 |
+
|
245 |
+
/* write zip file to temp file */
|
246 |
+
$handle = fopen($temp_file, "w");
|
247 |
+
fwrite($handle, $file);
|
248 |
+
fclose($handle);
|
249 |
+
|
250 |
+
|
251 |
+
/* extract temp file to plugins direction */
|
252 |
+
$archive = new PclZip($temp_file);
|
253 |
+
if (self::$branch == 'git') {
|
254 |
+
$result = $archive->extract( PCLZIP_OPT_REMOVE_PATH, self::$plugin.'-master' , PCLZIP_OPT_PATH, $plugin_path , PCLZIP_OPT_REPLACE_NEWER );
|
255 |
+
} else {
|
256 |
+
$result = $archive->extract( PCLZIP_OPT_PATH, WP_PLUGIN_DIR , PCLZIP_OPT_REPLACE_NEWER );
|
257 |
+
}
|
258 |
+
|
259 |
+
if ($result == 0) {
|
260 |
+
die("Error : ".$archive->errorInfo(true));
|
261 |
+
}
|
262 |
+
|
263 |
+
/* delete templ file */
|
264 |
+
unlink($temp_file);
|
265 |
+
|
266 |
+
/* set current branch into memory */
|
267 |
+
self::set_current_branch( self::$branch );
|
268 |
+
|
269 |
+
header('HTTP/1.1 200 OK');
|
270 |
+
echo 1;
|
271 |
+
exit;
|
272 |
+
}
|
273 |
+
|
274 |
+
/**
|
275 |
+
* deletes plugin folder
|
276 |
+
*/
|
277 |
+
public static function delete_plugin_folder($dirPath) {
|
278 |
+
if (is_dir($dirPath)) {
|
279 |
+
$objects = scandir($dirPath);
|
280 |
+
foreach ($objects as $object) {
|
281 |
+
if ($object != "." && $object !="..") {
|
282 |
+
if (filetype($dirPath . DIRECTORY_SEPARATOR . $object) == "dir") {
|
283 |
+
self::delete_plugin_folder($dirPath . DIRECTORY_SEPARATOR . $object);
|
284 |
+
} else {
|
285 |
+
unlink($dirPath . DIRECTORY_SEPARATOR . $object);
|
286 |
+
}
|
287 |
+
}
|
288 |
+
}
|
289 |
+
reset($objects);
|
290 |
+
rmdir($dirPath);
|
291 |
+
}
|
292 |
+
|
293 |
+
}
|
294 |
+
}
|
295 |
+
|
296 |
+
$GLOBALS['Inbound_Branching'] = new Inbound_Branching;
|
297 |
+
}
|
shared/classes/class.load-shared.php
CHANGED
@@ -51,6 +51,8 @@ if (!class_exists('Inbound_Load_Shared')) {
|
|
51 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.lead-fields.php');
|
52 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.inbound-forms.akismet.php');
|
53 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.welcome.php');
|
|
|
|
|
54 |
|
55 |
//include_once( INBOUDNOW_SHARED_PATH . 'tracking/store.lead.php'); // Lead Storage from landing pages
|
56 |
|
51 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.lead-fields.php');
|
52 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.inbound-forms.akismet.php');
|
53 |
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.welcome.php');
|
54 |
+
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.branching.php');
|
55 |
+
include_once( INBOUDNOW_SHARED_PATH . 'classes/class.options-api.php');
|
56 |
|
57 |
//include_once( INBOUDNOW_SHARED_PATH . 'tracking/store.lead.php'); // Lead Storage from landing pages
|
58 |
|
shared/classes/class.options-api.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! class_exists( 'Inbound_Options_API' ) ) {
|
3 |
+
|
4 |
+
class Inbound_Options_API {
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Gets option value in name space object
|
8 |
+
*/
|
9 |
+
public static function get_option( $namespace , $key , $default = null ) {
|
10 |
+
$options = json_decode( stripslashes( get_option( $namespace ) ) , true ) ;
|
11 |
+
|
12 |
+
if (!isset( $options[ $key ] )) {
|
13 |
+
add_option( $namespace , '', '', 'no' );
|
14 |
+
return $default;
|
15 |
+
} else {
|
16 |
+
return $options[ $key ];
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Updates option value in name space object
|
22 |
+
*/
|
23 |
+
public static function update_option( $namespace , $key , $value ) {
|
24 |
+
|
25 |
+
$options = json_decode( stripslashes( get_option( $namespace ) ) , true ) ;
|
26 |
+
|
27 |
+
if (!$options) {
|
28 |
+
add_option( $namespace , '', '', 'no' );
|
29 |
+
$options = array();
|
30 |
+
}
|
31 |
+
|
32 |
+
$options[$key] = $value;
|
33 |
+
|
34 |
+
update_option( $namespace , json_encode( $options ) );
|
35 |
+
}
|
36 |
+
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
}
|
shared/shortcodes/js/shortcodes.js
CHANGED
@@ -625,11 +625,16 @@
|
|
625 |
alert("Please Insert a Form Name!");
|
626 |
jQuery("#inbound_shortcode_form_name").addClass('need-value').focus();
|
627 |
} else {
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
|
|
|
|
|
|
|
|
|
|
633 |
action: 'inbound_form_save',
|
634 |
name: form_name,
|
635 |
shortcode: shortcode_value,
|
@@ -646,7 +651,23 @@
|
|
646 |
email_contents: email_contents,
|
647 |
redirect_value: redirect_value,
|
648 |
nonce: shortcode_nonce_val
|
649 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
|
651 |
success: function (data) {
|
652 |
var self = this;
|
@@ -964,7 +985,7 @@
|
|
964 |
wp = retString;
|
965 |
}
|
966 |
jQuery(document).ready( function() {
|
967 |
-
var wp = wp || {};
|
968 |
setTimeout(function() {
|
969 |
setGlobalwp(wp);
|
970 |
}, 300);
|
625 |
alert("Please Insert a Form Name!");
|
626 |
jQuery("#inbound_shortcode_form_name").addClass('need-value').focus();
|
627 |
} else {
|
628 |
+
function killBadGuys(str) {
|
629 |
+
if (typeof str === 'string') {
|
630 |
+
if(str.indexOf('<script') != -1){
|
631 |
+
return 'bad';
|
632 |
+
} else {
|
633 |
+
return 'good';
|
634 |
+
}
|
635 |
+
}
|
636 |
+
}
|
637 |
+
var payload = {
|
638 |
action: 'inbound_form_save',
|
639 |
name: form_name,
|
640 |
shortcode: shortcode_value,
|
651 |
email_contents: email_contents,
|
652 |
redirect_value: redirect_value,
|
653 |
nonce: shortcode_nonce_val
|
654 |
+
};
|
655 |
+
|
656 |
+
for (var key in payload) {
|
657 |
+
//console.log( payload[key] );
|
658 |
+
var test = killBadGuys( payload[key] );
|
659 |
+
console.log(test);
|
660 |
+
console.log(payload[key]);
|
661 |
+
if( test === "bad") {
|
662 |
+
return false;
|
663 |
+
}
|
664 |
+
}
|
665 |
+
console.log('run');
|
666 |
+
jQuery.ajax({
|
667 |
+
type: 'POST',
|
668 |
+
url: ajaxurl,
|
669 |
+
context: this,
|
670 |
+
data: payload,
|
671 |
|
672 |
success: function (data) {
|
673 |
var self = this;
|
985 |
wp = retString;
|
986 |
}
|
987 |
jQuery(document).ready( function() {
|
988 |
+
var wp = wp || {};
|
989 |
setTimeout(function() {
|
990 |
setGlobalwp(wp);
|
991 |
}, 300);
|
shared/shortcodes/preview.php
CHANGED
@@ -67,15 +67,22 @@ $horiz = "<h2 title='Open preview in new tab' class='open_new_tab'>Horizontal Pr
|
|
67 |
|
68 |
<?php // FIX THESE AND ROLL SHARE TRACKING INTO SHARED
|
69 |
wp_enqueue_script( 'jquery' );
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
wp_head();
|
80 |
?>
|
81 |
<style type="text/css">
|
67 |
|
68 |
<?php // FIX THESE AND ROLL SHARE TRACKING INTO SHARED
|
69 |
wp_enqueue_script( 'jquery' );
|
70 |
+
|
71 |
+
wp_enqueue_script( 'funnel-tracking' , $final_path . 'shared/assets/frontend/js/analytics/inboundAnalytics.js');
|
72 |
+
$inbound_localized_data = array('post_id' => 'test',
|
73 |
+
'ip_address' => 'test',
|
74 |
+
'wp_lead_data' => 'test',
|
75 |
+
'admin_url' => 'test',
|
76 |
+
'track_time' => 'test',
|
77 |
+
'post_type' => 'test',
|
78 |
+
'page_tracking' => 'test',
|
79 |
+
'search_tracking' => 'test',
|
80 |
+
'comment_tracking' => 'test',
|
81 |
+
'custom_mapping' => 'test',
|
82 |
+
'inbound_track_exclude' => 'test',
|
83 |
+
'inbound_track_include' => 'test'
|
84 |
+
);
|
85 |
+
wp_localize_script( 'funnel-tracking' , 'inbound_settings', $inbound_localized_data);
|
86 |
wp_head();
|
87 |
?>
|
88 |
<style type="text/css">
|