Version Description
- 2020/08/13
- security fixes - thank you Erin
Download this release
Release Info
Developer | WebFactory |
Plugin | Eggplant 301 Redirects |
Version | 2.51 |
Comparing to | |
See all releases |
Code changes from version 2.50 to 2.51
- css/eps_redirect.css +4 -0
- eps-301-redirects.php +87 -19
- eps-form-elements.php +8 -8
- libs/eps-plugin-options.php +2 -2
- plugin.php +17 -17
- readme.txt +5 -1
- templates/admin-panel-cache.php +1 -1
- templates/template.redirect-entry-edit.php +1 -1
- templates/template.redirect-entry.php +3 -3
css/eps_redirect.css
CHANGED
@@ -64,6 +64,10 @@
|
|
64 |
/*---------------------- notifications ---------------------*/
|
65 |
/*----------------------------------------------------------*/
|
66 |
|
|
|
|
|
|
|
|
|
67 |
.eps-notification-area {
|
68 |
-webkit-border-radius: 4px;
|
69 |
-moz-border-radius: 4px;
|
64 |
/*---------------------- notifications ---------------------*/
|
65 |
/*----------------------------------------------------------*/
|
66 |
|
67 |
+
.rating-box p {
|
68 |
+
font-size: 14px;
|
69 |
+
}
|
70 |
+
|
71 |
.eps-notification-area {
|
72 |
-webkit-border-radius: 4px;
|
73 |
-moz-border-radius: 4px;
|
eps-301-redirects.php
CHANGED
@@ -2,12 +2,12 @@
|
|
2 |
/*
|
3 |
Plugin Name: 301 Redirects
|
4 |
Description: Easily create and manage 301 redirects.
|
5 |
-
Version: 2.
|
6 |
Author: WebFactory Ltd
|
7 |
Author URI: https://www.webfactoryltd.com/
|
8 |
Text Domain: eps-301-redirects
|
9 |
|
10 |
-
Copyright 2015 -
|
11 |
|
12 |
This program is free software; you can redistribute it and/or modify
|
13 |
it under the terms of the GNU General Public License, version 2, as
|
@@ -68,6 +68,8 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
68 |
add_action('admin_init', array($this, 'clear_cache'));
|
69 |
}
|
70 |
|
|
|
|
|
71 |
add_action('wp_ajax_eps_redirect_get_new_entry', array($this, 'ajax_get_entry'));
|
72 |
add_action('wp_ajax_eps_redirect_delete_entry', array($this, 'ajax_eps_delete_entry'));
|
73 |
add_action('wp_ajax_eps_redirect_get_inline_edit_entry', array($this, 'ajax_get_inline_edit_entry'));
|
@@ -98,7 +100,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
98 |
*
|
99 |
* This function will redirect the user if it can resolve that this url request has a redirect.
|
100 |
*
|
101 |
-
* @author
|
102 |
*
|
103 |
*/
|
104 |
public function do_redirect()
|
@@ -148,7 +150,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
148 |
* Will construct and format the from url from what we have in storage.
|
149 |
*
|
150 |
* @return url string
|
151 |
-
* @author
|
152 |
*
|
153 |
*/
|
154 |
private function format_from_url($string)
|
@@ -170,7 +172,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
170 |
* This function returns the current url.
|
171 |
*
|
172 |
* @return URL string
|
173 |
-
* @author
|
174 |
*
|
175 |
*/
|
176 |
public static function get_url()
|
@@ -180,10 +182,76 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
180 |
//return strtolower( urldecode( $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) );
|
181 |
}
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
|
|
|
|
187 |
|
188 |
|
189 |
/**
|
@@ -193,7 +261,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
193 |
* A necessary data parser to change the POST arrays into save-able data.
|
194 |
*
|
195 |
* @return array of redirects
|
196 |
-
* @author
|
197 |
*
|
198 |
*/
|
199 |
public static function _parse_serial_array($array)
|
@@ -206,8 +274,8 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
206 |
if (empty($array['url_to'][$i]) || empty($array['url_from'][$i])) continue;
|
207 |
$new_redirects[] = array(
|
208 |
'id' => isset($array['id'][$i]) ? $array['id'][$i] : null,
|
209 |
-
'url_from' => $array['url_from'][$i],
|
210 |
-
'url_to' => $array['url_to'][$i],
|
211 |
'type' => (is_numeric($array['url_to'][$i])) ? 'post' : 'url',
|
212 |
'status' => isset($array['status'][$i]) ? $array['status'][$i] : '301'
|
213 |
);
|
@@ -224,7 +292,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
224 |
* TODO: Maybe refactor this to reduce the number of queries.
|
225 |
*
|
226 |
* @return nothing
|
227 |
-
* @author
|
228 |
*/
|
229 |
public function ajax_save_redirect()
|
230 |
{
|
@@ -237,8 +305,8 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
237 |
|
238 |
$update = array(
|
239 |
'id' => ($_POST['id']) ? intval($_POST['id']) : false,
|
240 |
-
'url_from' => $_POST['url_from'], // remove the $root from the url if supplied, and a leading /
|
241 |
-
'url_to' => $_POST['url_to'],
|
242 |
'type' => (is_numeric($_POST['url_to']) ? 'post' : 'url'),
|
243 |
'status' => $_POST['status']
|
244 |
);
|
@@ -292,7 +360,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
292 |
* TODO: Maybe refactor this to reduce the number of queries.
|
293 |
*
|
294 |
* @return nothing
|
295 |
-
* @author
|
296 |
*/
|
297 |
public static function _save_redirects($array)
|
298 |
{
|
@@ -356,7 +424,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
356 |
* Gets the redirects. Can be switched to return Active Only redirects.
|
357 |
*
|
358 |
* @return array of redirects
|
359 |
-
* @author
|
360 |
*
|
361 |
*/
|
362 |
public static function get_redirects($active_only = false)
|
@@ -407,7 +475,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
407 |
* Add +1 to the specified field for a given id
|
408 |
*
|
409 |
* @return the result
|
410 |
-
* @author
|
411 |
*
|
412 |
*/
|
413 |
public static function increment_field($id, $field)
|
@@ -425,7 +493,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
425 |
* This function will list out all the current entries.
|
426 |
*
|
427 |
* @return html string
|
428 |
-
* @author
|
429 |
*
|
430 |
*/
|
431 |
public static function list_redirects()
|
@@ -451,7 +519,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
451 |
* This function will remove an entry.
|
452 |
*
|
453 |
* @return nothing
|
454 |
-
* @author
|
455 |
*
|
456 |
*/
|
457 |
public static function ajax_eps_delete_entry()
|
@@ -486,7 +554,7 @@ if (!defined('EPS_REDIRECT_PRO')) {
|
|
486 |
* This function will return a blank row ready for user input.
|
487 |
*
|
488 |
* @return html string
|
489 |
-
* @author
|
490 |
*
|
491 |
*/
|
492 |
public static function get_entry($redirect_id = false)
|
@@ -557,7 +625,7 @@ public function clear_cache()
|
|
557 |
*
|
558 |
* This function will output a variable containing the admin ajax url for use in javascript.
|
559 |
*
|
560 |
-
* @author
|
561 |
*
|
562 |
*/
|
563 |
public static function set_ajax_url()
|
@@ -584,7 +652,7 @@ public static function check_404()
|
|
584 |
*
|
585 |
* @return void
|
586 |
* @param $string = the object to prettify; Typically a string.
|
587 |
-
* @author
|
588 |
*/
|
589 |
if (!function_exists('eps_prettify')) {
|
590 |
function eps_prettify($string)
|
2 |
/*
|
3 |
Plugin Name: 301 Redirects
|
4 |
Description: Easily create and manage 301 redirects.
|
5 |
+
Version: 2.51
|
6 |
Author: WebFactory Ltd
|
7 |
Author URI: https://www.webfactoryltd.com/
|
8 |
Text Domain: eps-301-redirects
|
9 |
|
10 |
+
Copyright 2015 - 2020 Web factory Ltd (email: support@webfactoryltd.com)
|
11 |
|
12 |
This program is free software; you can redistribute it and/or modify
|
13 |
it under the terms of the GNU General Public License, version 2, as
|
68 |
add_action('admin_init', array($this, 'clear_cache'));
|
69 |
}
|
70 |
|
71 |
+
add_filter('install_plugins_table_api_args_featured', array($this, 'featured_plugins_tab'));
|
72 |
+
add_filter('install_plugins_table_api_args_popular', array($this, 'featured_plugins_tab'));
|
73 |
add_action('wp_ajax_eps_redirect_get_new_entry', array($this, 'ajax_get_entry'));
|
74 |
add_action('wp_ajax_eps_redirect_delete_entry', array($this, 'ajax_eps_delete_entry'));
|
75 |
add_action('wp_ajax_eps_redirect_get_inline_edit_entry', array($this, 'ajax_get_inline_edit_entry'));
|
100 |
*
|
101 |
* This function will redirect the user if it can resolve that this url request has a redirect.
|
102 |
*
|
103 |
+
* @author WebFactory Ltd
|
104 |
*
|
105 |
*/
|
106 |
public function do_redirect()
|
150 |
* Will construct and format the from url from what we have in storage.
|
151 |
*
|
152 |
* @return url string
|
153 |
+
* @author WebFactory Ltd
|
154 |
*
|
155 |
*/
|
156 |
private function format_from_url($string)
|
172 |
* This function returns the current url.
|
173 |
*
|
174 |
* @return URL string
|
175 |
+
* @author WebFactory Ltd
|
176 |
*
|
177 |
*/
|
178 |
public static function get_url()
|
182 |
//return strtolower( urldecode( $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) );
|
183 |
}
|
184 |
|
185 |
+
public function featured_plugins_tab($args)
|
186 |
+
{
|
187 |
+
add_filter('plugins_api_result', array($this, 'plugins_api_result'), 10);
|
188 |
+
|
189 |
+
return $args;
|
190 |
+
} // featured_plugins_tab
|
191 |
|
192 |
|
193 |
+
/**
|
194 |
+
* Append plugin favorites list with recommended addon plugins
|
195 |
+
*
|
196 |
+
* @since 1.5
|
197 |
+
*
|
198 |
+
* @return object API response
|
199 |
+
*/
|
200 |
+
public function plugins_api_result($res)
|
201 |
+
{
|
202 |
+
remove_filter('plugins_api_result', array($this, 'plugins_api_result'), 10);
|
203 |
+
$res = $this->add_plugin_favs('wp-reset', $res);
|
204 |
+
$res = $this->add_plugin_favs('wp-external-links', $res);
|
205 |
+
$res = $this->add_plugin_favs('simple-author-box', $res);
|
206 |
+
return $res;
|
207 |
+
} // plugins_api_result
|
208 |
+
|
209 |
+
|
210 |
+
/**
|
211 |
+
* Create plugin favorites list plugin object
|
212 |
+
*
|
213 |
+
* @since 1.5
|
214 |
+
*
|
215 |
+
* @return object favorite plugins
|
216 |
+
*/
|
217 |
+
public function add_plugin_favs($plugin_slug, $res)
|
218 |
+
{
|
219 |
+
if (!isset($res->plugins) || !is_array($res->plugins)) {
|
220 |
+
return $res;
|
221 |
+
}
|
222 |
|
223 |
+
if (!empty($res->plugins) && is_array($res->plugins)) {
|
224 |
+
foreach ($res->plugins as $plugin) {
|
225 |
+
if (is_object($plugin) && !empty($plugin->slug) && $plugin->slug == $plugin_slug) {
|
226 |
+
return $res;
|
227 |
+
}
|
228 |
+
} // foreach
|
229 |
+
}
|
230 |
+
|
231 |
+
$plugin_info = get_transient('wf-plugin-info-' . $plugin_slug);
|
232 |
+
if ($plugin_info && is_object($plugin_info)) {
|
233 |
+
array_unshift($res->plugins, $plugin_info);
|
234 |
+
} else {
|
235 |
+
$plugin_info = plugins_api('plugin_information', array(
|
236 |
+
'slug' => $plugin_slug,
|
237 |
+
'is_ssl' => is_ssl(),
|
238 |
+
'fields' => array(
|
239 |
+
'banners' => true,
|
240 |
+
'reviews' => true,
|
241 |
+
'downloaded' => true,
|
242 |
+
'active_installs' => true,
|
243 |
+
'icons' => true,
|
244 |
+
'short_description' => true,
|
245 |
+
)
|
246 |
+
));
|
247 |
+
if (!is_wp_error($plugin_info) && is_object($plugin_info) && $plugin_info) {
|
248 |
+
array_unshift($res->plugins, $plugin_info);
|
249 |
+
set_transient('wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7);
|
250 |
+
}
|
251 |
+
}
|
252 |
|
253 |
+
return $res;
|
254 |
+
} // add_plugin_favs
|
255 |
|
256 |
|
257 |
/**
|
261 |
* A necessary data parser to change the POST arrays into save-able data.
|
262 |
*
|
263 |
* @return array of redirects
|
264 |
+
* @author WebFactory Ltd
|
265 |
*
|
266 |
*/
|
267 |
public static function _parse_serial_array($array)
|
274 |
if (empty($array['url_to'][$i]) || empty($array['url_from'][$i])) continue;
|
275 |
$new_redirects[] = array(
|
276 |
'id' => isset($array['id'][$i]) ? $array['id'][$i] : null,
|
277 |
+
'url_from' => esc_attr(strip_tags($array['url_from'][$i])),
|
278 |
+
'url_to' => esc_attr(strip_tags($array['url_to'][$i])),
|
279 |
'type' => (is_numeric($array['url_to'][$i])) ? 'post' : 'url',
|
280 |
'status' => isset($array['status'][$i]) ? $array['status'][$i] : '301'
|
281 |
);
|
292 |
* TODO: Maybe refactor this to reduce the number of queries.
|
293 |
*
|
294 |
* @return nothing
|
295 |
+
* @author WebFactory Ltd
|
296 |
*/
|
297 |
public function ajax_save_redirect()
|
298 |
{
|
305 |
|
306 |
$update = array(
|
307 |
'id' => ($_POST['id']) ? intval($_POST['id']) : false,
|
308 |
+
'url_from' => esc_attr(strip_tags($_POST['url_from'])), // remove the $root from the url if supplied, and a leading /
|
309 |
+
'url_to' => esc_attr(strip_tags($_POST['url_to'])),
|
310 |
'type' => (is_numeric($_POST['url_to']) ? 'post' : 'url'),
|
311 |
'status' => $_POST['status']
|
312 |
);
|
360 |
* TODO: Maybe refactor this to reduce the number of queries.
|
361 |
*
|
362 |
* @return nothing
|
363 |
+
* @author WebFactory Ltd
|
364 |
*/
|
365 |
public static function _save_redirects($array)
|
366 |
{
|
424 |
* Gets the redirects. Can be switched to return Active Only redirects.
|
425 |
*
|
426 |
* @return array of redirects
|
427 |
+
* @author WebFactory Ltd
|
428 |
*
|
429 |
*/
|
430 |
public static function get_redirects($active_only = false)
|
475 |
* Add +1 to the specified field for a given id
|
476 |
*
|
477 |
* @return the result
|
478 |
+
* @author WebFactory Ltd
|
479 |
*
|
480 |
*/
|
481 |
public static function increment_field($id, $field)
|
493 |
* This function will list out all the current entries.
|
494 |
*
|
495 |
* @return html string
|
496 |
+
* @author WebFactory Ltd
|
497 |
*
|
498 |
*/
|
499 |
public static function list_redirects()
|
519 |
* This function will remove an entry.
|
520 |
*
|
521 |
* @return nothing
|
522 |
+
* @author WebFactory Ltd
|
523 |
*
|
524 |
*/
|
525 |
public static function ajax_eps_delete_entry()
|
554 |
* This function will return a blank row ready for user input.
|
555 |
*
|
556 |
* @return html string
|
557 |
+
* @author WebFactory Ltd
|
558 |
*
|
559 |
*/
|
560 |
public static function get_entry($redirect_id = false)
|
625 |
*
|
626 |
* This function will output a variable containing the admin ajax url for use in javascript.
|
627 |
*
|
628 |
+
* @author WebFactory Ltd
|
629 |
*
|
630 |
*/
|
631 |
public static function set_ajax_url()
|
652 |
*
|
653 |
* @return void
|
654 |
* @param $string = the object to prettify; Typically a string.
|
655 |
+
* @author WebFactory Ltd
|
656 |
*/
|
657 |
if (!function_exists('eps_prettify')) {
|
658 |
function eps_prettify($string)
|
eps-form-elements.php
CHANGED
@@ -27,7 +27,7 @@ if (!defined('ABSPATH')) {
|
|
27 |
* This function will initialze a series of html form elements so a user can narrow down their redirect destination.
|
28 |
*
|
29 |
* @return html string
|
30 |
-
* @author
|
31 |
*
|
32 |
*/
|
33 |
|
@@ -53,7 +53,7 @@ function eps_get_selector($redirect = false)
|
|
53 |
$html .= '<input class="eps-url-input select-eps-url-input"
|
54 |
type="text"
|
55 |
name="redirect[url_to][]"
|
56 |
-
value="' . (isset($redirect->url_to) ? $redirect->url_to : null) . '"
|
57 |
placeholder="' . get_bloginfo('url') . '" ' . (!isset($redirect->type) || ((isset($redirect->type) && $redirect->type != 'post')) ? null : ' style="display:none;"') .
|
58 |
'" />';
|
59 |
|
@@ -68,7 +68,7 @@ function eps_get_selector($redirect = false)
|
|
68 |
* This function will output the formatted destination string.
|
69 |
*
|
70 |
* @return html string
|
71 |
-
* @author
|
72 |
*
|
73 |
*/
|
74 |
function eps_get_destination($redirect = false)
|
@@ -96,9 +96,9 @@ function eps_get_destination($redirect = false)
|
|
96 |
} else {
|
97 |
// This is redirect points to a url
|
98 |
?>
|
99 |
-
<a target="_blank" class="eps-url" href="<?php echo esc_attr($redirect->url_to); ?>" title="<?php echo esc_attr($redirect->url_to); ?>">
|
100 |
<span class="eps-url-root eps-url-startcap">URL:</span><span
|
101 |
-
class="eps-url-fragment eps-url-endcap "><?php echo esc_attr($redirect->url_to); ?></span>
|
102 |
</a>
|
103 |
<?php
|
104 |
|
@@ -117,7 +117,7 @@ function eps_get_destination($redirect = false)
|
|
117 |
* This function will output the available destination types.
|
118 |
*
|
119 |
* @return html string
|
120 |
-
* @author
|
121 |
*
|
122 |
*/
|
123 |
function eps_get_type_select($post_types, $current_post = false)
|
@@ -141,7 +141,7 @@ function eps_get_type_select($post_types, $current_post = false)
|
|
141 |
* This function will output the available post types.
|
142 |
*
|
143 |
* @return html string
|
144 |
-
* @author
|
145 |
*
|
146 |
*/
|
147 |
function eps_get_post_type_selects($post_type, $current_post = false)
|
@@ -171,7 +171,7 @@ function eps_get_post_type_selects($post_type, $current_post = false)
|
|
171 |
* This function will output a select box with all the taxonomies and terms.
|
172 |
*
|
173 |
* @return html string
|
174 |
-
* @author
|
175 |
*
|
176 |
*/
|
177 |
function eps_get_term_archive_select()
|
27 |
* This function will initialze a series of html form elements so a user can narrow down their redirect destination.
|
28 |
*
|
29 |
* @return html string
|
30 |
+
* @author WebFactory Ltd
|
31 |
*
|
32 |
*/
|
33 |
|
53 |
$html .= '<input class="eps-url-input select-eps-url-input"
|
54 |
type="text"
|
55 |
name="redirect[url_to][]"
|
56 |
+
value="' . (isset($redirect->url_to) ? stripslashes(esc_attr($redirect->url_to)) : null) . '"
|
57 |
placeholder="' . get_bloginfo('url') . '" ' . (!isset($redirect->type) || ((isset($redirect->type) && $redirect->type != 'post')) ? null : ' style="display:none;"') .
|
58 |
'" />';
|
59 |
|
68 |
* This function will output the formatted destination string.
|
69 |
*
|
70 |
* @return html string
|
71 |
+
* @author WebFactory Ltd
|
72 |
*
|
73 |
*/
|
74 |
function eps_get_destination($redirect = false)
|
96 |
} else {
|
97 |
// This is redirect points to a url
|
98 |
?>
|
99 |
+
<a target="_blank" class="eps-url" href="<?php echo stripslashes(esc_attr($redirect->url_to)); ?>" title="<?php echo stripslashes(esc_attr($redirect->url_to)); ?>">
|
100 |
<span class="eps-url-root eps-url-startcap">URL:</span><span
|
101 |
+
class="eps-url-fragment eps-url-endcap "><?php echo stripslashes(esc_attr($redirect->url_to)); ?></span>
|
102 |
</a>
|
103 |
<?php
|
104 |
|
117 |
* This function will output the available destination types.
|
118 |
*
|
119 |
* @return html string
|
120 |
+
* @author WebFactory Ltd
|
121 |
*
|
122 |
*/
|
123 |
function eps_get_type_select($post_types, $current_post = false)
|
141 |
* This function will output the available post types.
|
142 |
*
|
143 |
* @return html string
|
144 |
+
* @author WebFactory Ltd
|
145 |
*
|
146 |
*/
|
147 |
function eps_get_post_type_selects($post_type, $current_post = false)
|
171 |
* This function will output a select box with all the taxonomies and terms.
|
172 |
*
|
173 |
* @return html string
|
174 |
+
* @author WebFactory Ltd
|
175 |
*
|
176 |
*/
|
177 |
function eps_get_term_archive_select()
|
libs/eps-plugin-options.php
CHANGED
@@ -240,7 +240,7 @@ if (!class_exists('EPS_Redirects_Plugin_Options')) {
|
|
240 |
* This function initialize the plugin settings page.
|
241 |
*
|
242 |
* @return string
|
243 |
-
* @author
|
244 |
*
|
245 |
*/
|
246 |
public function add_options_page()
|
@@ -261,7 +261,7 @@ if (!class_exists('EPS_Redirects_Plugin_Options')) {
|
|
261 |
*
|
262 |
* This function will create the admin page.
|
263 |
*
|
264 |
-
* @author
|
265 |
*
|
266 |
*/
|
267 |
public function do_admin_page()
|
240 |
* This function initialize the plugin settings page.
|
241 |
*
|
242 |
* @return string
|
243 |
+
* @author WebFactory Ltd
|
244 |
*
|
245 |
*/
|
246 |
public function add_options_page()
|
261 |
*
|
262 |
* This function will create the admin page.
|
263 |
*
|
264 |
+
* @author WebFactory Ltd
|
265 |
*
|
266 |
*/
|
267 |
public function do_admin_page()
|
plugin.php
CHANGED
@@ -181,7 +181,7 @@ class EPS_Redirects_Plugin
|
|
181 |
* This function will check the current version and do any fixes required
|
182 |
*
|
183 |
* @return string - version number.
|
184 |
-
* @author
|
185 |
*
|
186 |
*/
|
187 |
public function update_self()
|
@@ -203,7 +203,7 @@ class EPS_Redirects_Plugin
|
|
203 |
* Will migrate the old storage method to the new tables.
|
204 |
*
|
205 |
* @return nothing
|
206 |
-
* @author
|
207 |
*
|
208 |
*/
|
209 |
public static function _migrate_to_v2()
|
@@ -234,7 +234,7 @@ class EPS_Redirects_Plugin
|
|
234 |
* Creates the database architecture
|
235 |
*
|
236 |
* @return nothing
|
237 |
-
* @author
|
238 |
*
|
239 |
*/
|
240 |
public static function _create_redirect_table()
|
@@ -268,7 +268,7 @@ class EPS_Redirects_Plugin
|
|
268 |
* Enqueues the resources, and makes sure we have what we need to proceed.
|
269 |
*
|
270 |
* @return nothing
|
271 |
-
* @author
|
272 |
*
|
273 |
*/
|
274 |
public static function plugin_resources()
|
@@ -309,7 +309,7 @@ class EPS_Redirects_Plugin
|
|
309 |
* This function handles various POST requests.
|
310 |
*
|
311 |
* @return nothing
|
312 |
-
* @author
|
313 |
*
|
314 |
*/
|
315 |
public function check_plugin_actions()
|
@@ -331,7 +331,7 @@ class EPS_Redirects_Plugin
|
|
331 |
$options = eps_dropdown_pages(array('post_type' => $post_type->name));
|
332 |
set_transient('post_type_cache_' . $post_type->name, $options, HOUR_IN_SECONDS);
|
333 |
}
|
334 |
-
$this->add_admin_message("
|
335 |
}
|
336 |
|
337 |
// Save Redirects
|
@@ -352,7 +352,7 @@ class EPS_Redirects_Plugin
|
|
352 |
* export_csv
|
353 |
*
|
354 |
* @return nothing
|
355 |
-
* @author
|
356 |
*
|
357 |
*/
|
358 |
public static function export_csv()
|
@@ -388,7 +388,7 @@ class EPS_Redirects_Plugin
|
|
388 |
* This function handles the upload of CSV files, in accordance to the upload method specified.
|
389 |
*
|
390 |
* @return html string
|
391 |
-
* @author
|
392 |
*
|
393 |
*/
|
394 |
private function _upload()
|
@@ -449,10 +449,10 @@ class EPS_Redirects_Plugin
|
|
449 |
continue;
|
450 |
}
|
451 |
|
452 |
-
$status = (isset($redirect[0])) ? $redirect[0] : false;
|
453 |
-
$url_from = (isset($redirect[1])) ? $redirect[1] : false;
|
454 |
-
$url_to = (isset($redirect[2])) ? $redirect[2] : false;
|
455 |
-
$count = (isset($redirect[3])) ? $redirect[3] : false;
|
456 |
|
457 |
switch (strtolower($status)) {
|
458 |
case '404':
|
@@ -531,7 +531,7 @@ class EPS_Redirects_Plugin
|
|
531 |
}
|
532 |
|
533 |
$this->add_admin_message(sprintf(
|
534 |
-
"
|
535 |
$counter['new'],
|
536 |
$counter['updated'],
|
537 |
$counter['skipped'],
|
@@ -550,7 +550,7 @@ class EPS_Redirects_Plugin
|
|
550 |
*
|
551 |
* Template Hooks
|
552 |
*
|
553 |
-
* @author
|
554 |
*
|
555 |
*/
|
556 |
public static function admin_panel_cache()
|
@@ -591,7 +591,7 @@ class EPS_Redirects_Plugin
|
|
591 |
* This function will check the current version and do any fixes required
|
592 |
*
|
593 |
* @return string - version number.
|
594 |
-
* @author
|
595 |
*
|
596 |
*/
|
597 |
|
@@ -606,7 +606,7 @@ class EPS_Redirects_Plugin
|
|
606 |
* Activation and Deactivation Handlers.
|
607 |
*
|
608 |
* @return nothing
|
609 |
-
* @author
|
610 |
*/
|
611 |
public function activation_error()
|
612 |
{
|
@@ -634,7 +634,7 @@ class EPS_Redirects_Plugin
|
|
634 |
*
|
635 |
* These functions will output a variable containing the admin ajax url for use in javascript.
|
636 |
*
|
637 |
-
* @author
|
638 |
*
|
639 |
*/
|
640 |
protected function add_admin_message($message, $code)
|
181 |
* This function will check the current version and do any fixes required
|
182 |
*
|
183 |
* @return string - version number.
|
184 |
+
* @author WebFactory Ltd
|
185 |
*
|
186 |
*/
|
187 |
public function update_self()
|
203 |
* Will migrate the old storage method to the new tables.
|
204 |
*
|
205 |
* @return nothing
|
206 |
+
* @author WebFactory Ltd
|
207 |
*
|
208 |
*/
|
209 |
public static function _migrate_to_v2()
|
234 |
* Creates the database architecture
|
235 |
*
|
236 |
* @return nothing
|
237 |
+
* @author WebFactory Ltd
|
238 |
*
|
239 |
*/
|
240 |
public static function _create_redirect_table()
|
268 |
* Enqueues the resources, and makes sure we have what we need to proceed.
|
269 |
*
|
270 |
* @return nothing
|
271 |
+
* @author WebFactory Ltd
|
272 |
*
|
273 |
*/
|
274 |
public static function plugin_resources()
|
309 |
* This function handles various POST requests.
|
310 |
*
|
311 |
* @return nothing
|
312 |
+
* @author WebFactory Ltd
|
313 |
*
|
314 |
*/
|
315 |
public function check_plugin_actions()
|
331 |
$options = eps_dropdown_pages(array('post_type' => $post_type->name));
|
332 |
set_transient('post_type_cache_' . $post_type->name, $options, HOUR_IN_SECONDS);
|
333 |
}
|
334 |
+
$this->add_admin_message("Success: Cache Refreshed.", "updated");
|
335 |
}
|
336 |
|
337 |
// Save Redirects
|
352 |
* export_csv
|
353 |
*
|
354 |
* @return nothing
|
355 |
+
* @author WebFactory Ltd
|
356 |
*
|
357 |
*/
|
358 |
public static function export_csv()
|
388 |
* This function handles the upload of CSV files, in accordance to the upload method specified.
|
389 |
*
|
390 |
* @return html string
|
391 |
+
* @author WebFactory Ltd
|
392 |
*
|
393 |
*/
|
394 |
private function _upload()
|
449 |
continue;
|
450 |
}
|
451 |
|
452 |
+
$status = (isset($redirect[0])) ? esc_attr(strip_tags($redirect[0])) : false;
|
453 |
+
$url_from = (isset($redirect[1])) ? esc_attr(strip_tags($redirect[1])) : false;
|
454 |
+
$url_to = (isset($redirect[2])) ? esc_attr(strip_tags($redirect[2])) : false;
|
455 |
+
$count = (isset($redirect[3])) ? esc_attr(strip_tags($redirect[3])) : false;
|
456 |
|
457 |
switch (strtolower($status)) {
|
458 |
case '404':
|
531 |
}
|
532 |
|
533 |
$this->add_admin_message(sprintf(
|
534 |
+
"Success: %d New Redirects, %d Updated, %d Skipped, %d Errors. (Attempted to import %d redirects).",
|
535 |
$counter['new'],
|
536 |
$counter['updated'],
|
537 |
$counter['skipped'],
|
550 |
*
|
551 |
* Template Hooks
|
552 |
*
|
553 |
+
* @author WebFactory Ltd
|
554 |
*
|
555 |
*/
|
556 |
public static function admin_panel_cache()
|
591 |
* This function will check the current version and do any fixes required
|
592 |
*
|
593 |
* @return string - version number.
|
594 |
+
* @author WebFactory Ltd
|
595 |
*
|
596 |
*/
|
597 |
|
606 |
* Activation and Deactivation Handlers.
|
607 |
*
|
608 |
* @return nothing
|
609 |
+
* @author WebFactory Ltd
|
610 |
*/
|
611 |
public function activation_error()
|
612 |
{
|
634 |
*
|
635 |
* These functions will output a variable containing the admin ajax url for use in javascript.
|
636 |
*
|
637 |
+
* @author WebFactory Ltd
|
638 |
*
|
639 |
*/
|
640 |
protected function add_admin_message($message, $code)
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: WebFactory, wpreset, googlemapswidget, underconstructionpage
|
|
3 |
Tags: 301 redirect, redirects, redirect, 302 redirect, redirection, 302, seo, 302 redirect, 404, 404 redirect, 301, 307
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 5.5
|
6 |
-
Stable tag: 2.
|
7 |
Requires PHP: 5.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -56,6 +56,10 @@ A 301 redirect indicates that the page requested has been permanently moved to t
|
|
56 |
|
57 |
== Changelog ==
|
58 |
|
|
|
|
|
|
|
|
|
59 |
= 2.50 =
|
60 |
* 2020/08/10
|
61 |
* added support for 307 Temporary Redirect
|
3 |
Tags: 301 redirect, redirects, redirect, 302 redirect, redirection, 302, seo, 302 redirect, 404, 404 redirect, 301, 307
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 5.5
|
6 |
+
Stable tag: 2.51
|
7 |
Requires PHP: 5.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
56 |
|
57 |
== Changelog ==
|
58 |
|
59 |
+
= 2.51 =
|
60 |
+
* 2020/08/13
|
61 |
+
* security fixes - thank you <a href="http://eringerm.com/">Erin</a>
|
62 |
+
|
63 |
= 2.50 =
|
64 |
* 2020/08/10
|
65 |
* added support for 307 Temporary Redirect
|
templates/admin-panel-cache.php
CHANGED
@@ -15,7 +15,7 @@ if (!defined('ABSPATH')) {
|
|
15 |
}
|
16 |
?>
|
17 |
|
18 |
-
<div class="eps-panel eps-margin-top">
|
19 |
<form method="post" action="">
|
20 |
<?php wp_nonce_field('eps_redirect_nonce', 'eps_redirect_nonce_submit'); ?>
|
21 |
<input type="submit" name="eps_redirect_refresh" id="submit" class="button button-secondary" value="Refresh Cache" />
|
15 |
}
|
16 |
?>
|
17 |
|
18 |
+
<div class="eps-panel eps-margin-top rating-box">
|
19 |
<form method="post" action="">
|
20 |
<?php wp_nonce_field('eps_redirect_nonce', 'eps_redirect_nonce_submit'); ?>
|
21 |
<input type="submit" name="eps_redirect_refresh" id="submit" class="button button-secondary" value="Refresh Cache" />
|
templates/template.redirect-entry-edit.php
CHANGED
@@ -27,7 +27,7 @@ $redirect = self::get_redirect($redirect_id);
|
|
27 |
</select>
|
28 |
|
29 |
<div class="eps-url"><span class="eps-url-root"><?php bloginfo('url'); ?>/ </span></div>
|
30 |
-
<input class="eps-url-input" type="text" name="redirect[url_from][]" value="<?php echo ($redirect) ? $redirect->url_from : ''; ?>">
|
31 |
|
32 |
</td>
|
33 |
<td>
|
27 |
</select>
|
28 |
|
29 |
<div class="eps-url"><span class="eps-url-root"><?php bloginfo('url'); ?>/ </span></div>
|
30 |
+
<input class="eps-url-input" type="text" name="redirect[url_from][]" value="<?php echo ($redirect) ? esc_attr(stripslashes($redirect->url_from)) : ''; ?>">
|
31 |
|
32 |
</td>
|
33 |
<td>
|
templates/template.redirect-entry.php
CHANGED
@@ -23,10 +23,10 @@ $query_args = array('page' => $EPS_Redirects_Plugin->config('page_slug'), 'delet
|
|
23 |
<p class="eps-grey-text eps-text-center eps-small"><?php echo $redirect->id; ?></p>
|
24 |
</td>
|
25 |
<td>
|
26 |
-
<a target="_blank" class="eps-url" href="<?php bloginfo('url'); ?>/<?php echo esc_attr($dfrom); ?>"
|
27 |
-
title="<?php bloginfo('url'); ?>/<?php echo esc_attr($dfrom); ?>">
|
28 |
<span class="eps-url-root eps-url-startcap"><?php echo ($redirect->status == 'inactive') ? 'OFF' : esc_attr($redirect->status); ?></span><span
|
29 |
-
class="eps-url-root"><?php bloginfo('url'); ?>/</span><span class="eps-url-fragment eps-url-endcap"><?php echo
|
30 |
</a>
|
31 |
</td>
|
32 |
<td>
|
23 |
<p class="eps-grey-text eps-text-center eps-small"><?php echo $redirect->id; ?></p>
|
24 |
</td>
|
25 |
<td>
|
26 |
+
<a target="_blank" class="eps-url" href="<?php bloginfo('url'); ?>/<?php echo stripslashes(esc_attr($dfrom)); ?>"
|
27 |
+
title="<?php bloginfo('url'); ?>/<?php echo stripslashes(esc_attr($dfrom)); ?>">
|
28 |
<span class="eps-url-root eps-url-startcap"><?php echo ($redirect->status == 'inactive') ? 'OFF' : esc_attr($redirect->status); ?></span><span
|
29 |
+
class="eps-url-root"><?php bloginfo('url'); ?>/</span><span class="eps-url-fragment eps-url-endcap"><?php echo stripslashes($dfrom); ?></span>
|
30 |
</a>
|
31 |
</td>
|
32 |
<td>
|