mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-14 04:06:36 +09:00
Fix redirect URL
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ class UM_Access {
|
||||
|
||||
if ( strstr( $this->redirect_handler, um_get_core_page('login') ) ){
|
||||
$curr = $ultimatemember->permalinks->get_current_url();
|
||||
$this->redirect_handler = add_query_arg('redirect_to', um_set_redirect_url($curr), $this->redirect_handler);
|
||||
$this->redirect_handler = add_query_arg('redirect_to', urlencode_deep($curr), $this->redirect_handler);
|
||||
$this->redirect_handler = esc_url( $this->redirect_handler );
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ class UM_Account {
|
||||
|
||||
$redirect_to = add_query_arg(
|
||||
'redirect_to',
|
||||
um_set_redirect_url( um_get_core_page('account') ) ,
|
||||
urlencode_deep( um_get_core_page('account') ) ,
|
||||
um_get_core_page('login')
|
||||
);
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
// Priority redirect
|
||||
if ( isset( $args['redirect_to'] ) ) {
|
||||
exit( wp_redirect( um_get_redirect_url( $args['redirect_to'] ) ) );
|
||||
exit( wp_redirect( urldecode( $args['redirect_to'] ) ) );
|
||||
}
|
||||
|
||||
// Role redirect
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
global $ultimatemember;
|
||||
|
||||
if ( isset( $_REQUEST['redirect_to'] ) && !empty( $_REQUEST['redirect_to'] ) ) {
|
||||
|
||||
echo '<input type="hidden" name="redirect_to" id="redirect_to" value="'.esc_attr($_REQUEST['redirect_to']).'" />';
|
||||
$url = urlencode_deep( $_REQUEST['redirect_to'] );
|
||||
echo '<input type="hidden" name="redirect_to" id="redirect_to" value="'.esc_attr( $url ).'" />';
|
||||
|
||||
} else if ( isset( $args['after_login'] ) && !empty( $args['after_login'] ) ) {
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
break;
|
||||
|
||||
}
|
||||
$url = esc_attr( um_set_redirect_url( $url ) );
|
||||
$url = urlencode_deep( $url );
|
||||
|
||||
echo '<input type="hidden" name="redirect_to" id="redirect_to" value="' . $url . '" />';
|
||||
echo '<input type="hidden" name="redirect_to" id="redirect_to" value="' . esc_attr( $url ) . '" />';
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
|
||||
// Priority redirect
|
||||
if ( isset( $args['redirect_to'] ) ) {
|
||||
exit( wp_redirect( um_get_redirect_url( $args['redirect_to'] ) ) );
|
||||
exit( wp_redirect( urldecode( $args['redirect_to'] ) ) );
|
||||
}
|
||||
|
||||
if ( $status == 'approved' ) {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
$redirect_to = $ultimatemember->permalinks->get_current_url();
|
||||
}
|
||||
|
||||
$redirect_key = um_set_redirect_url( $redirect_to );
|
||||
$redirect_key = urlencode_deep( $redirect_to );
|
||||
|
||||
$uri = add_query_arg( 'redirect_to', $redirect_key, $uri );
|
||||
|
||||
@@ -77,6 +77,10 @@
|
||||
*/
|
||||
function um_set_redirect_url( $url ){
|
||||
|
||||
if( um_is_session_started() === FALSE ){
|
||||
session_start();
|
||||
}
|
||||
|
||||
$redirect_key = wp_generate_password(12,false);
|
||||
|
||||
$_SESSION['um_redirect_key'] = array( $redirect_key => $url );
|
||||
@@ -91,6 +95,10 @@
|
||||
*/
|
||||
function um_get_redirect_url( $key ){
|
||||
|
||||
if( um_is_session_started() === FALSE ){
|
||||
session_start();
|
||||
}
|
||||
|
||||
if( isset( $_SESSION['um_redirect_key'][ $key ] ) ){
|
||||
|
||||
$url = $_SESSION['um_redirect_key'][ $key ];
|
||||
@@ -112,6 +120,25 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if session has been started
|
||||
* @return bool
|
||||
*/
|
||||
function um_is_session_started(){
|
||||
|
||||
if ( php_sapi_name() !== 'cli' ) {
|
||||
if ( version_compare(phpversion(), '5.4.0', '>=') ) {
|
||||
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
|
||||
} else {
|
||||
return session_id() === '' ? FALSE : TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @user clean basename
|
||||
***/
|
||||
|
||||
Reference in New Issue
Block a user