I've made a plugin that when somebody registers, it will put them into the database and the admin has to confirm them. When they are confirmed a user account is being created for them, and wordpress sends them an email so that they can change their password.
But when the admin decides that he does not want them to log in anymore, he clicks a button and the user role is set to nothing. In my theme's functions.php file a wrote a code, that when a user role is nothing, he can't log in.
BUT when I copy this plugin, users without a role CAN login, but can't see anything because they don't have the right permission.
Now my question:
Is there a way to make an functions.php in my plugin file so that users can't login (with the code I wrote) that have no role.
This is my code in my themes functions.php:
function customLogIn($user) {
if($user instanceof WP_User) {
$userHasRole = array_filter($user->roles);
if (empty($userHasRole)) {
return new WP_Error('user_has_no_role', __('Dit account is gedeactiveerd.'));
}
}
return $user;
}
add_filter( 'authenticate', 'customLogIn', 20, 5);