我正在开发基于Wordpress的门户网站,该门户网站集成了定制的电子商务.电子商务也是一个"控制面板":所有角色都设置在那里.有些用户被录制但是"不活跃"; 他们应该无法登录Wordpress.出于这个原因,我需要挂钩到Wordpress登录系统.
如果用户是"bad_james",即使他拥有有效的WP登录和PWD,他也无法登录.WP管理面板不提供阻止用户的标志.
有没有办法实现登录过滤器?
干杯,
戴维德
您可以重载该wp_authenticate函数(请参阅此处代码中的函数:http://core.trac.wordpress.org/browser/trunk/wp-includes/pluggable.php)并返回WP_error如果您不想允许用户登录.
或者更好的是,authenticate如果您不希望用户登录,请使用过滤器并返回null,例如
add_filter('authenticate', 'check_login', 10, 3);
function check_login($user, $username, $password) {
$user = get_userdatabylogin($username);
if( /* check to see if user is allowed */ ) {
return null;
}
return $user;
}
Run Code Online (Sandbox Code Playgroud)
mjangda回答有一些问题所以我发布了一个适用于WordPress 3.2的版本
主要问题在于return语句.他应该返回一个WP_User对象.另一个问题是优先级不够高.
add_filter('authenticate', 'check_login', 100, 3);
function check_login($user, $username, $password) {
// this filter is called on the log in page
// make sure we have a username before we move forward
if (!empty($username)) {
$user_data = $user->data;
if (/* check to see if user is allowed */) {
// stop login
return null;
}
else {
return $user;
}
}
return $user;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14323 次 |
| 最近记录: |