通过年龄验证将用户重定向到原始网址

时间:2018-12-13 07:03:48

标签: php wordpress function url redirect

我具有以下功能,如果他们的会话已过期,该功能会将人们重定向到年龄验证页面:

function age_verification() {
   global $wp_session;

   if (is_admin()) 
       return false;

   $isAgeVerification = is_page('age-verification');
   $isAgeVerification = strpos($_SERVER['REQUEST_URI'], 'age-verification') !== false;

   if(!$isAgeVerification && $wp_session['age_allow'] == 0)
   {
       wp_safe_redirect( '/age-verification/' );
       exit;
   }

   if($isAgeVerification && $wp_session['age_allow'] == 1)
   {
       wp_safe_redirect( '/' );
       exit;
   }
}
add_action( 'init', 'age_verification' );

如何使它们重定向回最初在地址栏中键入的页面?我试图捕获$_SERVER['REQUEST_URI'],但是它给了我当前的/age-verification页面,而不是它们引用的页面。我也尝试过$_SERVER['HTTP_REFERER'],但是没有设置...

我当前的功能有可能吗?谢谢!

编辑:

因此,每当我致电$_SERVER['REQUEST_URI']时,我都会得到浏览器重定向到的页面(domain.com/age-verification)。但是,我注意到,如果在exit;后面紧跟放置$_SERVER['REQUEST_URI'],则会得到正确的结果。好像$_SERVER['REQUEST_URI']太慢了,并且在没有机会获得重定向之前获取当前页面之前,已通过domain.com/age-verification更新了。

这提供更多线索了吗?我还能提供什么帮助呢?

1 个答案:

答案 0 :(得分:0)

您可以将当前REQUEST_URI设置为Session,然后再重定向到使用期限验证,并使用该值进行重定向。 另一种可能是在重定向到年龄验证时将其放在URL参数中。