Version Description
Download this release
Release Info
Developer | unbouncewordpress |
Plugin | Unbounce Landing Pages |
Version | 1.0.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.2 to 1.0.3
- UBConfig.php +65 -59
- UBDiagnostics.php +72 -0
- UBLogger.php +35 -29
- Unbounce-Page.php +57 -4
- css/unbounce-pages.css +12 -0
- js/unbounce-page.js +7 -0
- readme.txt +1 -1
UBConfig.php
CHANGED
@@ -12,8 +12,8 @@ class UBConfig {
|
|
12 |
const UB_AUTHORIZED_DOMAINS_KEY = 'ub-authorized-domains';
|
13 |
const UB_HAS_AUTHORIZED_KEY = 'ub-has-authorized';
|
14 |
const UB_CACHE_TIMEOUT_ENV_KEY = 'UB_WP_ROUTES_CACHE_EXP';
|
15 |
-
const UB_USER_AGENT = 'Unbounce WP Plugin 1.0.
|
16 |
-
const UB_VERSION = '1.0.
|
17 |
|
18 |
public static function default_page_server_domain() {
|
19 |
$domain = getenv('UB_PAGE_SERVER_DOMAIN');
|
@@ -81,71 +81,76 @@ class UBConfig {
|
|
81 |
return array('FAILURE', null, null, null);
|
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 |
else {
|
134 |
-
|
135 |
-
UBLogger::warning("An error occurred while processing routes, XML errors: '$errors'");
|
136 |
return array('FAILURE', null, null, null);
|
137 |
}
|
138 |
-
}
|
139 |
-
|
140 |
-
UBLogger::debug("Routes have not changed, HTTP code: '$http_code'");
|
141 |
-
return array('SAME', $etag, $max_age, null);
|
142 |
-
}
|
143 |
-
if ($http_code == 404) {
|
144 |
-
UBLogger::debug("No routes to retrieve, HTTP code: '$http_code'");
|
145 |
-
return array('NONE', null, null, null);
|
146 |
-
}
|
147 |
-
else {
|
148 |
-
UBLogger::warning("An error occurred while retrieving routes; HTTP code: '$http_code'; Error: " . $curl_error);
|
149 |
return array('FAILURE', null, null, null);
|
150 |
}
|
151 |
}
|
@@ -239,14 +244,15 @@ class UBConfig {
|
|
239 |
}
|
240 |
|
241 |
$domain_info['proxyable_url_set_fetched_at'] = $current_time;
|
|
|
242 |
$domains_info[$domain] = $domain_info;
|
243 |
$options_setter(UBConfig::UB_ROUTES_CACHE_KEY, $domains_info);
|
244 |
}
|
245 |
|
246 |
-
|
247 |
return UBUtil::array_select_by_key($domain_info,
|
248 |
array('proxyable_url_set',
|
249 |
-
'proxyable_url_set_fetched_at'
|
|
|
250 |
}
|
251 |
|
252 |
public static function read_unbounce_domain_info($domain, $expire_now) {
|
12 |
const UB_AUTHORIZED_DOMAINS_KEY = 'ub-authorized-domains';
|
13 |
const UB_HAS_AUTHORIZED_KEY = 'ub-has-authorized';
|
14 |
const UB_CACHE_TIMEOUT_ENV_KEY = 'UB_WP_ROUTES_CACHE_EXP';
|
15 |
+
const UB_USER_AGENT = 'Unbounce WP Plugin 1.0.3';
|
16 |
+
const UB_VERSION = '1.0.3';
|
17 |
|
18 |
public static function default_page_server_domain() {
|
19 |
$domain = getenv('UB_PAGE_SERVER_DOMAIN');
|
81 |
return array('FAILURE', null, null, null);
|
82 |
}
|
83 |
|
84 |
+
try {
|
85 |
+
$url = 'https://' . $ps_domain . '/sitemap.xml';
|
86 |
+
$curl = curl_init();
|
87 |
+
$curl_options = array(
|
88 |
+
CURLOPT_URL => $url,
|
89 |
+
CURLOPT_CUSTOMREQUEST => "GET",
|
90 |
+
CURLOPT_HEADER => true,
|
91 |
+
CURLOPT_USERAGENT => UBConfig::UB_USER_AGENT,
|
92 |
+
CURLOPT_HTTPHEADER => array('Host: ' . $domain, 'If-None-Match: ' . $etag),
|
93 |
+
CURLOPT_RETURNTRANSFER => true,
|
94 |
+
CURLOPT_FOLLOWLOCATION => false,
|
95 |
+
CURLOPT_TIMEOUT => 5
|
96 |
+
);
|
97 |
+
|
98 |
+
UBLogger::debug("Retrieving routes from '$url', etag: '$etag', host: '$domain'");
|
99 |
+
|
100 |
+
curl_setopt_array($curl, $curl_options);
|
101 |
+
$data = curl_exec($curl);
|
102 |
+
|
103 |
+
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
104 |
+
$curl_error = null;
|
105 |
+
|
106 |
+
// when having an CURL error, http_code is 0
|
107 |
+
if ($http_code == 0) {
|
108 |
+
$curl_error = curl_error($curl);
|
109 |
+
}
|
110 |
|
111 |
+
curl_close($curl);
|
112 |
|
113 |
+
list($headers, $body) = array_pad(explode("\r\n\r\n", $data, 2), 2, null);
|
114 |
|
115 |
+
$matches = array();
|
116 |
+
$does_match = preg_match('/ETag: (\S+)/is', $headers, $matches);
|
117 |
+
if ($does_match) {
|
118 |
+
$etag = $matches[1];
|
119 |
+
}
|
120 |
|
121 |
+
$matches = array();
|
122 |
+
$does_match = preg_match('/Cache-Control: max-age=(\S+)/is', $headers, $matches);
|
123 |
+
if ($does_match) {
|
124 |
+
$max_age = $matches[1];
|
125 |
+
}
|
126 |
|
127 |
+
if ($http_code == 200) {
|
128 |
+
list($success, $result) = UBConfig::url_list_from_sitemap($body);
|
129 |
|
130 |
+
if ($success) {
|
131 |
+
UBLogger::debug("Retrieved new routes, HTTP code: '$http_code'");
|
132 |
+
return array('NEW', $etag, $max_age, $result);
|
133 |
+
}
|
134 |
+
else {
|
135 |
+
$errors = join(', ', $result);
|
136 |
+
UBLogger::warning("An error occurred while processing routes, XML errors: '$errors'");
|
137 |
+
return array('FAILURE', null, null, null);
|
138 |
+
}
|
139 |
+
}
|
140 |
+
if ($http_code == 304) {
|
141 |
+
UBLogger::debug("Routes have not changed, HTTP code: '$http_code'");
|
142 |
+
return array('SAME', $etag, $max_age, null);
|
143 |
+
}
|
144 |
+
if ($http_code == 404) {
|
145 |
+
UBLogger::debug("No routes to retrieve, HTTP code: '$http_code'");
|
146 |
+
return array('NONE', null, null, null);
|
147 |
}
|
148 |
else {
|
149 |
+
UBLogger::warning("An error occurred while retrieving routes; HTTP code: '$http_code'; Error: " . $curl_error);
|
|
|
150 |
return array('FAILURE', null, null, null);
|
151 |
}
|
152 |
+
} catch (Exception $e) {
|
153 |
+
UBLogger::warning("An error occurred while retrieving routes; Error: " . $e);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
return array('FAILURE', null, null, null);
|
155 |
}
|
156 |
}
|
244 |
}
|
245 |
|
246 |
$domain_info['proxyable_url_set_fetched_at'] = $current_time;
|
247 |
+
$domain_info['last_status'] = $routes_status;
|
248 |
$domains_info[$domain] = $domain_info;
|
249 |
$options_setter(UBConfig::UB_ROUTES_CACHE_KEY, $domains_info);
|
250 |
}
|
251 |
|
|
|
252 |
return UBUtil::array_select_by_key($domain_info,
|
253 |
array('proxyable_url_set',
|
254 |
+
'proxyable_url_set_fetched_at',
|
255 |
+
'last_status'));
|
256 |
}
|
257 |
|
258 |
public static function read_unbounce_domain_info($domain, $expire_now) {
|
UBDiagnostics.php
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class UBDiagnostics {
|
4 |
+
|
5 |
+
const SUPPORTED_PHP_VERSION = '5.3';
|
6 |
+
const SUPPORTED_WP_VERSION = '4.0';
|
7 |
+
|
8 |
+
public static function working() {
|
9 |
+
return !in_array(false, UBDiagnostics::checks());
|
10 |
+
}
|
11 |
+
|
12 |
+
public static function checks($domain, $domain_info) {
|
13 |
+
return array(
|
14 |
+
'Curl Support' => function_exists('curl_init'),
|
15 |
+
'Permalink Structure' => get_option('permalink_structure', '') !== '',
|
16 |
+
'Domain is Authorized' => UBConfig::is_authorized_domain($domain),
|
17 |
+
'Can Fetch Page Listing' => UBDiagnostics::last_status_success($domain_info),
|
18 |
+
'Supported PHP Version' => version_compare(phpversion(),
|
19 |
+
UBDiagnostics::SUPPORTED_PHP_VERSION,
|
20 |
+
'>='),
|
21 |
+
'Supported Wordpress Version' => version_compare(UBDiagnostics::wordpress_version(),
|
22 |
+
UBDiagnostics::SUPPORTED_WP_VERSION,
|
23 |
+
'>=')
|
24 |
+
);
|
25 |
+
}
|
26 |
+
|
27 |
+
public static function details($domain, $domain_info) {
|
28 |
+
return array(
|
29 |
+
'PHP Version' => phpversion(),
|
30 |
+
'WordPress Version' => UBDiagnostics::wordpress_version(),
|
31 |
+
'Unbounce Plugin Version' => "1.0.3",
|
32 |
+
'Permalink Structure' => get_option('permalink_structure', ''),
|
33 |
+
'Domain' => $domain,
|
34 |
+
'Domain Authorized' => print_r(UBConfig::is_authorized_domain($domain), true),
|
35 |
+
'Domain Information' => print_r($domain_info, true),
|
36 |
+
'Page Server Domain' => UBConfig::page_server_domain(),
|
37 |
+
'Remote Log URL' => UBConfig::remote_log_url(),
|
38 |
+
'API URL' => UBConfig::api_url(),
|
39 |
+
'API Client ID' => UBConfig::api_client_id(),
|
40 |
+
'Authorized Domains' => join(', ', UBConfig::authorized_domains()),
|
41 |
+
'Has Authorized' => print_r(UBConfig::has_authorized(), true),
|
42 |
+
'Active Plugins' => print_r(get_option('active_plugins'), true),
|
43 |
+
'Plugin Details' => print_r(get_plugins(), true),
|
44 |
+
'Curl Version' => UBDiagnostics::curl_version(),
|
45 |
+
'Configuration Options' => print_r(ini_get_all(), true),
|
46 |
+
'Extensions' => print_r(get_loaded_extensions(), true),
|
47 |
+
'Operating System' => php_uname(),
|
48 |
+
'Checks' => print_r(UBDiagnostics::checks($domain, $domain_info), true)
|
49 |
+
);
|
50 |
+
}
|
51 |
+
|
52 |
+
private static function curl_version() {
|
53 |
+
if(function_exists('curl_version')) {
|
54 |
+
return print_r(curl_version(), true);
|
55 |
+
} else {
|
56 |
+
return 'N/A';
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
private static function wordpress_version() {
|
61 |
+
global $wp_version;
|
62 |
+
include(ABSPATH . WPINC . '/version.php');
|
63 |
+
return $wp_version;
|
64 |
+
}
|
65 |
+
|
66 |
+
private static function last_status_success($domain_info) {
|
67 |
+
$last_status = UBUtil::array_fetch($domain_info, 'last_status');
|
68 |
+
return $last_status !== 'FAILURE' && $last_status !== null;
|
69 |
+
}
|
70 |
+
|
71 |
+
}
|
72 |
+
?>
|
UBLogger.php
CHANGED
@@ -27,38 +27,44 @@ class UBLogger {
|
|
27 |
$json_unescaped = json_encode($data);
|
28 |
$data_string = str_replace('\\/', '/', $json_unescaped);
|
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 |
$message = 'Unable to send log messages to ' . $url
|
57 |
-
. ' -
|
58 |
UBLogger::warning($message);
|
59 |
}
|
60 |
-
|
61 |
-
curl_close($curl);
|
62 |
}
|
63 |
}
|
64 |
|
27 |
$json_unescaped = json_encode($data);
|
28 |
$data_string = str_replace('\\/', '/', $json_unescaped);
|
29 |
|
30 |
+
try {
|
31 |
+
$curl = curl_init();
|
32 |
+
$curl_options = array(
|
33 |
+
CURLOPT_URL => $url,
|
34 |
+
CURLOPT_CUSTOMREQUEST => 'POST',
|
35 |
+
CURLOPT_USERAGENT => UBConfig::UB_USER_AGENT,
|
36 |
+
CURLOPT_FOLLOWLOCATION => false,
|
37 |
+
CURLOPT_HTTPHEADER => array(
|
38 |
+
'Content-Type: application/json',
|
39 |
+
'Content-Length: ' . strlen($data_string)
|
40 |
+
),
|
41 |
+
CURLOPT_POSTFIELDS => $data_string,
|
42 |
+
CURLOPT_TIMEOUT => 2
|
43 |
+
);
|
44 |
+
curl_setopt_array($curl, $curl_options);
|
45 |
+
$success = curl_exec($curl);
|
46 |
+
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
47 |
+
|
48 |
+
if(!$success) {
|
49 |
+
$message = 'Unable to send log messages to ' . $url . ': "'
|
50 |
+
. curl_error($curl) . '" - HTTP status: ' . curl_errno($curl);
|
51 |
+
UBLogger::warning($message);
|
52 |
+
} elseif($http_code >= 200 && $http_code < 300) {
|
53 |
+
$message = 'Successfully sent log messsages to ' . $url
|
54 |
+
. ' - HTTP status: ' . $http_code;
|
55 |
+
UBLogger::debug($message);
|
56 |
+
} else {
|
57 |
+
$message = 'Unable to send log messages to ' . $url
|
58 |
+
. ' - HTTP status: ' . $http_code;
|
59 |
+
UBLogger::warning($message);
|
60 |
+
}
|
61 |
+
|
62 |
+
curl_close($curl);
|
63 |
+
} catch (Exception $e) {
|
64 |
$message = 'Unable to send log messages to ' . $url
|
65 |
+
. ' - Error: ' . $e;
|
66 |
UBLogger::warning($message);
|
67 |
}
|
|
|
|
|
68 |
}
|
69 |
}
|
70 |
|
Unbounce-Page.php
CHANGED
@@ -3,13 +3,14 @@
|
|
3 |
Plugin Name: Unbounce
|
4 |
Plugin URI: http://unbounce.com
|
5 |
Description: Publish Unbounce Landing Pages to your Wordpress Domain.
|
6 |
-
Version: 1.0.
|
7 |
Author: Unbounce
|
8 |
Author URI: http://unbounce.com
|
9 |
License: GPLv2
|
10 |
*/
|
11 |
|
12 |
require_once dirname(__FILE__) . '/UBCompatibility.php';
|
|
|
13 |
require_once dirname(__FILE__) . '/UBUtil.php';
|
14 |
require_once dirname(__FILE__) . '/UBConfig.php';
|
15 |
require_once dirname(__FILE__) . '/UBLogger.php';
|
@@ -196,7 +197,7 @@ function render_unbounce_pages($domain_info, $domain) {
|
|
196 |
}
|
197 |
|
198 |
if(UBConfig::is_authorized_domain($domain)) {
|
199 |
-
$proxyable_url_set = UBUtil::array_fetch($domain_info, 'proxyable_url_set');
|
200 |
|
201 |
echo '<h2 class="ub-published-pages-heading">Published Pages</h2>';
|
202 |
|
@@ -230,7 +231,9 @@ function render_unbounce_pages($domain_info, $domain) {
|
|
230 |
echo '. If they are still not appearing, double check that your Unbounce pages are using a Wordpress domain.</p>';
|
231 |
echo '</form>';
|
232 |
echo '<a href="http://documentation.unbounce.com/hc/en-us/articles/205069824-Integrating-with-WordPress" target="_blank">Check out our knowledge base.</a>';
|
233 |
-
|
|
|
|
|
234 |
});
|
235 |
} else {
|
236 |
if (UBConfig::has_authorized()) {
|
@@ -261,15 +264,50 @@ function render_unbounce_pages($domain_info, $domain) {
|
|
261 |
echo '</p>';
|
262 |
echo '</form>';
|
263 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
}
|
265 |
|
266 |
echo "</div>"; //close ub-plugin-wrapper
|
267 |
}
|
268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
add_action('admin_menu', function() {
|
|
|
270 |
$print_admin_panel = function() {
|
271 |
$domain = parse_url(get_home_url(), PHP_URL_HOST);
|
272 |
-
$domain_info
|
273 |
|
274 |
render_unbounce_pages($domain_info, $domain);
|
275 |
};
|
@@ -280,6 +318,21 @@ add_action('admin_menu', function() {
|
|
280 |
'unbounce-pages',
|
281 |
$print_admin_panel,
|
282 |
UBIcon::base64_encoded_svg());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
});
|
284 |
|
285 |
add_action('admin_post_set_unbounce_domains', function() {
|
3 |
Plugin Name: Unbounce
|
4 |
Plugin URI: http://unbounce.com
|
5 |
Description: Publish Unbounce Landing Pages to your Wordpress Domain.
|
6 |
+
Version: 1.0.3
|
7 |
Author: Unbounce
|
8 |
Author URI: http://unbounce.com
|
9 |
License: GPLv2
|
10 |
*/
|
11 |
|
12 |
require_once dirname(__FILE__) . '/UBCompatibility.php';
|
13 |
+
require_once dirname(__FILE__) . '/UBDiagnostics.php';
|
14 |
require_once dirname(__FILE__) . '/UBUtil.php';
|
15 |
require_once dirname(__FILE__) . '/UBConfig.php';
|
16 |
require_once dirname(__FILE__) . '/UBLogger.php';
|
197 |
}
|
198 |
|
199 |
if(UBConfig::is_authorized_domain($domain)) {
|
200 |
+
$proxyable_url_set = UBUtil::array_fetch($domain_info, 'proxyable_url_set', array());
|
201 |
|
202 |
echo '<h2 class="ub-published-pages-heading">Published Pages</h2>';
|
203 |
|
231 |
echo '. If they are still not appearing, double check that your Unbounce pages are using a Wordpress domain.</p>';
|
232 |
echo '</form>';
|
233 |
echo '<a href="http://documentation.unbounce.com/hc/en-us/articles/205069824-Integrating-with-WordPress" target="_blank">Check out our knowledge base.</a>';
|
234 |
+
$diagnostics_url = admin_url('admin.php?page=unbounce-pages-diagnostics');
|
235 |
+
echo "<br/><a class='ub-diagnostics-link' href='${diagnostics_url}'>Diagnostics</a>";
|
236 |
+
echo '<p class="ub-version">Unbounce Version 1.0.3</p>';
|
237 |
});
|
238 |
} else {
|
239 |
if (UBConfig::has_authorized()) {
|
264 |
echo '</p>';
|
265 |
echo '</form>';
|
266 |
}
|
267 |
+
|
268 |
+
add_action('in_admin_footer', function() {
|
269 |
+
echo '<a href="http://documentation.unbounce.com/hc/en-us/articles/205069824-Integrating-with-WordPress"';
|
270 |
+
echo ' target="_blank">Check out our knowledge base.</a>';
|
271 |
+
$diagnostics_url = admin_url('admin.php?page=unbounce-pages-diagnostics');
|
272 |
+
echo "<br/><a class='ub-diagnostics-link' href='${diagnostics_url}'>Diagnostics</a>";
|
273 |
+
echo '<p class="ub-version">Unbounce Version 1.0.3</p>';
|
274 |
+
});
|
275 |
}
|
276 |
|
277 |
echo "</div>"; //close ub-plugin-wrapper
|
278 |
}
|
279 |
|
280 |
+
function render_unbounce_pages_diagnostics($domain, $domain_info) {
|
281 |
+
echo "<div class=\"ub-plugin-wrapper\">";
|
282 |
+
$img_url = plugins_url('img/unbounce-logo-blue.png', __FILE__);
|
283 |
+
echo "<img class=\"ub-logo\" src=\"${img_url}\" />";
|
284 |
+
echo "<h1 class=\"ub-unbounce-pages-heading\">Unbounce Pages Diagnostics</h1>";
|
285 |
+
|
286 |
+
$checks = UBDiagnostics::checks($domain, $domain_info);
|
287 |
+
echo '<br/>';
|
288 |
+
echo '<ul class="ub-diagnostics-checks">';
|
289 |
+
foreach($checks as $check => $success) {
|
290 |
+
$css_class = ($success ? 'dashicons-yes' : 'dashicons-no-alt');
|
291 |
+
echo "<li><span class='dashicons ${css_class}'></span>${check}</li>";
|
292 |
+
}
|
293 |
+
echo '</ul>';
|
294 |
+
|
295 |
+
echo '<h2>Details</h2>';
|
296 |
+
echo '<p>If you are experiencing problems with the Unbounce Pages plugin, please email the following details to <a href="mailto:support@unbounce.com">support@unbounce.com</a>.</p>';
|
297 |
+
$details = UBDiagnostics::details($domain, $domain_info);
|
298 |
+
echo '<textarea rows="10" cols="100">';
|
299 |
+
foreach($details as $detail_name => $detail) {
|
300 |
+
echo "[${detail_name}] ${detail}\n";
|
301 |
+
}
|
302 |
+
echo '</textarea>';
|
303 |
+
echo "</div>"; //close ub-plugin-wrapper
|
304 |
+
}
|
305 |
+
|
306 |
add_action('admin_menu', function() {
|
307 |
+
// Main admin page
|
308 |
$print_admin_panel = function() {
|
309 |
$domain = parse_url(get_home_url(), PHP_URL_HOST);
|
310 |
+
$domain_info = UBConfig::read_unbounce_domain_info($domain, false);
|
311 |
|
312 |
render_unbounce_pages($domain_info, $domain);
|
313 |
};
|
318 |
'unbounce-pages',
|
319 |
$print_admin_panel,
|
320 |
UBIcon::base64_encoded_svg());
|
321 |
+
|
322 |
+
// Diagnostics page
|
323 |
+
$print_diagnostics_panel = function() {
|
324 |
+
$domain = parse_url(get_home_url(), PHP_URL_HOST);
|
325 |
+
$domain_info = UBConfig::read_unbounce_domain_info($domain, false);
|
326 |
+
|
327 |
+
render_unbounce_pages_diagnostics($domain, $domain_info);
|
328 |
+
};
|
329 |
+
|
330 |
+
add_submenu_page(NULL,
|
331 |
+
'Unbounce Pages Diagnostics',
|
332 |
+
'Unbounce Pages Diagnostics',
|
333 |
+
'manage_options',
|
334 |
+
'unbounce-pages-diagnostics',
|
335 |
+
$print_diagnostics_panel);
|
336 |
});
|
337 |
|
338 |
add_action('admin_post_set_unbounce_domains', function() {
|
css/unbounce-pages.css
CHANGED
@@ -67,3 +67,15 @@
|
|
67 |
width: 100%;
|
68 |
float: left;
|
69 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
width: 100%;
|
68 |
float: left;
|
69 |
}
|
70 |
+
|
71 |
+
.ub-diagnostics-link {
|
72 |
+
float: left;
|
73 |
+
}
|
74 |
+
|
75 |
+
.ub-diagnostics-checks .dashicons-yes {
|
76 |
+
color: #7ad03a;
|
77 |
+
}
|
78 |
+
|
79 |
+
.ub-diagnostics-checks .dashicons-no-alt {
|
80 |
+
color: #dd3d36;
|
81 |
+
}
|
js/unbounce-page.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Unbounce-Page.php JS Functions
|
2 |
+
|
3 |
+
function swap_primary_buttons(current_primary, current_secondary) {
|
4 |
+
var $ = jQuery;
|
5 |
+
$('#' + current_primary).removeClass('button-primary');
|
6 |
+
$('#' + current_secondary).addClass('button-primary');
|
7 |
+
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: unbouncewordpress
|
|
3 |
Tags: Unbounce, AB testing, A/B testing, split testing, CRO, conversion optimization, wordpress landing page, wp landing pages, splash pages, landing pages, squeeze pages, lead gen, lead generation, email list, responsive landing pages, templates, inbound marketing, ppc, analytics
|
4 |
Requires at least: 4.1.5
|
5 |
Tested up to: 4.3
|
6 |
-
Stable tag: 1.0.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
3 |
Tags: Unbounce, AB testing, A/B testing, split testing, CRO, conversion optimization, wordpress landing page, wp landing pages, splash pages, landing pages, squeeze pages, lead gen, lead generation, email list, responsive landing pages, templates, inbound marketing, ppc, analytics
|
4 |
Requires at least: 4.1.5
|
5 |
Tested up to: 4.3
|
6 |
+
Stable tag: 1.0.3
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|