Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在登录wordpress时检查用户状态_Wordpress_Login_Frontend - Fatal编程技术网

如何在登录wordpress时检查用户状态

如何在登录wordpress时检查用户状态,wordpress,login,frontend,Wordpress,Login,Frontend,您能告诉我如何在登录时检查用户状态吗 我在wp\u users表中添加了一个名为user\u flag的新字段来控制用户状态用户标志的值为活动或停用 我想在用户登录时检查此字段的值 如果值为激活状态,则用户可以继续登录 但如果值为停用,则用户无法登录,并将显示一条消息,通知用户其帐户已停用,他需要联系管理员重新激活帐户,以便能够登录 我查看了wp login.php文件,但不知道在哪里编写代码来检查上述逻辑,您能告诉我在登录时在哪里检查user\u flag 非常感谢。停止尝试修改核心代码,

您能告诉我如何在登录时检查用户状态吗

我在
wp\u users
表中添加了一个名为
user\u flag
的新字段来控制用户状态<代码>用户标志的值为
活动
停用

我想在用户登录时检查此字段的值

  • 如果值为激活状态,则用户可以继续登录
  • 但如果值为
    停用
    ,则用户无法登录,并将显示一条消息,通知用户其帐户已停用,他需要联系管理员重新激活帐户,以便能够登录
我查看了
wp login.php
文件,但不知道在哪里编写代码来检查上述逻辑,您能告诉我在登录时在哪里检查
user\u flag


非常感谢。

停止尝试修改核心代码,学习使用可插拔架构。同时停止修改核心数据库表。您可以使用
add\u user\u meta
在usermeta表中存储用户的其他字段,并使用
get\u user\u meta
检索这些字段。如果您开始修改核心代码和数据库表,您将永远无法升级wordpress

要回答您的问题,请在functions.php中使用如下内容

add_filter('wp_authenticate_user', function($user) {
    if (get_user_meta($user->ID, 'user_flag', true) == 'active') {
        return $user;
    }
    return new WP_Error('Account Not Active...');
}, 10, 2);