He intentado buscar en Internet y también en los foros de wordpress, pero no he obtenido una respuesta para esto.
¿Hay alguna forma de limitar la cantidad de sesiones de inicio de sesión que puede hacer un usuario?
Por ejemplo, un usuario gratuito puede iniciar sesión 2 veces, un miembro dorado puede iniciar sesión 4 veces, platino 6 y así sucesivamente.
Sé cómo crear niveles de usuario, solo confundí cómo limitar cada rol de usuario a un número específico de sesiones de inicio de sesión permitidas.
Gracias por adelantado.
Patricio.
Algo como esto podría funcionar:
function my_handle_login($username, $user) {
$login_count = intval(get_user_meta($user->ID, 'my_user_count', true));
$login_count++;
update_user_meta($user->ID, 'my_user_count', $login_count);
// Handle user status etc. according to $login_count
}
add_action('wp_login', 'my_handle_login', 10, 2);
-
Gracias por el aviso Simon, eso hará lo que quiero, ¿cómo crearé el meta del usuario en blanco en la base de datos?
– Patricio S.
21 de diciembre de 2012 a las 15:06
Es muy simple.
- simplemente agregue un campo con el nombre login_count en la tabla de usuarios en DB.
- Cuando el usuario inicia sesión, debe verificar cuál es el número de login_count
- Si login_count no ha terminado, agregue 1 a login_count
-
No creo que sea una buena idea modificar la tabla de usuarios. Generalmente es mejor usar actualizar_usuario_meta para almacenar metadatos relacionados con los usuarios. De esa manera, solo usa
update_user_meta
al iniciar sesión y luego usarget_user_meta
para obtener un recuento de inicio de sesión de los usuarios.– Simón
21 de diciembre de 2012 a las 14:07
-
@Simon, tu manera es mejor que la mía 🙂
– Chalista
21 de diciembre de 2012 a las 14:10
-
Gracias Simon, investigaré un poco sobre eso y lo probaré.
– Patricio S.
21 de diciembre de 2012 a las 14:41
¿Está tratando de limitar la cantidad de sesiones simultáneas para cada usuario, o está tratando de limitar la cantidad de veces que los usuarios podrán iniciar sesión antes de bloquear su cuenta o algo así?
– Simón
21 de diciembre de 2012 a las 14:10
Estoy tratando de limitar la cantidad de veces que un usuario puede iniciar sesión, sí, bloqueando su cuenta y pidiéndoles que actualicen.
– Patricio S.
21 de diciembre de 2012 a las 14:32