Permitir acceso a editores a plugins añadidos

30 mar 2015, 16:18:02
Vistas: 26.8K
Votos: 3

He creado un plugin personalizado que quiero que los usuarios con rol de Editor puedan utilizar.

Encontré un enlace aquí sobre cómo permitir que los editores puedan editar menús ¿permitir a los editores editar menús?

usando este código.

    $role_object = get_role( 'editor' );

// añadir la capacidad $cap a este objeto de rol
$role_object->add_cap( 'edit_theme_options' );

Entonces, ¿hay alguna manera posible de permitir que los Editores tengan acceso a mis plugins personalizados añadidos?

0
Todas las respuestas a la pregunta 4
3

Después de una búsqueda rápida, encontré mi respuesta aquí

https://wordpress.org/support/topic/how-to-allow-non-admins-editors-authors-to-use-certain-wordpress-plugins

Cambiando todas las ocurrencias de 'manage_options' por 'edit_pages' en los archivos de mis Plugins.

Los editores tienen permiso para usar plugins con Edit_pages

30 mar 2015 16:43:16
Comentarios

Probé tu sugerencia pero no funcionó para mí.

¿Puedes dar más detalles de cómo lograrlo?, por favor

Alejo_Blue Alejo_Blue
19 jun 2018 19:35:41

Bien, ¿necesitas un fragmento de código de Plugin de ejemplo en Github? Eso debería funcionar

user123451 user123451
20 jun 2018 20:30:23

¡exactamente! funciona perfectamente, muchas gracias

Youssef Youssef
15 may 2020 06:56:13
0

Por favor, agrega el siguiente código.

function activate_plugin_name() {
   $role = get_role( 'editor' );
   $role->add_cap( 'manage_options' ); // capacidad
}
// Registramos nuestro hook de activación
register_activation_hook( __FILE__, 'activate_plugin_name' );

function deactivate_plugin_name() {

  $role = get_role( 'editor' );
  $role->remove_cap( 'manage_options' ); // capacidad
}
// Registramos nuestro hook de desactivación
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`
9 feb 2017 00:17:44
0

Este es solo un caso de uso de la necesidad de activar un plugin para el rol de usuario "editor". El plugin se llama bulk images to posts. Este plugin está activo solo para el rol de administrador. Por lo tanto, para activarlo para el rol de "editor", debes ir al archivo "bulk-images-to-posts.php" y buscar la función big_create_menu() (responsable de crear un menú en la barra lateral del administrador) Ahora, si reemplazas "manage_options" por "edit_pages" verás que en el menú de administración del rol "editor", el plugin se activa. Nuevamente, este es solo un ejemplo de un caso de uso para mostrar el efecto de "edit_pages"

Aquí hay un fragmento de código que muestra esto:

// crear un nuevo menú de nivel superior
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Subidor de Imágenes Masivas a Entradas','bulk-images-to-posts'), __('Masivo','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// crear páginas de submenú
add_submenu_page( 'bulk-images-to-post', __('Imágenes Masivas a Entradas - Subir','bulk-images-to-posts'), __('Subidor','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');
15 may 2020 07:44:48
0

Gracias Liz Eipe por tu solución, pero desafortunadamente eso no funcionó para mí. Lo que sí funcionó fue cambiar el 'capability' para todos los hooks de add_menu_page() y add_submenu_page().

Básicamente, el valor de capability que estableces corresponde al acceso para diferentes tipos y combinaciones de usuarios. Puedes ver todas las capacidades posibles y su acceso aquí.

Yo elegí 'publish_posts' como valor, lo que da acceso a Super Admin, Admin, Editor y Autor a la página de administración que registras con tus hooks.

Este era mi código antes:

add_menu_page(
  'My Menu Title',
  'custom menu',
  'administrator', // Solo acceso para admin
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3
);

Y ahora con acceso para Admin, Editor y Autor cambió a:

add_menu_page(
  'My Menu Title',
  'custom menu',
  'publish_posts', // Acceso para Admin, Editor, Autor
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3
);

Una última nota pequeña; no olvides cambiar esto para todas las páginas de administración del plugin a las que quieras que otros usuarios tengan acceso, como todas las páginas de submenú.

26 nov 2020 19:19:52