我制作了一个插件,要求用户验证他们的电子邮件地址。它为用户创建带有随机字符串的“activation_key”元键,并在用户验证后将其设置为“'。到现在为止还挺好。但现在我需要挂钩登录并检查activation_key ==''。
这是我认为应该的,但它没有到达这里。
add_filter( 'authenticate', 'check_if_activated', 10, 3 );
function check_if_activated($user, $username, $password)
{
// check if user has activated their email
return $user;
}
答案 0 :(得分:0)
Wordpress已经为authenticate
添加了过滤器,因此您必须注册较低的。
add_filter( 'authenticate', 'check_if_activated', 50);
function check_if_activated($user)
{
// If we have an error, no need to check the activation key
// (Wrong credentials, for instance)
if (is_wp_error($user))
{
return $user;
}
// Checks the meta and returns an error if needed
$validation_key = get_user_meta($user->ID, 'activation_key', true);
return empty($validation_key) ? $user : new WP_Error('your_plugin_error_code', 'your error message');
}