Este plugin de WordPress lo uso para crear un role de usuario en WordPress, en este caso el plugin crea el role de «alumno» con solo la capacidad de lectura, ósea crea un role con las mismas capacidades del role suscriptor.
Este es el código completo del plugin creador de role y capabilities para WordPress:
<?php
/**
* Plugin Name: Creador role Alumno
* Plugin URI: https://webyblog.es/
* Description: Crea y gestiona un rol de usuario 'alumno' con capacidades definidas dentro del plugin. Actualmente solo tiene la capacidad de lectura que es la misma que la del role suscriptor. Al activar el plugin se crea el role alumno con la capacidad de lectura, luego puedes borrarlo o desactivarlo.
* Version: 1.0.0
* Author: Juan Luis Martel
* Author URI: https://webyblog.es/
* License: GPL2
*/
// Evita la ejecución directa del script
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Función para crear o actualizar el rol de alumno
*/
function jlmr_create_or_update_alumno_role() {
// Define las capacidades del rol de alumno
$capabilities = array(
'read' => true, // Ejemplo de capacidad, permite leer posts
// Aquí puedes añadir más capacidades según lo necesites
// Si añades una capacidad y luego la quieres eliminar, lo que debes de hacer es ponerla en false
);
// Verifica si el rol alumno ya existe
if ( $role = get_role( 'alumno' ) ) {
// Actualiza las capacidades del rol existente
foreach ( $capabilities as $cap => $grant ) {
$role->add_cap( $cap, $grant );
}
} else {
// Crea el nuevo rol de alumno
add_role( 'alumno', 'Alumno', $capabilities );
}
}
// Hook para ejecutar la función al activar el plugin
register_activation_hook( __FILE__, 'jlmr_create_or_update_alumno_role' );
?>
Funcionamiento del plugin creador de role de usuario para WordPress
Si activas el plugin, lo desactivas, y luego modificas el código para quitar la capacidad de lectura y añadir otra capacidad, esto es lo que sucederá:
- Activación Inicial del Plugin: Al activar el plugin por primera vez, se crea el rol de «alumno» con las capacidades definidas en ese momento en el código (por ejemplo, la capacidad de lectura).
- Desactivación del Plugin: Al desactivar el plugin, no se realiza ninguna acción sobre el rol de «alumno» ni sobre sus capacidades. El rol permanece en el sistema con las capacidades asignadas durante la activación.
- Modificación del Código del Plugin: Si luego editas el código del plugin para eliminar la capacidad de lectura (
'read' => true
) y añades una nueva capacidad (por ejemplo,'edit_posts' => true
), estas modificaciones afectarán las capacidades del rol de «alumno». - Reactivación del Plugin: Al reactivar el plugin después de estas modificaciones, la función
jlmr_create_or_update_alumno_role
verificará si el rol de «alumno» ya existe. Como ya existe, el plugin actualizará sus capacidades según las nuevas definiciones en el código. En este caso, eliminará la capacidad de lectura y añadirá la nueva capacidad que hayas definido.
Así, cada vez que el plugin se reactive después de haber sido modificado, actualizará las capacidades del rol de «alumno» para reflejar los cambios realizados en el código del plugin, como puedes ver es un plugin sencillo que hace muy bien lo que tiene que hacer sin recargar el sistema.
Puedes descargar el Plugin de WordPress Creador de role de alumno desde este enlace: