✅Creando Roles de Usuario en WordPress: Profesores y Alumnos

Si buscas potenciar la funcionalidad de tu plataforma educativa, estás en el lugar correcto. En este artículo, vamos a sumergirnos directamente en la creación de dos roles de usuario esenciales: Profesor y Alumno.

En el ámbito educativo online, la gestión eficiente de usuarios es clave. Con roles específicos, puedes ajustar las capacidades de tus profesores y alumnos para mejorar la interacción y facilitar la administración del contenido.

¿Qué lograremos? Habilitaremos a los profesores con capacidades de editor, brindándoles un control más amplio sobre el contenido. Mientras tanto, daremos a los alumnos capacidades de colaborador para fomentar su participación sin comprometer la integridad del sitio.

¡Vamos a sumergirnos en el código y optimizar tu sitio educativo en WordPress!

Paso 1: Accede a functions.php

Abre el archivo functions.php de tu tema en el editor que prefieras. También puedes usar un plugin como CODE SNIPPETS

Paso 2: Creando los Roles

Inserta este código al final del archivo functions.php:

// Crear roles de Profesor y Alumno
$roles = array(
    'profesor' => __('Profesor'),
    'alumno' => __('Alumno'),
);

foreach ($roles as $key => $value) {
    add_role(
        $key,
        $value,
        array(
            'read' => true,
            'edit_posts' => ($key === 'profesor'), // Profesores pueden editar posts
            'delete_posts' => ($key === 'profesor'), // Profesores pueden eliminar posts
            'upload_files' => ($key === 'profesor'), // Profesores pueden cargar archivos
            'edit_others_posts' => ($key === 'profesor'), // Profesores pueden editar posts de otros
            'publish_posts' => ($key === 'profesor'), // Profesores pueden publicar posts
            'read_private_posts' => ($key === 'profesor'), // Profesores pueden leer posts privados
            'delete_others_posts' => ($key === 'profesor'), // Profesores pueden eliminar posts de otros
            'edit_pages' => ($key === 'profesor'), // Profesores pueden editar páginas
            'edit_others_pages' => ($key === 'profesor'), // Profesores pueden editar páginas de otros
            'edit_published_pages' => ($key === 'profesor'), // Profesores pueden editar páginas publicadas
            'delete_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas
            'delete_others_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas de otros
            'delete_published_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas publicadas
            'publish_pages' => ($key === 'profesor'), // Profesores pueden publicar páginas
            'read_private_pages' => ($key === 'profesor'), // Profesores pueden leer páginas privadas
            'edit_others_posts' => ($key === 'alumno'), // Alumnos pueden editar sus propios posts
            'delete_others_posts' => ($key === 'alumno'), // Alumnos pueden eliminar sus propios posts
            'upload_files' => ($key === 'alumno'), // Alumnos pueden cargar archivos
            'read_private_posts' => ($key === 'alumno'), // Alumnos pueden leer sus propios posts privados
            'edit_pages' => ($key === 'alumno'), // Alumnos pueden editar sus propias páginas
            'delete_pages' => ($key === 'alumno'), // Alumnos pueden eliminar sus propias páginas
            'publish_pages' => ($key === 'alumno'), // Alumnos pueden publicar sus propias páginas
            'read_private_pages' => ($key === 'alumno'), // Alumnos pueden leer sus propias páginas privadas
            // Ajusta según necesites
        )
    );
}
Lenguaje del código: PHP (php)

Explicación del Código:

  • Hemos ajustado las capacidades para otorgar a los profesores habilidades de editor y a los alumnos habilidades de colaborador, permitiéndoles editar, publicar y gestionar su propio contenido de manera más específica.

Paso 3: Personalización

Ajusta las capacidades según tus necesidades.

¿Quieres que los profesores editen usuarios?

Agrega 'edit_users' =>($key === ‘profesor’).

¿Quieres que los alumnos no puedan borrar sus páginas?

Elimina 'delete_pages' => ($key === ‘alumno’).

Si por ejemplo ya hemos creado los roles y por cualquier motivo queremos quitarle una capacidad que ya tiene un rol, tendremos que eliminar la línea de código que agrega esa capacidad. Si queremos quitar a los alumnos la capacidad de subir archivos eliminaremos esta línea de código:

            'upload_files' => ($key === 'alumno'), // Alumnos pueden cargar archivos
