自定义注销按钮具有奇怪的行为

时间:2020-10-09 11:23:21

标签: php wordpress

我有一个wordpress网站(v5.x),上面有一个成员受限的部分。我的网站使用Elementor Pro和其他一些插件(例如Powerpack)作为登录页面。

我的问题是我的标头中有一个注销按钮,自几天以来一直不起作用,并且行为异常。当我在连接时单击它时,会出现以下行为:

  • 我已重定向到主页,但仍保持连接状态
  • 我已重定向到一个奇怪的URL www.mysite.com/home_url,并且仍处于连接状态
  • 我将重定向到主页并断开连接,但是,如果我再次登录然后断开连接,则无法正常工作,并且出现了先前的行为之一

我这样设置注销: 在菜单中,我创建了一个带有自定义链接/ logout的注销按钮,如下所示:logout button

然后在我的functions.php中添加:

/* Redirect to homepage when logout (escape the confirmation page)*/
add_action( 'init', function() {
   error_log("0");
   error_log("Request URL : ".$_SERVER['REQUEST_URI']);
   if ( 0 === stripos( $_SERVER['REQUEST_URI'], "/logout" ) ) {
       error_log("1");
       /*
         I also tried with this instead of wp_logout():
         wp_destroy_current_session();
         wp_clear_auth_cookie();
         wp_set_current_user( 0 );
       */
       wp_logout();
       error_log("2");
       wp_redirect( home_url(), 301 );
       error_log("3");
       exit;
   }
},1);

点击注销按钮时,在error_log文件中得到的内容的示例和示例:

[Fri Oct 09 11:42:43.882230 2020] [php7:notice] [pid 26377] [client 127.0.0.1:63793] 0, referer: http://dev.mysite.com/
[Fri Oct 09 11:42:43.882559 2020] [php7:notice] [pid 26377] [client 127.0.0.1:63793] Request URL : /, referer: http://dev.mysite.com/

我也尝试过删除所有插件,但是仍然具有相同的行为。似乎$ _SERVER ['REQUEST_URI']返回随机值,并且始终为“ /”。

我还尝试通过其他方式(/wp-login.php?action=logout和/ test)更改按钮的url,并根据url更新了该功能,在出现相同问题之前,它已经工作了2-3次。

有人也有这个问题或想法吗?

0 个答案:

没有答案