Oferta SiteGround Black Friday

Desactiva usuarios sin borrarlos

No se a ti pero a mi me pasa mucho. Siempre que tengo activo el registro de usuarios en WordPress, no digamos si permito que actúen como colaboradores con posibilidades de publicación, hay registros a mansalva de lectores que, luego, deciden no participar. Y esto en el mejor de los casos.

Porque luego están los spammers, que se registran allí donde ven un ‘wp-login.php‘ activo, para tratar de colar lo suyo.

Y es especialmente con estos que, aunque puedes borrarlos, es mejor desactivarlos en vez de eliminarlos del todo. Y es así porque si los borras lo detectan pero si los desactivas mantienen tu sitio como activo para spam aunque les anules todos los permisos, con lo que no recibes nuevos intentos de registro.

Esto es así en cualquier WordPress con el registro abierto, y no digamos en WordPress multisitio, sobre todo si tienes activa la posibilidad de crear nuevos blogs/sitios.

Otra situación es cuando tu sitio WordPress es una comunidad, como un BuddyPress o un Multisitio, en esas ocasiones es especialmente útil un sistema de desactivación, temporal o no, de usuarios, al estilo de la moderación en foros.

Pues bien, hay varias maneras sencillas de mantener «vivos» a estos usuarios (u otros) pero inactivos …

La primera sería la acción manual, ya disponible en WordPress por defecto, de bajarles el perfil al nivel de Suscriptor, con lo que solo pueden leer. Esto, si lo combinas con algún plugin de restricción de acceso a partes del escritorio es suficientemente práctico y efectivo la mayoría de las ocasiones.

Otra opción, que es posible que no conozcas, es usar el plugin User Control. Lo que hace este código es añadir una nueva «capacidad» a los roles de usuario mediante la cual, y da igual el perfil que tengan, puedes desactivarlos. El único perfil sobre el que no actúa es sobre el de Administrador.

Una vez desactivado un usuario su cuenta sigue activa pero, al intentar acceder a tu sitio, se le muestra un mensaje de que su usuario ha sido desactivado, muy parecido al típico «baneo» en los foros, y un modo de «poner paños calientes» a usuarios enreda.

La última, un poco más sofisticada, pasa por el plugin Members, que seguro ya conoces. Con este plugin puedes personalizar roles y capacidades de los usuarios en tu sitio, e incluso crear perfiles nuevos.

Aquí la opción sería crear un perfil nuevo, al que llamaremos «Bozo» (es un nombre de usuario utilizado en la cultura «forera» que indica que es un usuario molesto, y también se usa en bbPress), por ejemplo. A este perfil no le asignamos ninguna capacidad, ni siquiera la básica de «Leer», que es la única que tiene el perfil Suscriptor por defecto.

Luego solo nos queda asignar este perfil a los usuarios que queramos desactivar. A partir de ahí, cuando intenten acceder a WordPress recibirán un bonito mensaje de error.

A mi personalmente me «pone» más el «método Members» pero hay que reconocer que con «User control» parece menos radical, y quizás se enfaden menos los usuarios desactivados.

Claro, si a ti se te ocurre un modo mejor cuéntalo en los comentarios, seguro que lo hay y lo desconozco, y a todos nos gustaría aprender más.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.2 / 5. Total de votos: 9

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

6 comentarios en “Desactiva usuarios sin borrarlos”

  1. Yo simplemente creo un "user_meta" llamado "user_inactive" al que añado el ID del user a desactivar. A la hora de mostrar contenido protegido, compruebo si el usuario que accede a ese contenido tiene ese "user_meta". De esa forma no necesito plugins ni nada.

    1. Carlos. pero cuando es masivo y/o automatico como lo podrias realizar? yo lo necesito que cada cierto periodo de tiempo quien no pague una membresia quede desactivado y cuando pague nuevamente se active y sea visible su perfil. muchas gracias.

  2. Creo que es una buena opción el hecho de simplemente bajarles el nivel de usuario a suscriptor, así evitas nuevos registros, una pena que la base de datos se llene de basura, pero bueno.
    Saludos

  3. No funciona ni el User Control ni el Members, el User Control no muestra mensaje de error y el Members no hace nada, el usuario inicia sesion sin problemas.

  4. Hola Fernando como estas? Excelente articulo. te felicito. te pregunto donde puedo obtener el codigo de User control, ya que estuve buscando en el repsoitorio de wordpress y no logro localizarlo?. Es posible que puedas decirme como puedo de manera automatica poder deshabilitar el usuario bajo una condicion en determinado tiempo poder hacerlo, digamos cada mes, y que a su vez pase a un role determinado como comentas aqui con bozo, pero que a el momento de pagar o de activarlo nuevamente , pueda pasar a un role personalizado?
    quedo atento a tus comentarios.

  5. Hola Fernando, como estas? Como se podria lograr que de manera automaticamente,si el usuario no renueva su Membresia, pueda pasar a BOZO sin necesidad de intervencion manual, sino que sea de manera automatica, y que si vuelve a renovar su membresia, automaticamente salga de ser BOZO y pase a ser un usuario activo en su perfil, role de membresia o a su plan de membresia? Quedo agradeciso por tu comentario. Muchas gracias, RODOLFO.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio