🔐 Mejorando el Código de Documentos con Registro de Acciones

Hace un tiempo, un cliente me pidió que le desarrollara un sistema de gestión de descargas en el front-end de WordPress. Quería algo funcional, pero con una jerarquía de permisos clara para usuarios anónimos, registrados y administradores. Hice el trabajo exactamente como lo pidió, pero lo interesante es que, con el tiempo, he visto cómo otros usuarios han ido implementando el sistema en sus proyectos. Por eso, decidí compartirlo y añadirle mejoras poco a poco.

zona de documentos wordpress

¿Qué hace este sistema?

El sistema está pensado para dar a cada tipo de usuario las herramientas que necesita, pero sin que puedan hacer de más. Todo está controlado según el rol de cada uno:

1. Administradores

  • Pueden hacer absolutamente todo:
    • Subir y eliminar archivos.
    • Crear y borrar carpetas.
    • Eliminar registros individuales del historial.
    • Borrar todo el historial con un botón.

2. Usuarios registrados

  • Tienen acceso limitado, pero suficiente:
    • Pueden subir archivos y guardarlos en carpetas ya creadas o crear una nueva.
    • Pueden eliminar archivos que hayan subido o de otros usuarios.
    • No pueden eliminar carpetas ni borrar el historial, solo verlo.

3. Usuarios anónimos

  • Los que menos pueden hacer:
    • Solo tienen permiso para subir archivos.
    • No pueden eliminar archivos, carpetas ni registros. Solo pueden participar subiendo contenido y viendo los registros.

Evidentemente el proposito de este sistema es la descarga global de archivos entre usuarios por lo que todo el mundo puede descargar todo, sin limites.

¿Por qué está hecho así?

La verdad, el cliente nunca me dijo el motivo exacto de esta configuración, pero creo que el objetivo era que todo estuviera controlado por los administradores. Los usuarios registrados pueden colaborar subiendo y organizando archivos, pero sin descontrolar nada. Y los anónimos tienen un papel testimonial: pueden subir y descargar algo, pero hasta ahí llegan.

Este tipo de sistema tiene sentido si quieres que haya colaboración, pero con límites claros para evitar líos.

zona de documentos wordpress sin plugins

La nueva mejora: el historial de cambios

Cuando compartí este código, vi que había margen para añadir funciones extra, y la primera gran mejora fue implementar un historial de cambios. Esta función es una maravilla porque te deja rastrear todo lo que pasa en el sistema.

¿Qué hace el historial?

  • Registra todas las acciones importantes:
    • Quién subió o eliminó un archivo y en qué carpeta.
    • Si la acción la hizo un administrador, un usuario registrado o un anónimo.
  • Muestra un listado claro:
    • Incluye la acción, el archivo o carpeta afectada, el usuario responsable y la fecha/hora.
  • Herramientas para administradores:
    • Pueden borrar avisos individuales del historial.
    • Si lo necesitan, pueden borrar todo el historial de un golpe.
zona de documentos wordpress avisos registro de acciones

¿Cómo está hecho?

El historial funciona gracias a un par de detalles técnicos que te resumo:

1. Registro de acciones

Cada vez que alguien sube o elimina un archivo, se guarda un registro en una tabla personalizada de la base de datos llamada wp_file_history. Ahí se almacenan datos como:

  • El ID del usuario (o un 0 si es anónimo).
  • La acción realizada (subida o eliminación).
  • El nombre del archivo o carpeta afectada.
  • La fecha y hora de la acción.

2. Visualización del historial

Usamos un shortcode para mostrar el historial en el front-end. Los registros aparecen en un listado con:

  • Un botón para eliminar avisos individuales (solo visible para administradores).
  • Un botón para borrar todo el historial (también solo para administradores).

Una buena estructura para la página podría ser:

  • Título de la página: Algo como «Zona de descargas» o «Gestión de archivos».
  • Descripción breve: Un párrafo explicando qué pueden hacer los usuarios.
  • Shortcode del formulario: [file_upload_form_v2] (Formulario de gestión de archivos).
  • Shortcode del historial: [file_change_history] (Registros de acciones).

3. Seguridad

Todo está pensado para que nadie haga más de lo que debe:

  • Los permisos de WordPress (current_user_can) controlan quién puede ver o eliminar qué.
  • Los «nonces» aseguran que las solicitudes al servidor sean legítimas.

¿Qué ventajas tiene este historial?

Con el historial, todo está mucho más claro. Ya no hay dudas sobre quién hizo qué. Por ejemplo:

  • Si alguien sube un archivo importante, sabes quién fue y cuándo.
  • Si un administrador elimina algo, queda registrado.
  • Incluso puedes saber cuándo alguien sube algo de manera anónima.

Esto no solo mejora la transparencia, sino que también te da más control sobre el sistema.

Este sistema empezó como algo básico para gestionar descargas, pero con mejoras como el historial de cambios, se ha convertido en una herramienta muy potente. Es una gran solución si quieres permitir que los usuarios colaboren sin perder el control de lo que ocurre en tu sitio.

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS. También puedes crear tu propio plugin con unos simples pasos.

Este código funciona junto al original. Si ya usas el original y quieres implementar esta mejora, agrega este código en un snippet diferente para tenerlo todo bien organizado y estructurado.

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

Nos vemos en el siguiente tutorial. Un saludo.

ℹ️ Nota:
Estos códigos de la zona premium se mantienen regularmente. Si usas un código y no te funciona correctamente, puedes abrir un ticket de soporte explicando los detalles y lo vemos.
5/5 - (4 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    ¿Qué te parece esta mejora?

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%