Version Description
- **Security fixes
Download this release
Release Info
Developer | anadnet |
Plugin | Quick Page/Post Redirect Plugin |
Version | 5.2.3 |
Comparing to | |
See all releases |
Code changes from version 5.2.2 to 5.2.3
- page_post_redirect_plugin.php +72 -63
- readme.txt +6 -3
page_post_redirect_plugin.php
CHANGED
@@ -6,7 +6,7 @@ Description: Redirect Pages, Posts or Custom Post Types to another location quic
|
|
6 |
Author: anadnet
|
7 |
Author URI: http://www.anadnet.com/
|
8 |
Donate link:
|
9 |
-
Version: 5.2.
|
10 |
Text Domain: quick-pagepost-redirect-plugin
|
11 |
Domain Path: /lang
|
12 |
License: GPLv2 or later
|
@@ -71,7 +71,7 @@ class quick_page_post_reds {
|
|
71 |
public $pprptypes_ok;
|
72 |
|
73 |
function __construct() {
|
74 |
-
$this->ppr_curr_version = '5.2.
|
75 |
$this->ppr_nofollow = array();
|
76 |
$this->ppr_newindow = array();
|
77 |
$this->ppr_url = array();
|
@@ -336,7 +336,7 @@ class quick_page_post_reds {
|
|
336 |
if ( !current_user_can( 'manage_options' ) ) exit('error');
|
337 |
|
338 |
check_ajax_referer( 'qppr_ajax_verify', 'security', true );
|
339 |
-
$request = isset($_POST['request']) &&
|
340 |
$curRedirects = get_option( 'quickppr_redirects', array() );
|
341 |
$curMeta = get_option( 'quickppr_redirects_meta', array() );
|
342 |
if( isset( $curRedirects[ $request ] ) && isset( $curMeta[ $request ] ) ){
|
@@ -357,12 +357,12 @@ class quick_page_post_reds {
|
|
357 |
check_ajax_referer( 'qppr_ajax_verify', 'security', true );
|
358 |
|
359 |
$protocols = apply_filters('qppr_allowed_protocols',array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
360 |
-
$request = isset($_POST['request']) &&
|
361 |
-
$requestOrig = isset($_POST['original']) &&
|
362 |
-
$destination = isset($_POST['destination']) &&
|
363 |
$newWin = isset($_POST['newwin']) && (int) trim($_POST['newwin']) == 1 ? 1 : 0;
|
364 |
$noFollow = isset($_POST['nofollow']) && (int) trim($_POST['nofollow']) == 1 ? 1 : 0;
|
365 |
-
$updateRow = isset($_POST['row']) && $_POST['row'] != '' ? (int) str_replace('rowpprdel-',''
|
366 |
$curRedirects = get_option('quickppr_redirects', array());
|
367 |
$curMeta = get_option('quickppr_redirects_meta', array());
|
368 |
$rkeys = array_keys($curRedirects);
|
@@ -458,8 +458,8 @@ class quick_page_post_reds {
|
|
458 |
$protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
459 |
|
460 |
for($i = 0; $i < sizeof($data['request']); ++$i) {
|
461 |
-
$request = esc_url(
|
462 |
-
$destination = esc_url(
|
463 |
$newwin = isset($data['newwindow'][$i]) && (int)(trim($data['newwindow'][$i])) == 1 ? 1 : 0;
|
464 |
$nofoll = isset($data['nofollow'][$i]) && (int)(trim($data['nofollow'][$i])) == 1 ? 1 : 0;
|
465 |
if( strpos($request,'/',0) !== 0 && !$this->qppr_strposa($request,$protocols)){
|
@@ -561,9 +561,9 @@ class quick_page_post_reds {
|
|
561 |
$qppr_nofoll = get_post_meta( $post_id , '_pprredirect_relnofollow', true );
|
562 |
$rediricon = $qppr_newwin != '' ? '<span class="dashicons dashicons-external" title="New Window"></span>' : '<span class="dashicons dashicons-arrow-right-alt" title="Redirects to"></span>';
|
563 |
if($qppr_active == '1'){
|
564 |
-
echo '<div class="qpprfont-on" title="on">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>';
|
565 |
}else{
|
566 |
-
echo '<div class="qpprfont-not" title="off">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>';
|
567 |
}
|
568 |
}
|
569 |
break;
|
@@ -771,17 +771,17 @@ class quick_page_post_reds {
|
|
771 |
$linkcontent[] = '<li class="faq-item"><a name="faq-'.$aqr.'"></a><h3 class="qa"><span class="qa">Q. </span>'.esc_html( $item->get_title() ).'</h3><div class="qa-content"><span class="qa answer">A. </span>'.$item->get_content().'</div><div class="toplink"><a href="#faq-top">top ↑</a></li>';
|
772 |
endforeach;
|
773 |
}
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
}
|
786 |
|
787 |
function ppr_summary_page() {
|
@@ -792,7 +792,7 @@ class quick_page_post_reds {
|
|
792 |
<br/>
|
793 |
<?php if($this->updatemsg!=''){?>
|
794 |
<div class="updated settings-error" id="setting-error-settings_updated">
|
795 |
-
<p><strong><?php echo $this->updatemsg
|
796 |
</div>
|
797 |
<?php } ?>
|
798 |
<?php $this->updatemsg ='';?>
|
@@ -850,7 +850,7 @@ class quick_page_post_reds {
|
|
850 |
$tempQTReportArray = array('url'=>$key,'destinaition'=>$redir);
|
851 |
$qr_nofollow = isset($this->quickppr_redirectsmeta[$key]['nofollow']) && $this->quickppr_redirectsmeta[$key]['nofollow'] != '' ? $this->quickppr_redirectsmeta[$key]['nofollow'] : '0';
|
852 |
$qr_newwindow = isset($this->quickppr_redirectsmeta[$key]['newwindow']) && $this->quickppr_redirectsmeta[$key]['newwindow'] != '' ? $this->quickppr_redirectsmeta[$key]['newwindow'] : '0';
|
853 |
-
$qrtredURL = (int) $this->pproverride_rewrite == 1 && $this->pproverride_URL != '' ? '<span class="ppr-rrlor">'
|
854 |
$qrtactive = (int) $this->pproverride_active == 1 ? '<span class="ppr-acor">0</span>' : 1;
|
855 |
$qr_nofollow = (int) $this->pproverride_nofollow == 1 ? '<span class="ppr-nfor">1</span>' : $qr_nofollow;
|
856 |
$qr_newwindow = (int) $this->pproverride_newwin == 1 ? '<span class="ppr-nwor">1</span>' : $qr_newwindow;
|
@@ -905,7 +905,7 @@ class quick_page_post_reds {
|
|
905 |
$tnofoll = (int) $this->pproverride_nofollow == 1 ? '<span class="ppr-nfor">1</span>' : $tnofoll;
|
906 |
$tnewwin = (int) $this->pproverride_newwin == 1 ? '<span class="ppr-nwor">1</span>' : $tnewwin;
|
907 |
$trewrit = (int) $this->pproverride_rewrite == 1 ? '<span class="ppr-rrlor">1</span>' : $trewrit;
|
908 |
-
$tredURL = (int) $this->pproverride_rewrite == 1 && $this->pproverride_URL != '' ? '<span class="ppr-rrlor">' . $this->pproverride_URL . '</span>' : $tredURL;
|
909 |
$toriurl = isset($reportItem['origurl']) ? $reportItem['origurl'] : get_permalink($tpostid);
|
910 |
$pclass = $pclass == 'offrow' ? 'onrow' : 'offrow';
|
911 |
if($tredURL == 'http://www.example.com' || $tredURL == '<span class="ppr-rrlor">http://www.example.com</span>'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
|
@@ -937,8 +937,8 @@ class quick_page_post_reds {
|
|
937 |
|
938 |
function ppr_import_export_page(){
|
939 |
if(isset($_GET['update'])){
|
940 |
-
if($_GET['update']=='4'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' ) . '';}
|
941 |
-
if($_GET['update']=='5'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' ) . '';}
|
942 |
}
|
943 |
echo '<div class="wrap">';
|
944 |
echo ' <h2>' . __( 'Import/Export Redirects', 'quick-pagepost-redirect-plugin' ) . '</h2>';
|
@@ -1028,20 +1028,20 @@ class quick_page_post_reds {
|
|
1028 |
}
|
1029 |
|
1030 |
function ppr_settings_page() {
|
1031 |
-
if( isset( $_GET['update'] ) && $_GET['update'] != '' ){
|
1032 |
-
if( $_GET['update'] == '3' ){ $this->updatemsg = __( 'All Quick Redirects deleted from database.', 'quick-pagepost-redirect-plugin' );}
|
1033 |
-
if( $_GET['update'] == '2' ){ $this->updatemsg = __( 'All Individual Redirects deleted from database.', 'quick-pagepost-redirect-plugin' );}
|
1034 |
-
if( $_GET['update'] == '4' ){ $this->updatemsg = __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' );}
|
1035 |
-
if( $_GET['update'] == '5' ){ $this->updatemsg = __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' );}
|
1036 |
-
if( $_GET['update'] == '6' ){ $this->updatemsg = __( 'All Redirects and Settings deleted from database', 'quick-pagepost-redirect-plugin' );}
|
1037 |
-
if( $_GET['update'] == '0' ){ $this->updatemsg = __( 'There was an problem with your last request. Please reload the page and try again.', 'quick-pagepost-redirect-plugin' );}
|
1038 |
}
|
1039 |
?>
|
1040 |
<div class="wrap" style="position:relative;">
|
1041 |
<h2><?php echo __( 'Quick Page Post Redirect Options', 'quick-pagepost-redirect-plugin' );?></h2>
|
1042 |
<?php if($this->updatemsg != ''){?>
|
1043 |
<div class="updated" id="setting-error-settings_updated">
|
1044 |
-
<p><strong><?php echo $this->updatemsg;?></strong></p>
|
1045 |
</div>
|
1046 |
<?php } ?>
|
1047 |
<?php $this->updatemsg = '';//reset message;?>
|
@@ -1088,7 +1088,7 @@ class quick_page_post_reds {
|
|
1088 |
}else{
|
1089 |
$ptypecheck = '';
|
1090 |
}
|
1091 |
-
$ptypeHTML .= '<div class="qppr-ptype"><input class="qppr-ptypecb" type="checkbox" name="ppr_qpprptypeok[]" value="'
|
1092 |
}
|
1093 |
}
|
1094 |
$ptypeHTML .= '</div>';
|
@@ -1192,7 +1192,7 @@ class quick_page_post_reds {
|
|
1192 |
<tr>
|
1193 |
<td><code>/about.htm</code></td>
|
1194 |
<td> » </td>
|
1195 |
-
<td><code>'
|
1196 |
</tr>
|
1197 |
<tr>
|
1198 |
<td><code>/directory/landing/</code></td>
|
@@ -1202,7 +1202,7 @@ class quick_page_post_reds {
|
|
1202 |
<tr>
|
1203 |
<td><code>'. str_replace("http://", "https://",$this->homelink).'/contact-us/</code></td>
|
1204 |
<td> » </td>
|
1205 |
-
<td><code>'
|
1206 |
</tr>
|
1207 |
</table>
|
1208 |
|
@@ -1290,7 +1290,7 @@ class quick_page_post_reds {
|
|
1290 |
<div class="wrap">
|
1291 |
<h2><?php echo __( 'Quick Redirects (301 Redirects)', 'quick-pagepost-redirect-plugin' );?></h2>
|
1292 |
<?php if($this->updatemsg != ''){?>
|
1293 |
-
<div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div>
|
1294 |
<?php } ?>
|
1295 |
<?php $this->updatemsg ='';//reset message;?>
|
1296 |
<?php
|
@@ -1546,7 +1546,7 @@ class quick_page_post_reds {
|
|
1546 |
$this->ppr_all_redir_array = $this->get_main_array();
|
1547 |
$this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
|
1548 |
if( current_user_can( 'manage_options' ) ){
|
1549 |
-
if ( isset( $_GET['action'] ) && $_GET['action'] == 'export-quick-redirects-file' ) {
|
1550 |
$newQPPR_Array = array();
|
1551 |
check_admin_referer( 'export-redirects-qppr' );
|
1552 |
$type = isset( $_GET['qppr-file-type'] ) && sanitize_text_field( $_GET['qppr-file-type'] ) == 'encoded' ? 'encoded' : 'pipe' ; // can be 'encoded' or 'pipe';
|
@@ -1588,7 +1588,7 @@ class quick_page_post_reds {
|
|
1588 |
wp_die( __( 'An error occured during the file upload. Please fix your server configuration and retry.', 'quick-pagepost-redirect-plugin' ) , __( 'SERVER ERROR - Could Not Load', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
|
1589 |
exit;
|
1590 |
} else {
|
1591 |
-
$config_file = file_get_contents( $_FILES['qppr_file']['tmp_name'] );
|
1592 |
if ( substr($config_file, 0, strlen('QUICKPAGEPOSTREDIRECT')) !== 'QUICKPAGEPOSTREDIRECT' ) {
|
1593 |
if(strpos($config_file,'|') !== false){
|
1594 |
$delim = '|';
|
@@ -1800,7 +1800,7 @@ class quick_page_post_reds {
|
|
1800 |
echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'> ' . __( '<strong>Show</strong> Redirect URL in link.', 'quick-pagepost-redirect-plugin' ) . ' <span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon dashicons dashicons-editor-help"></span><span class="qppr_meta_help">' . __( 'To increase effectivness, select "Use jQuery" in the options. This will only change the URL in the link <strong>NOT</strong> the URL in the Address bar.', 'quick-pagepost-redirect-plugin' ) . '</span></span></label><br /><br />';
|
1801 |
//echo '<label for="pprredirect_casesensitive" style="padding:2px 0;"><input type="checkbox" name="pprredirect_casesensitive" id="pprredirect_casesensitive" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_casesensitive',true),0).'> Make the Redirect Case Insensitive.</label><br /><br />';
|
1802 |
echo '<label for="pprredirect_url"><b>' . __( 'Redirect / Destination URL:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
|
1803 |
-
echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'
|
1804 |
echo '<label for="pprredirect_type"><b>' . __( 'Type of Redirect:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
|
1805 |
|
1806 |
switch($pprredirecttype):
|
@@ -1867,13 +1867,22 @@ class quick_page_post_reds {
|
|
1867 |
if( isset( $_POST['pprredirect_active'] ) || isset( $_POST['pprredirect_url'] ) || isset( $_POST['pprredirect_type'] ) || isset( $_POST['pprredirect_newwindow'] ) || isset($_POST['pprredirect_relnofollow']) || isset($_POST['pprredirect_meta_secs'])):
|
1868 |
$protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
1869 |
// find & save the form data & put it into an array
|
1870 |
-
$my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ?
|
1871 |
-
$my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ?
|
1872 |
-
$my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ?
|
1873 |
-
$my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ?
|
1874 |
-
$my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ?
|
1875 |
-
$my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? esc_url_raw( $_REQUEST['pprredirect_url'], $protocols ) : '';
|
1876 |
-
$my_meta_data['_pprredirect_meta_secs'] = isset($_REQUEST['pprredirect_meta_secs']) && $_REQUEST['pprredirect_meta_secs']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1877 |
|
1878 |
$info = $this->appip_parseURI($my_meta_data['_pprredirect_url']);
|
1879 |
//$my_meta_data['_pprredirect_url'] = esc_url_raw($info['url']);
|
@@ -2085,7 +2094,7 @@ class quick_page_post_reds {
|
|
2085 |
|
2086 |
function redirect(){
|
2087 |
//bypass for testing.
|
2088 |
-
if(isset($_GET['action']) && $_GET['action'] == 'no-redirect' )
|
2089 |
return;
|
2090 |
// Quick Redirects Redirect.
|
2091 |
// Read the list of redirects and if the current page is found in the list, send the visitor on her way
|
@@ -2113,7 +2122,7 @@ class quick_page_post_reds {
|
|
2113 |
$getQAddrNeedle = $this->pproverride_casesensitive ? str_replace( $getQAddress, '', $getAddrNeedle ) : strtolower(str_replace( $getQAddress, '', $getAddrNeedle ));
|
2114 |
$finalQS = str_replace( '&','&', $finalQS);
|
2115 |
$finalQS = $this->pproverride_casesensitive ? $finalQS : strtolower( $finalQS ); //added 5.1.4 to fix URL needle being converted to lower, but not Query (as it never matches unless user enters lower)
|
2116 |
-
$finalQS = apply_filters( 'appip_filter_testing_finalQS', $finalQS, $needle, $haystack); // added 5.1.4 to allow filtering of QS data prior to matching.
|
2117 |
$index = false;
|
2118 |
|
2119 |
/* These are the URL matching checks to see if the request should be redirected.
|
@@ -2125,35 +2134,35 @@ class quick_page_post_reds {
|
|
2125 |
//check if QS data might be part of the redirect URL and not supposed to be added back.
|
2126 |
$index = $needle . $finalQS;
|
2127 |
$finalQS = ''; //remove it
|
2128 |
-
}elseif( array_key_exists(
|
2129 |
//check if QS data might be part of the encoded redirect URL and not supposed to be added back.
|
2130 |
$index = $needle . $finalQS;
|
2131 |
$finalQS = ''; //remove it
|
2132 |
}elseif(array_key_exists( $needle, $haystack)){
|
2133 |
//standard straight forward check for needle (request URL)
|
2134 |
$index = $needle;
|
2135 |
-
}elseif(array_key_exists(
|
2136 |
//standard straight forward check for URL encoded needle (request URL)
|
2137 |
-
$index =
|
2138 |
}elseif(array_key_exists( $getAddrNeedle, $haystack)){
|
2139 |
//Checks of the needle (request URL) might be using a different protocol than site home URL
|
2140 |
$index = $getAddrNeedle;
|
2141 |
-
}elseif(array_key_exists(
|
2142 |
//Checks of an encoded needle (request URL) might be using a different protocol than site home URL
|
2143 |
-
$index =
|
2144 |
}elseif( strpos( $needle, 'https' ) !== false ){
|
2145 |
//Checks of the encoded needle (request URL) might be http but the redirect is set up as http
|
2146 |
if(array_key_exists(str_replace('https','http',$needle), $haystack))
|
2147 |
$index = str_replace('https','http',$needle); //unencoded version
|
2148 |
-
elseif(array_key_exists(str_replace('https','http',
|
2149 |
-
$index = str_replace('https','http',
|
2150 |
}elseif(strpos($needle,'/') === false) {
|
2151 |
//Checks of the needle (request URL) might not have beginning and ending / but the redirect is set up with them
|
2152 |
if( array_key_exists( '/' . $needle . '/', $haystack ) )
|
2153 |
$index = '/'.$needle.'/';
|
2154 |
-
}elseif( array_key_exists(
|
2155 |
//Checks if encoded needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
|
2156 |
-
$index =
|
2157 |
}elseif( array_key_exists( $getQAddrNeedle, $haystack ) ){
|
2158 |
//Checks if needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
|
2159 |
$index = $getQAddrNeedle;
|
@@ -2201,7 +2210,7 @@ class quick_page_post_reds {
|
|
2201 |
|
2202 |
function ppr_do_redirect( $var1='var1', $var2 = 'var2'){
|
2203 |
//bypass for testing.
|
2204 |
-
if(isset($_GET['action']) && $_GET['action'] == 'no-redirect' )
|
2205 |
return;
|
2206 |
// Individual Redirects Redirect.
|
2207 |
// Read the list of redirects and if the current page is found in the list, send the visitor on her way
|
@@ -2338,7 +2347,7 @@ class quick_page_post_reds {
|
|
2338 |
?>
|
2339 |
<div class="wrap" style="position:relative;">
|
2340 |
<h2><?php echo __( 'Meta Redirect Settings', 'quick-pagepost-redirect-plugin' );?></h2>
|
2341 |
-
<?php if ( ! empty( $_GET['settings-updated'] ) ) : ?><div id="message" class="updated notice is-dismissible"><p><?php echo __( 'Settings Updated', 'quick-pagepost-redirect-plugin' );?></p></div><?php endif; ?>
|
2342 |
<p><?php echo __( 'This section is for updating options for redirects that use the "meta refresh" funcitonality for redirecting.', 'quick-pagepost-redirect-plugin' );?></p>
|
2343 |
<p><?php echo __( 'Using the setting below, you can add elements or a message to the page that is loaded before tht redirect, or just allow the page to load as normal until the redirect reaches the number of seconds you have set below.', 'quick-pagepost-redirect-plugin' );?></p>
|
2344 |
<form method="post" action="options.php" class="qpprform">
|
@@ -2681,4 +2690,4 @@ function qppr_sanitize_pprredirect_type_meta( $meta_value ) {
|
|
2681 |
|
2682 |
return sanitize_text_field( $meta_value );
|
2683 |
}
|
2684 |
-
add_filter( 'sanitize_post_meta__pprredirect_type', 'qppr_sanitize_pprredirect_type_meta', 10, 1 );
|
6 |
Author: anadnet
|
7 |
Author URI: http://www.anadnet.com/
|
8 |
Donate link:
|
9 |
+
Version: 5.2.3
|
10 |
Text Domain: quick-pagepost-redirect-plugin
|
11 |
Domain Path: /lang
|
12 |
License: GPLv2 or later
|
71 |
public $pprptypes_ok;
|
72 |
|
73 |
function __construct() {
|
74 |
+
$this->ppr_curr_version = '5.2.3';
|
75 |
$this->ppr_nofollow = array();
|
76 |
$this->ppr_newindow = array();
|
77 |
$this->ppr_url = array();
|
336 |
if ( !current_user_can( 'manage_options' ) ) exit('error');
|
337 |
|
338 |
check_ajax_referer( 'qppr_ajax_verify', 'security', true );
|
339 |
+
$request = isset($_POST['request']) && sanitize_url($_POST['request']) != '' ? sanitize_url($_POST['request']) : '';
|
340 |
$curRedirects = get_option( 'quickppr_redirects', array() );
|
341 |
$curMeta = get_option( 'quickppr_redirects_meta', array() );
|
342 |
if( isset( $curRedirects[ $request ] ) && isset( $curMeta[ $request ] ) ){
|
357 |
check_ajax_referer( 'qppr_ajax_verify', 'security', true );
|
358 |
|
359 |
$protocols = apply_filters('qppr_allowed_protocols',array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
360 |
+
$request = isset($_POST['request']) && sanitize_url($_POST['request']) != '' ? esc_url_raw(str_replace(' ','%20', sanitize_url($_POST['request'])), null, 'appip') : '';
|
361 |
+
$requestOrig = isset($_POST['original']) && sanitize_text_field($_POST['original']) != '' ? esc_url_raw(str_replace(' ','%20', sanitize_text_field($_POST['original'])), null, 'appip') : '';
|
362 |
+
$destination = isset($_POST['destination']) && sanitize_text_field($_POST['destination']) != '' ? esc_url_raw(str_replace(' ','%20',sanitize_text_field($_POST['destination'])), null, 'appip') : '';
|
363 |
$newWin = isset($_POST['newwin']) && (int) trim($_POST['newwin']) == 1 ? 1 : 0;
|
364 |
$noFollow = isset($_POST['nofollow']) && (int) trim($_POST['nofollow']) == 1 ? 1 : 0;
|
365 |
+
$updateRow = isset($_POST['row']) && sanitize_text_field($_POST['row']) != '' ? (int) str_replace('rowpprdel-','',sanitize_text_field($_POST['row'])) : -1;
|
366 |
$curRedirects = get_option('quickppr_redirects', array());
|
367 |
$curMeta = get_option('quickppr_redirects_meta', array());
|
368 |
$rkeys = array_keys($curRedirects);
|
458 |
$protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
459 |
|
460 |
for($i = 0; $i < sizeof($data['request']); ++$i) {
|
461 |
+
$request = esc_url($data['request'][$i], null, 'appip');
|
462 |
+
$destination = esc_url($data['destination'][$i], null, 'appip');
|
463 |
$newwin = isset($data['newwindow'][$i]) && (int)(trim($data['newwindow'][$i])) == 1 ? 1 : 0;
|
464 |
$nofoll = isset($data['nofollow'][$i]) && (int)(trim($data['nofollow'][$i])) == 1 ? 1 : 0;
|
465 |
if( strpos($request,'/',0) !== 0 && !$this->qppr_strposa($request,$protocols)){
|
561 |
$qppr_nofoll = get_post_meta( $post_id , '_pprredirect_relnofollow', true );
|
562 |
$rediricon = $qppr_newwin != '' ? '<span class="dashicons dashicons-external" title="New Window"></span>' : '<span class="dashicons dashicons-arrow-right-alt" title="Redirects to"></span>';
|
563 |
if($qppr_active == '1'){
|
564 |
+
echo esc_html('<div class="qpprfont-on" title="on">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>');
|
565 |
}else{
|
566 |
+
echo esc_html('<div class="qpprfont-not" title="off">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>');
|
567 |
}
|
568 |
}
|
569 |
break;
|
771 |
$linkcontent[] = '<li class="faq-item"><a name="faq-'.$aqr.'"></a><h3 class="qa"><span class="qa">Q. </span>'.esc_html( $item->get_title() ).'</h3><div class="qa-content"><span class="qa answer">A. </span>'.$item->get_content().'</div><div class="toplink"><a href="#faq-top">top ↑</a></li>';
|
772 |
endforeach;
|
773 |
}
|
774 |
+
$output = '<a name="faq-top"></a><h2>'.__('Table of Contents','quick-pagepost-redirect-plugin').'</h2>';
|
775 |
+
$output .= '<ol class="qppr-faq-links">';
|
776 |
+
$output .= implode( "\n", $linkfaq );
|
777 |
+
$output .= '</ol>';
|
778 |
+
$output .= '<h2>' . __( 'Questions/Answers', 'quick-pagepost-redirect-plugin' ) . '</h2>';
|
779 |
+
$output .= '<ul class="qppr-faq-answers">';
|
780 |
+
$output .= implode( "\n", $linkcontent );
|
781 |
+
$output .= '</ul>';
|
782 |
+
$output .= '</div></div>';
|
783 |
+
|
784 |
+
echo $output;
|
785 |
}
|
786 |
|
787 |
function ppr_summary_page() {
|
792 |
<br/>
|
793 |
<?php if($this->updatemsg!=''){?>
|
794 |
<div class="updated settings-error" id="setting-error-settings_updated">
|
795 |
+
<p><strong><?php echo esc_html($this->updatemsg); ?></strong></p>
|
796 |
</div>
|
797 |
<?php } ?>
|
798 |
<?php $this->updatemsg ='';?>
|
850 |
$tempQTReportArray = array('url'=>$key,'destinaition'=>$redir);
|
851 |
$qr_nofollow = isset($this->quickppr_redirectsmeta[$key]['nofollow']) && $this->quickppr_redirectsmeta[$key]['nofollow'] != '' ? $this->quickppr_redirectsmeta[$key]['nofollow'] : '0';
|
852 |
$qr_newwindow = isset($this->quickppr_redirectsmeta[$key]['newwindow']) && $this->quickppr_redirectsmeta[$key]['newwindow'] != '' ? $this->quickppr_redirectsmeta[$key]['newwindow'] : '0';
|
853 |
+
$qrtredURL = (int) $this->pproverride_rewrite == 1 && $this->pproverride_URL != '' ? '<span class="ppr-rrlor">'.esc_url($this->pproverride_URL).'</span>' : $redir;
|
854 |
$qrtactive = (int) $this->pproverride_active == 1 ? '<span class="ppr-acor">0</span>' : 1;
|
855 |
$qr_nofollow = (int) $this->pproverride_nofollow == 1 ? '<span class="ppr-nfor">1</span>' : $qr_nofollow;
|
856 |
$qr_newwindow = (int) $this->pproverride_newwin == 1 ? '<span class="ppr-nwor">1</span>' : $qr_newwindow;
|
905 |
$tnofoll = (int) $this->pproverride_nofollow == 1 ? '<span class="ppr-nfor">1</span>' : $tnofoll;
|
906 |
$tnewwin = (int) $this->pproverride_newwin == 1 ? '<span class="ppr-nwor">1</span>' : $tnewwin;
|
907 |
$trewrit = (int) $this->pproverride_rewrite == 1 ? '<span class="ppr-rrlor">1</span>' : $trewrit;
|
908 |
+
$tredURL = (int) $this->pproverride_rewrite == 1 && $this->pproverride_URL != '' ? '<span class="ppr-rrlor">' . esc_url($this->pproverride_URL) . '</span>' : $tredURL;
|
909 |
$toriurl = isset($reportItem['origurl']) ? $reportItem['origurl'] : get_permalink($tpostid);
|
910 |
$pclass = $pclass == 'offrow' ? 'onrow' : 'offrow';
|
911 |
if($tredURL == 'http://www.example.com' || $tredURL == '<span class="ppr-rrlor">http://www.example.com</span>'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
|
937 |
|
938 |
function ppr_import_export_page(){
|
939 |
if(isset($_GET['update'])){
|
940 |
+
if(sanitize_key($_GET['update'])=='4'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' ) . '';}
|
941 |
+
if(sanitize_key($_GET['update'])=='5'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' ) . '';}
|
942 |
}
|
943 |
echo '<div class="wrap">';
|
944 |
echo ' <h2>' . __( 'Import/Export Redirects', 'quick-pagepost-redirect-plugin' ) . '</h2>';
|
1028 |
}
|
1029 |
|
1030 |
function ppr_settings_page() {
|
1031 |
+
if( isset( $_GET['update'] ) && sanitize_key($_GET['update']) != '' ){
|
1032 |
+
if( sanitize_key($_GET['update']) == '3' ){ $this->updatemsg = __( 'All Quick Redirects deleted from database.', 'quick-pagepost-redirect-plugin' );}
|
1033 |
+
if( sanitize_key($_GET['update']) == '2' ){ $this->updatemsg = __( 'All Individual Redirects deleted from database.', 'quick-pagepost-redirect-plugin' );}
|
1034 |
+
if( sanitize_key($_GET['update']) == '4' ){ $this->updatemsg = __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' );}
|
1035 |
+
if( sanitize_key($_GET['update']) == '5' ){ $this->updatemsg = __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' );}
|
1036 |
+
if( sanitize_key($_GET['update']) == '6' ){ $this->updatemsg = __( 'All Redirects and Settings deleted from database', 'quick-pagepost-redirect-plugin' );}
|
1037 |
+
if( sanitize_key($_GET['update']) == '0' ){ $this->updatemsg = __( 'There was an problem with your last request. Please reload the page and try again.', 'quick-pagepost-redirect-plugin' );}
|
1038 |
}
|
1039 |
?>
|
1040 |
<div class="wrap" style="position:relative;">
|
1041 |
<h2><?php echo __( 'Quick Page Post Redirect Options', 'quick-pagepost-redirect-plugin' );?></h2>
|
1042 |
<?php if($this->updatemsg != ''){?>
|
1043 |
<div class="updated" id="setting-error-settings_updated">
|
1044 |
+
<p><strong><?php echo esc_html($this->updatemsg);?></strong></p>
|
1045 |
</div>
|
1046 |
<?php } ?>
|
1047 |
<?php $this->updatemsg = '';//reset message;?>
|
1088 |
}else{
|
1089 |
$ptypecheck = '';
|
1090 |
}
|
1091 |
+
$ptypeHTML .= '<div class="qppr-ptype"><input class="qppr-ptypecb" type="checkbox" name="ppr_qpprptypeok[]" value="'.esc_attr($ptype).'"'.esc_attr($ptypecheck).' /> <div class="ppr-type-name">'.esc_html($ptype).'</div></div>';
|
1092 |
}
|
1093 |
}
|
1094 |
$ptypeHTML .= '</div>';
|
1192 |
<tr>
|
1193 |
<td><code>/about.htm</code></td>
|
1194 |
<td> » </td>
|
1195 |
+
<td><code>'.esc_url($this->homelink).'/about/</code></td>
|
1196 |
</tr>
|
1197 |
<tr>
|
1198 |
<td><code>/directory/landing/</code></td>
|
1202 |
<tr>
|
1203 |
<td><code>'. str_replace("http://", "https://",$this->homelink).'/contact-us/</code></td>
|
1204 |
<td> » </td>
|
1205 |
+
<td><code>'.esc_url($this->homelink).'/contact-us-new/</code></td>
|
1206 |
</tr>
|
1207 |
</table>
|
1208 |
|
1290 |
<div class="wrap">
|
1291 |
<h2><?php echo __( 'Quick Redirects (301 Redirects)', 'quick-pagepost-redirect-plugin' );?></h2>
|
1292 |
<?php if($this->updatemsg != ''){?>
|
1293 |
+
<div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo esc_html($this->updatemsg);?></strong></p></div>
|
1294 |
<?php } ?>
|
1295 |
<?php $this->updatemsg ='';//reset message;?>
|
1296 |
<?php
|
1546 |
$this->ppr_all_redir_array = $this->get_main_array();
|
1547 |
$this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
|
1548 |
if( current_user_can( 'manage_options' ) ){
|
1549 |
+
if ( isset( $_GET['action'] ) && sanitize_text_field($_GET['action']) == 'export-quick-redirects-file' ) {
|
1550 |
$newQPPR_Array = array();
|
1551 |
check_admin_referer( 'export-redirects-qppr' );
|
1552 |
$type = isset( $_GET['qppr-file-type'] ) && sanitize_text_field( $_GET['qppr-file-type'] ) == 'encoded' ? 'encoded' : 'pipe' ; // can be 'encoded' or 'pipe';
|
1588 |
wp_die( __( 'An error occured during the file upload. Please fix your server configuration and retry.', 'quick-pagepost-redirect-plugin' ) , __( 'SERVER ERROR - Could Not Load', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
|
1589 |
exit;
|
1590 |
} else {
|
1591 |
+
$config_file = file_get_contents( sanitize_file_name($_FILES['qppr_file']['tmp_name']) );
|
1592 |
if ( substr($config_file, 0, strlen('QUICKPAGEPOSTREDIRECT')) !== 'QUICKPAGEPOSTREDIRECT' ) {
|
1593 |
if(strpos($config_file,'|') !== false){
|
1594 |
$delim = '|';
|
1800 |
echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'> ' . __( '<strong>Show</strong> Redirect URL in link.', 'quick-pagepost-redirect-plugin' ) . ' <span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon dashicons dashicons-editor-help"></span><span class="qppr_meta_help">' . __( 'To increase effectivness, select "Use jQuery" in the options. This will only change the URL in the link <strong>NOT</strong> the URL in the Address bar.', 'quick-pagepost-redirect-plugin' ) . '</span></span></label><br /><br />';
|
1801 |
//echo '<label for="pprredirect_casesensitive" style="padding:2px 0;"><input type="checkbox" name="pprredirect_casesensitive" id="pprredirect_casesensitive" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_casesensitive',true),0).'> Make the Redirect Case Insensitive.</label><br /><br />';
|
1802 |
echo '<label for="pprredirect_url"><b>' . __( 'Redirect / Destination URL:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
|
1803 |
+
echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.esc_url($pprredirecturl).'" /><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon dashicons dashicons-editor-help"></span><span class="qppr_meta_help"><br />' . __( '(i.e., <strong>http://example.com</strong> or <strong>/somepage/</strong> or <strong>p=15</strong> or <strong>155</strong>. Use <b>FULL URL</b> <i>including</i> <strong>http://</strong> for all external <i>and</i> meta redirects.)', 'quick-pagepost-redirect-plugin' ) . '</span></span><br /><br />';
|
1804 |
echo '<label for="pprredirect_type"><b>' . __( 'Type of Redirect:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
|
1805 |
|
1806 |
switch($pprredirecttype):
|
1867 |
if( isset( $_POST['pprredirect_active'] ) || isset( $_POST['pprredirect_url'] ) || isset( $_POST['pprredirect_type'] ) || isset( $_POST['pprredirect_newwindow'] ) || isset($_POST['pprredirect_relnofollow']) || isset($_POST['pprredirect_meta_secs'])):
|
1868 |
$protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
|
1869 |
// find & save the form data & put it into an array
|
1870 |
+
$my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ? $this->isOne_none(intval( $_REQUEST['pprredirect_active'])) : '';
|
1871 |
+
$my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ? $this->isOne_none(intval($_REQUEST['pprredirect_newwindow'])) : '';
|
1872 |
+
$my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ? $this->isOne_none(intval( $_REQUEST['pprredirect_relnofollow'])) : '';
|
1873 |
+
$my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ? sanitize_text_field( $_REQUEST['pprredirect_type'] ) : '';
|
1874 |
+
$my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ? $this->isOne_none(intval( $_REQUEST['pprredirect_rewritelink'])) : '';
|
1875 |
+
$my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? esc_url_raw( sanitize_url($_REQUEST['pprredirect_url']), $protocols ) : '';
|
1876 |
+
$my_meta_data['_pprredirect_meta_secs'] = isset($_REQUEST['pprredirect_meta_secs']) && (int) $_REQUEST['pprredirect_meta_secs'] > 0 ? (int) $_REQUEST['pprredirect_meta_secs'] : '';
|
1877 |
+
|
1878 |
+
|
1879 |
+
// function qppr_sanitize_pprredirect_active_meta( $meta_value ) {
|
1880 |
+
// return absint( $meta_value );
|
1881 |
+
// }
|
1882 |
+
add_filter( 'sanitize_post_meta__pprredirect_newwindow', 'qppr_sanitize_pprredirect_active_meta', 10, 1 );
|
1883 |
+
add_filter( 'sanitize_post_meta__pprredirect_active', 'qppr_sanitize_pprredirect_active_meta', 10, 1 );
|
1884 |
+
add_filter( 'sanitize_post_meta__pprredirect_active', 'qppr_sanitize_pprredirect_active_meta', 10, 1 );
|
1885 |
+
|
1886 |
|
1887 |
$info = $this->appip_parseURI($my_meta_data['_pprredirect_url']);
|
1888 |
//$my_meta_data['_pprredirect_url'] = esc_url_raw($info['url']);
|
2094 |
|
2095 |
function redirect(){
|
2096 |
//bypass for testing.
|
2097 |
+
if(isset($_GET['action']) && sanitize_text_field($_GET['action']) == 'no-redirect' )
|
2098 |
return;
|
2099 |
// Quick Redirects Redirect.
|
2100 |
// Read the list of redirects and if the current page is found in the list, send the visitor on her way
|
2122 |
$getQAddrNeedle = $this->pproverride_casesensitive ? str_replace( $getQAddress, '', $getAddrNeedle ) : strtolower(str_replace( $getQAddress, '', $getAddrNeedle ));
|
2123 |
$finalQS = str_replace( '&','&', $finalQS);
|
2124 |
$finalQS = $this->pproverride_casesensitive ? $finalQS : strtolower( $finalQS ); //added 5.1.4 to fix URL needle being converted to lower, but not Query (as it never matches unless user enters lower)
|
2125 |
+
$finalQS = esc_url(apply_filters( 'appip_filter_testing_finalQS', $finalQS, $needle, $haystack)); // added 5.1.4 to allow filtering of QS data prior to matching.
|
2126 |
$index = false;
|
2127 |
|
2128 |
/* These are the URL matching checks to see if the request should be redirected.
|
2134 |
//check if QS data might be part of the redirect URL and not supposed to be added back.
|
2135 |
$index = $needle . $finalQS;
|
2136 |
$finalQS = ''; //remove it
|
2137 |
+
}elseif( array_key_exists( esc_url($needle . $finalQS), $haystack ) ){
|
2138 |
//check if QS data might be part of the encoded redirect URL and not supposed to be added back.
|
2139 |
$index = $needle . $finalQS;
|
2140 |
$finalQS = ''; //remove it
|
2141 |
}elseif(array_key_exists( $needle, $haystack)){
|
2142 |
//standard straight forward check for needle (request URL)
|
2143 |
$index = $needle;
|
2144 |
+
}elseif(array_key_exists(esc_url($needle), $haystack)){
|
2145 |
//standard straight forward check for URL encoded needle (request URL)
|
2146 |
+
$index = esc_url($needle);
|
2147 |
}elseif(array_key_exists( $getAddrNeedle, $haystack)){
|
2148 |
//Checks of the needle (request URL) might be using a different protocol than site home URL
|
2149 |
$index = $getAddrNeedle;
|
2150 |
+
}elseif(array_key_exists( esc_url( $getAddrNeedle ), $haystack)){
|
2151 |
//Checks of an encoded needle (request URL) might be using a different protocol than site home URL
|
2152 |
+
$index = esc_url( $getAddrNeedle );
|
2153 |
}elseif( strpos( $needle, 'https' ) !== false ){
|
2154 |
//Checks of the encoded needle (request URL) might be http but the redirect is set up as http
|
2155 |
if(array_key_exists(str_replace('https','http',$needle), $haystack))
|
2156 |
$index = str_replace('https','http',$needle); //unencoded version
|
2157 |
+
elseif(array_key_exists(str_replace('https','http',esc_url($needle)), $haystack))
|
2158 |
+
$index = str_replace('https','http',esc_url($needle)); //encoded version
|
2159 |
}elseif(strpos($needle,'/') === false) {
|
2160 |
//Checks of the needle (request URL) might not have beginning and ending / but the redirect is set up with them
|
2161 |
if( array_key_exists( '/' . $needle . '/', $haystack ) )
|
2162 |
$index = '/'.$needle.'/';
|
2163 |
+
}elseif( array_key_exists( esc_url($getQAddrNeedle), $haystack ) ){
|
2164 |
//Checks if encoded needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
|
2165 |
+
$index = esc_url( $getQAddrNeedle );
|
2166 |
}elseif( array_key_exists( $getQAddrNeedle, $haystack ) ){
|
2167 |
//Checks if needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
|
2168 |
$index = $getQAddrNeedle;
|
2210 |
|
2211 |
function ppr_do_redirect( $var1='var1', $var2 = 'var2'){
|
2212 |
//bypass for testing.
|
2213 |
+
if(isset($_GET['action']) && sanitize_text_field($_GET['action']) == 'no-redirect' )
|
2214 |
return;
|
2215 |
// Individual Redirects Redirect.
|
2216 |
// Read the list of redirects and if the current page is found in the list, send the visitor on her way
|
2347 |
?>
|
2348 |
<div class="wrap" style="position:relative;">
|
2349 |
<h2><?php echo __( 'Meta Redirect Settings', 'quick-pagepost-redirect-plugin' );?></h2>
|
2350 |
+
<?php if ( ! empty( sanitize_text_field($_GET['settings-updated']) ) ) : ?><div id="message" class="updated notice is-dismissible"><p><?php echo __( 'Settings Updated', 'quick-pagepost-redirect-plugin' );?></p></div><?php endif; ?>
|
2351 |
<p><?php echo __( 'This section is for updating options for redirects that use the "meta refresh" funcitonality for redirecting.', 'quick-pagepost-redirect-plugin' );?></p>
|
2352 |
<p><?php echo __( 'Using the setting below, you can add elements or a message to the page that is loaded before tht redirect, or just allow the page to load as normal until the redirect reaches the number of seconds you have set below.', 'quick-pagepost-redirect-plugin' );?></p>
|
2353 |
<form method="post" action="options.php" class="qpprform">
|
2690 |
|
2691 |
return sanitize_text_field( $meta_value );
|
2692 |
}
|
2693 |
+
add_filter( 'sanitize_post_meta__pprredirect_type', 'qppr_sanitize_pprredirect_type_meta', 10, 1 );
|
readme.txt
CHANGED
@@ -5,13 +5,13 @@ Donate Link:
|
|
5 |
Requires at least: 4.0
|
6 |
License: GPLv2 or later
|
7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
-
Tested up to: 5.
|
9 |
-
Stable tag: 5.2.
|
10 |
|
11 |
Easily redirect pages/posts or custom post types to another page/post or external URL by specifying the redirect URL and type (301, 302, 307, meta).
|
12 |
|
13 |
== Description ==
|
14 |
-
**Current Version 5.2.
|
15 |
|
16 |
This plugin has two redirect functionalities - **"Quick Redirects"** and **"Individual Redirects"**:
|
17 |
|
@@ -182,6 +182,9 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
|
|
182 |
* THIS SECTION IS JUST TO KEEP TRACK OF TODO ITEMS FOR FUTURE UPDATES.
|
183 |
* Add New Window and No Follow to links where the URL has been rewritten. Currently if you rewrite the URL neither will work as they are referenced with the original URL, not the rewrite.
|
184 |
|
|
|
|
|
|
|
185 |
= 5.2.2 =
|
186 |
* **WordPress 5.6 compatibility check
|
187 |
|
5 |
Requires at least: 4.0
|
6 |
License: GPLv2 or later
|
7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
+
Tested up to: 5.9.1
|
9 |
+
Stable tag: 5.2.3
|
10 |
|
11 |
Easily redirect pages/posts or custom post types to another page/post or external URL by specifying the redirect URL and type (301, 302, 307, meta).
|
12 |
|
13 |
== Description ==
|
14 |
+
**Current Version 5.2.3**
|
15 |
|
16 |
This plugin has two redirect functionalities - **"Quick Redirects"** and **"Individual Redirects"**:
|
17 |
|
182 |
* THIS SECTION IS JUST TO KEEP TRACK OF TODO ITEMS FOR FUTURE UPDATES.
|
183 |
* Add New Window and No Follow to links where the URL has been rewritten. Currently if you rewrite the URL neither will work as they are referenced with the original URL, not the rewrite.
|
184 |
|
185 |
+
= 5.2.3 =
|
186 |
+
* **Security fixes
|
187 |
+
|
188 |
= 5.2.2 =
|
189 |
* **WordPress 5.6 compatibility check
|
190 |
|