Version Description
- Purge CDN redirects to admin dashboard to avoid error messages
- more helpful error messages
- do not display nag notice when KeyCDN API credentials are set
Download this release
Release Info
| Developer | keycdn |
| Plugin | |
| Version | 1.0.8 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.7 to 1.0.8
- cdn-enabler.php +1 -1
- inc/cdn_enabler.class.php +34 -7
- inc/cdn_enabler_settings.class.php +17 -5
- readme.txt +5 -0
cdn-enabler.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
Author: KeyCDN
|
| 7 |
Author URI: https://www.keycdn.com
|
| 8 |
License: GPLv2 or later
|
| 9 |
-
Version: 1.0.
|
| 10 |
*/
|
| 11 |
|
| 12 |
/*
|
| 6 |
Author: KeyCDN
|
| 7 |
Author URI: https://www.keycdn.com
|
| 8 |
License: GPLv2 or later
|
| 9 |
+
Version: 1.0.8
|
| 10 |
*/
|
| 11 |
|
| 12 |
/*
|
inc/cdn_enabler.class.php
CHANGED
|
@@ -89,7 +89,7 @@ class CDN_Enabler
|
|
| 89 |
);
|
| 90 |
/* process purge request */
|
| 91 |
add_action(
|
| 92 |
-
'
|
| 93 |
[
|
| 94 |
__CLASS__,
|
| 95 |
'process_purge_request',
|
|
@@ -110,6 +110,7 @@ class CDN_Enabler
|
|
| 110 |
*/
|
| 111 |
|
| 112 |
public static function add_admin_links($wp_admin_bar) {
|
|
|
|
| 113 |
$options = self::get_options();
|
| 114 |
|
| 115 |
// check user role
|
|
@@ -127,11 +128,20 @@ class CDN_Enabler
|
|
| 127 |
return;
|
| 128 |
}
|
| 129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
// add admin purge link
|
| 131 |
$wp_admin_bar->add_menu(
|
| 132 |
[
|
| 133 |
'id' => 'purge-cdn',
|
| 134 |
-
'href' => wp_nonce_url( add_query_arg('_cdn', 'purge'), '_cdn__purge_nonce'),
|
| 135 |
'parent' => 'top-secondary',
|
| 136 |
'title' => '<span class="ab-item">'.esc_html__('Purge CDN', 'cdn-enabler').'</span>',
|
| 137 |
'meta' => ['title' => esc_html__('Purge CDN', 'cdn-enabler')],
|
|
@@ -143,7 +153,7 @@ class CDN_Enabler
|
|
| 143 |
$wp_admin_bar->add_menu(
|
| 144 |
[
|
| 145 |
'id' => 'purge-cdn',
|
| 146 |
-
'href' => wp_nonce_url( add_query_arg('_cdn', 'purge'), '_cdn__purge_nonce'),
|
| 147 |
'parent' => 'top-secondary',
|
| 148 |
'title' => '<span class="ab-item">'.esc_html__('Purge CDN', 'cdn-enabler').'</span>',
|
| 149 |
'meta' => ['title' => esc_html__('Purge CDN', 'cdn-enabler')],
|
|
@@ -207,9 +217,10 @@ class CDN_Enabler
|
|
| 207 |
// check HTTP response
|
| 208 |
if ( is_array( $response ) and is_admin_bar_showing()) {
|
| 209 |
$json = json_decode($response['body'], true);
|
|
|
|
| 210 |
|
| 211 |
// success
|
| 212 |
-
if (
|
| 213 |
and is_array($json)
|
| 214 |
and array_key_exists('description', $json) )
|
| 215 |
{
|
|
@@ -219,7 +230,7 @@ class CDN_Enabler
|
|
| 219 |
);
|
| 220 |
|
| 221 |
return;
|
| 222 |
-
} elseif (
|
| 223 |
// return code 200 but no message
|
| 224 |
printf(
|
| 225 |
'<div class="notice notice-warning is-dismissible"><p>%s</p></div>',
|
|
@@ -229,19 +240,35 @@ class CDN_Enabler
|
|
| 229 |
return;
|
| 230 |
}
|
| 231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
// API call returned != 200 and also a status message
|
| 233 |
if ( is_array($json)
|
| 234 |
and array_key_exists('status', $json)
|
| 235 |
and $json['status'] != "" ) {
|
| 236 |
printf(
|
| 237 |
'<div class="notice notice-error is-dismissible"><p>%s</p></div>',
|
| 238 |
-
esc_html__('HTTP returned '.
|
| 239 |
);
|
| 240 |
} else {
|
| 241 |
// Something else went wrong - show HTTP error code
|
| 242 |
printf(
|
| 243 |
'<div class="notice notice-error is-dismissible"><p>%s</p></div>',
|
| 244 |
-
esc_html__('HTTP returned '.
|
| 245 |
);
|
| 246 |
}
|
| 247 |
}
|
| 89 |
);
|
| 90 |
/* process purge request */
|
| 91 |
add_action(
|
| 92 |
+
'admin_notices',
|
| 93 |
[
|
| 94 |
__CLASS__,
|
| 95 |
'process_purge_request',
|
| 110 |
*/
|
| 111 |
|
| 112 |
public static function add_admin_links($wp_admin_bar) {
|
| 113 |
+
global $wp;
|
| 114 |
$options = self::get_options();
|
| 115 |
|
| 116 |
// check user role
|
| 128 |
return;
|
| 129 |
}
|
| 130 |
|
| 131 |
+
// redirect to admin page if necessary so we can display notification
|
| 132 |
+
$current_url = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' .
|
| 133 |
+
$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
| 134 |
+
$goto_url = get_admin_url();
|
| 135 |
+
|
| 136 |
+
if ( stristr($current_url, get_admin_url()) ) {
|
| 137 |
+
$goto_url = $current_url;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
// add admin purge link
|
| 141 |
$wp_admin_bar->add_menu(
|
| 142 |
[
|
| 143 |
'id' => 'purge-cdn',
|
| 144 |
+
'href' => wp_nonce_url( add_query_arg('_cdn', 'purge', $goto_url), '_cdn__purge_nonce'),
|
| 145 |
'parent' => 'top-secondary',
|
| 146 |
'title' => '<span class="ab-item">'.esc_html__('Purge CDN', 'cdn-enabler').'</span>',
|
| 147 |
'meta' => ['title' => esc_html__('Purge CDN', 'cdn-enabler')],
|
| 153 |
$wp_admin_bar->add_menu(
|
| 154 |
[
|
| 155 |
'id' => 'purge-cdn',
|
| 156 |
+
'href' => wp_nonce_url( add_query_arg('_cdn', 'purge', $goto_url), '_cdn__purge_nonce'),
|
| 157 |
'parent' => 'top-secondary',
|
| 158 |
'title' => '<span class="ab-item">'.esc_html__('Purge CDN', 'cdn-enabler').'</span>',
|
| 159 |
'meta' => ['title' => esc_html__('Purge CDN', 'cdn-enabler')],
|
| 217 |
// check HTTP response
|
| 218 |
if ( is_array( $response ) and is_admin_bar_showing()) {
|
| 219 |
$json = json_decode($response['body'], true);
|
| 220 |
+
$rc = wp_remote_retrieve_response_code( $response );
|
| 221 |
|
| 222 |
// success
|
| 223 |
+
if ( $rc == 200
|
| 224 |
and is_array($json)
|
| 225 |
and array_key_exists('description', $json) )
|
| 226 |
{
|
| 230 |
);
|
| 231 |
|
| 232 |
return;
|
| 233 |
+
} elseif ( $rc == 200 ) {
|
| 234 |
// return code 200 but no message
|
| 235 |
printf(
|
| 236 |
'<div class="notice notice-warning is-dismissible"><p>%s</p></div>',
|
| 240 |
return;
|
| 241 |
}
|
| 242 |
|
| 243 |
+
// For some API errors we return custom error messages
|
| 244 |
+
$custom_messages = array(
|
| 245 |
+
401 => "invalid API key",
|
| 246 |
+
403 => "invalid zone id",
|
| 247 |
+
451 => "too many failed attempts",
|
| 248 |
+
);
|
| 249 |
+
|
| 250 |
+
if ( array_key_exists($rc, $custom_messages) ) {
|
| 251 |
+
printf(
|
| 252 |
+
'<div class="notice notice-error is-dismissible"><p>%s</p></div>',
|
| 253 |
+
esc_html__('HTTP returned '. $rc .': '.$custom_messages[$rc], 'cdn-enabler')
|
| 254 |
+
);
|
| 255 |
+
|
| 256 |
+
return;
|
| 257 |
+
}
|
| 258 |
+
|
| 259 |
// API call returned != 200 and also a status message
|
| 260 |
if ( is_array($json)
|
| 261 |
and array_key_exists('status', $json)
|
| 262 |
and $json['status'] != "" ) {
|
| 263 |
printf(
|
| 264 |
'<div class="notice notice-error is-dismissible"><p>%s</p></div>',
|
| 265 |
+
esc_html__('HTTP returned '. $rc .': '.$json['description'], 'cdn-enabler')
|
| 266 |
);
|
| 267 |
} else {
|
| 268 |
// Something else went wrong - show HTTP error code
|
| 269 |
printf(
|
| 270 |
'<div class="notice notice-error is-dismissible"><p>%s</p></div>',
|
| 271 |
+
esc_html__('HTTP returned '. $rc)
|
| 272 |
);
|
| 273 |
}
|
| 274 |
}
|
inc/cdn_enabler_settings.class.php
CHANGED
|
@@ -99,21 +99,33 @@ class CDN_Enabler_Settings
|
|
| 99 |
*/
|
| 100 |
|
| 101 |
public static function settings_page()
|
| 102 |
-
{
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
<div class="wrap">
|
| 104 |
<h2>
|
| 105 |
<?php _e("CDN Enabler Settings", "cdn-enabler"); ?>
|
| 106 |
</h2>
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
<div class="notice notice-info">
|
| 109 |
-
<p
|
| 110 |
-
</div>
|
|
|
|
|
|
|
| 111 |
|
| 112 |
<form method="post" action="options.php">
|
| 113 |
<?php settings_fields('cdn_enabler') ?>
|
| 114 |
|
| 115 |
-
<?php $options = CDN_Enabler::get_options() ?>
|
| 116 |
-
|
| 117 |
<table class="form-table">
|
| 118 |
|
| 119 |
<tr valign="top">
|
| 99 |
*/
|
| 100 |
|
| 101 |
public static function settings_page()
|
| 102 |
+
{
|
| 103 |
+
$options = CDN_Enabler::get_options()
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
?>
|
| 107 |
<div class="wrap">
|
| 108 |
<h2>
|
| 109 |
<?php _e("CDN Enabler Settings", "cdn-enabler"); ?>
|
| 110 |
</h2>
|
| 111 |
|
| 112 |
+
<?php
|
| 113 |
+
if (( ! is_int($options['keycdn_zone_id'])
|
| 114 |
+
or $options['keycdn_zone_id'] <= 0 )
|
| 115 |
+
or
|
| 116 |
+
( ! array_key_exists('keycdn_api_key', $options)
|
| 117 |
+
or strlen($options['keycdn_api_key']) < 20 ))
|
| 118 |
+
{
|
| 119 |
+
printf(__('
|
| 120 |
<div class="notice notice-info">
|
| 121 |
+
<p>Combine CDN Enabler with <b><a href="%s">%s</a></b> for even faster WordPress performance.</p>
|
| 122 |
+
</div>'), 'https://www.keycdn.com?utm_source=wp-admin&utm_medium=plugins&utm_campaign=cdn-enabler', 'KeyCDN');
|
| 123 |
+
}
|
| 124 |
+
?>
|
| 125 |
|
| 126 |
<form method="post" action="options.php">
|
| 127 |
<?php settings_fields('cdn_enabler') ?>
|
| 128 |
|
|
|
|
|
|
|
| 129 |
<table class="form-table">
|
| 130 |
|
| 131 |
<tr valign="top">
|
readme.txt
CHANGED
|
@@ -47,6 +47,11 @@ The CDN Enabler plugin has been developed to link your content to the CDN URLs.
|
|
| 47 |
|
| 48 |
== Changelog ==
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
= 1.0.7 =
|
| 51 |
* Minor bug fixes (pass-by-reference)
|
| 52 |
|
| 47 |
|
| 48 |
== Changelog ==
|
| 49 |
|
| 50 |
+
= 1.0.8 =
|
| 51 |
+
* Purge CDN redirects to admin dashboard to avoid error messages
|
| 52 |
+
* more helpful error messages
|
| 53 |
+
* do not display nag notice when KeyCDN API credentials are set
|
| 54 |
+
|
| 55 |
= 1.0.7 =
|
| 56 |
* Minor bug fixes (pass-by-reference)
|
| 57 |
|