Lenguaje del código: PHP (php)

y modificaremos el código original añadiendo este código:

 // Si el rol es 'alumno', quita la capacidad 'upload_files'
    if ($key === 'alumno') {
        $alumno_role = get_role($key);
        $alumno_role->remove_cap('upload_files');
    }Lenguaje del código: PHP (php)

En el código anterior le estamos diciendo a nuestro WordPress que si el rol es Alumno elimine la capacidad de subir archivos. El código completo quedaría así:

// Crear roles de Profesor y Alumno
$roles = array(
    'profesor' => __('Profesor'),
    'alumno' => __('Alumno'),
);

foreach ($roles as $key => $value) {
    add_role(
        $key,
        $value,
        array(
            'read' => true,
            'edit_posts' => ($key === 'profesor'), // Profesores pueden editar posts
            'delete_posts' => ($key === 'profesor'), // Profesores pueden eliminar posts
            'upload_files' => ($key === 'profesor'), // Profesores pueden cargar archivos
            'edit_others_posts' => ($key === 'profesor'), // Profesores pueden editar posts de otros
            'publish_posts' => ($key === 'profesor'), // Profesores pueden publicar posts
            'read_private_posts' => ($key === 'profesor'), // Profesores pueden leer posts privados
            'delete_others_posts' => ($key === 'profesor'), // Profesores pueden eliminar posts de otros
            'edit_pages' => ($key === 'profesor'), // Profesores pueden editar páginas
            'edit_others_pages' => ($key === 'profesor'), // Profesores pueden editar páginas de otros
            'edit_published_pages' => ($key === 'profesor'), // Profesores pueden editar páginas publicadas
            'delete_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas
            'delete_others_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas de otros
            'delete_published_pages' => ($key === 'profesor'), // Profesores pueden eliminar páginas publicadas
            'publish_pages' => ($key === 'profesor'), // Profesores pueden publicar páginas
            'read_private_pages' => ($key === 'profesor'), // Profesores pueden leer páginas privadas
            'edit_others_posts' => ($key === 'alumno'), // Alumnos pueden editar sus propios posts
            'delete_others_posts' => ($key === 'alumno'), // Alumnos pueden eliminar sus propios posts
            'read_private_posts' => ($key === 'alumno'), // Alumnos pueden leer sus propios posts privados
            'edit_pages' => ($key === 'alumno'), // Alumnos pueden editar sus propias páginas
            'delete_pages' => ($key === 'alumno'), // Alumnos pueden eliminar sus propias páginas
            'publish_pages' => ($key === 'alumno'), // Alumnos pueden publicar sus propias páginas
            'read_private_pages' => ($key === 'alumno'), // Alumnos pueden leer sus propias páginas privadas
            // Ajusta según necesites
        )
    );

    // Si el rol es 'alumno', quita la capacidad 'upload_files'
    if ($key === 'alumno') {
        $alumno_role = get_role($key);
        $alumno_role->remove_cap('upload_files');
    }
}
Lenguaje del código: PHP (php)

Paso 4: ¡Explora!

Guarda y recarga tu sitio. Visita la sección de usuarios en el panel de WordPress y verás los roles de Profesor y Alumno con sus nuevas capacidades.

crear roles de usuario wordpress

Conclusión

En resumen, la creación de roles de usuario personalizados en WordPress emerge como una estrategia técnica y efectiva para optimizar la funcionalidad de cualquier sitio web. Al dotar a los usuarios con roles específicos, se establece un marco claro de responsabilidades y capacidades, contribuyendo significativamente a la eficiencia operativa y la gestión del contenido.

La versatilidad ofrecida por la creación de roles permite adaptar el sitio según las necesidades particulares, proporcionando un control más preciso sobre quién puede realizar qué acciones. Esta capacidad de personalización es fundamental, no solo en entornos educativos, sino en una variedad de contextos web.

Crear roles de usuario personalizados no solo es una práctica técnica, sino una estrategia integral para diseñar una experiencia de usuario más enfocada y personalizada. Desde la gestión de contenidos hasta la interacción de los usuarios, la implementación de roles personalizados ofrece un nivel adicional de control y adaptabilidad.

Nos vemos en el siguiente tutorial.

Un saludo.

5/5 - (4 votos)
Compartir Artículo

Un comentario

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

    Deja tus opiniones o dudas en los comentarios.

¿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%