WP_注销挂接从未触发

时间:2022-01-10 作者:assistbss

Long story short.

在wp配置中。php:

define(\'WP_DEBUG\', true);
define(\'WP_DEBUG_DISPLAY\', false);
define(\'WP_DEBUG_LOG\', true);
在我的插件的主文件中,在构造函数中:

public function __construct(){
    error_log("this is properly logged");   
    add_action( \'wp_logout\', array($this, \'logout\') ); 
}
然后注销方法:

public function logout(){
    error_log("never logged");          
}
永远不会执行注销方法。为什么?

The whole story

我允许用户使用OpenID连接通用插件进行登录/注册。当地一切正常。在远程服务器上,我只在注销时遇到问题。

如果我手动到达与注销相关的端点,则会在标识提供程序上正确关闭会话。但当用户从wordpress注销时,未到达端点。实际上,在登录时,在注销后,前一个用户的会话将在不要求凭据的情况下恢复。

考虑到OpenID连接的一般问题,我试图在注销挂钩上以编程方式到达端点。什么都没有出现,所以我尝试在logout方法中放入一些error\\u log进行调试,但它们从未执行,所以wp\\u logout钩子从未触发。为什么?

1 个回复
SO网友:assistbss

在远程服务器上,我逐个禁用了本地未安装的所有插件。禁用维护插件注销按预期工作。

相关推荐

Wp_logout()WordPress 5.1.1中的更改

我们最近刚刚将WordPress网站升级到5.1.1升级后,我们在执行wp_logout() WordPress的功能。不知怎的,我们得到了302 响应,但未显示错误/警告。我把它缩小到wp_logout() 并确定wp_destroy_current_session(); 和wp_clear_auth_cookie(); 工作正常!这意味着错误发生在wp_logout() 被称为:do_action( \'wp_logout\' ); 我的问题是:外部插件是否可能以某种方式损坏wp_logou