Permitir que otro rol que no sea admin vea y utilice un determinado plugin

Club para webmasters Foros Desarrollo web Permitir que otro rol que no sea admin vea y utilice un determinado plugin

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #15394 Karma: 0
    Usuario-Chorri
    Participante
    100
    ChorriPuntos 36
    Nuevo

    Buenas chorris, esta tarde me he encontrado con este problemilla para el que finalmente he encontrado solución y procedo a compartirla con vosotros, pues creo que puede ser bastante útil.

    ** NOTA: Haced primero una copia de seguridad siempre antes de hurgar en el código o en las bases de datos **
    ** NOTA 2: Los cambios que se hacen en los archivos del plugin cuando se actualiza, se sobrescriben, así que os tocará hacerlo cada vez que actualicéis el plugin **

    Como dice el título, yo quería asignar a un usuario con el rol de “editor” la capacidad de utilizar un plugin que no aparecía cuando él iniciaba sesión. WordPress, según he visto, asigna a cada rol de usuario una acción mediante la cual se dirige a ellos en el código. Según el tipo de usuario, las acciones a las que se refiere cada uno son:

    administrador – manage_options
    editores – edit_pages
    autores – publish_posts
    colaboradores – edit_posts
    subscriptores – read

    Es probable que habitualmente la función cuyos parámetros vamos a modificar se encuentre en el archivo principal del plugin, sin embargo, casualmente en el que yo he modificado, se encontraba en una clase externa, así que para evitar confusiones en el futuro vamos a hacer la búsqueda en todos los archivos de lo que nos interesa, para lo cual, lo que hay que hacer es abrir con un IDE o un editor de texto (yo utilizo VS Code) la carpeta del plugin, que se encuentra, como ya sabréis, en la ruta wp-content/plugins/
    *NOTA: Cercioraos de abrir sólo la carpeta del plugin al que queráis que acceda el usuario, no la carpeta con todos los plugins, para aseguraros de hacer las modificaciones sólo donde os interese y no la liéis.

    Ahí se nos van a cargar todos los archivos que contiene esta carpeta y vamos a poder hacer uso de la búsqueda en archivos (Edit->find in files o ctrl+shift+f en VS Code)

    encontrar en archivos

    Entonces vamos a buscar “manage_options” y el resultado nos va a llevar a una función que es la que va a decidir si se va a mostrar o no. En mi caso, esta función se llama add_submenu_page() pero en el vuestro puede que sea diferente.
    Localizando la función a modificar

    Y como habréis podido suponer, tenemos que cambiar ese parámetro “manage_options” que apunta al admin, por la acción del usuario que queramos que tenga acceso al plugin en el menú de WordPress. En mi caso, que era el rol de editor, sustituyo ese “manage_options” por “edit_pages”.
    Parámetro de función editado

    Y ya está, ahora el plugin ya está visible para el usuario en el panel de WordPress. Espero que os sea útil en algún momento.

    Puede que tengáis que darle más permisos a ese rol para utilizar alguna función del plugin, para eso podéis usar el user role editor, según he visto.

    Un saludo!

    • Este debate fue modificado hace 6 meses, 1 semana por Usuario-Chorri.
    #15403 Karma: 0
    David Cuesta
    Superadministrador
    161
    ChorriPuntos 7.743
    Curso SEO
    ChorriCuesta

    ¿Muchas gracias por el aporte! Nivelazo 😀

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.