web-dev-qa-db-fra.com

Comment puis-je changer de plugin pour donner accès au rôle d'utilisateur d'éditeur?

Je souhaite donner à mes éditeurs l'accès à une page de paramètres d'un plugin que j'ai installé sur leur site web. Pour l'instant, il n'est visible que par les administrateurs.

Le plug-in que j'utilise est uTubeVideo Gallery, et il n'y a pas d'autre option pour donner aux utilisateurs un accès autre que celui des administrateurs.

Dans son admin.php, j'ai trouvé ces lignes qui, je le sais, créent la page des paramètres:

public function addMenus()
{
    add_menu_page('uTubeVideo', 'uTubeVideo', 'manage_options', 'utubevideo_settings', array($this, 'option_panel'), plugins_url('utubevideo-gallery/i/utubevideo_icon_16x16.png'));
    add_submenu_page('utubevideo_settings', 'uTubeVideo Galleries', __('Galleries', 'utvg'), 'manage_options', 'utubevideo_settings_galleries', array($this, 'gallery_panel')); 
}

Y at-il un moyen pour moi de modifier son code afin que je puisse donner accès aux éditeurs?

2
turtledropbomb

L'argument manage_options que vous voyez dans les deux appels de fonction est une capacité. Cette fonctionnalité particulière rend la page accessible uniquement aux administrateurs .

Pour que cela fonctionne, vous pouvez changer cela en une des capacités de l'éditeur comme edit_others_posts Vous pouvez aussi créer une nouvelle capacité et l'utiliser.

Cependant, cela signifie le piratage du plugin et la prochaine fois que le plugin sera mis à jour, vos modifications seront écrasées. C'est pourquoi le piratage des plugins est généralement une mauvaise idée.

Je voudrais:

  1. Réfléchissez bien aux raisons pour lesquelles les éditeurs ont besoin d'accéder à cette page global settings. Les "éditeurs" sont logiquement un rôle de "contenu" et non un rôle "d'administration de site global", ce à quoi vous semblez les convertir partiellement.
  2. Déterminez si les éditeurs ont besoin d’un code abrégé ou d’un autre accès simplifié à la fonctionnalité du plug-in.
  3. Si ni l'un ni l'autre ne convient, contactez l'auteur du plugin et découvrez pourquoi l'accès est limité et s'il est disposé à changer le code du plugin.
5
s_ha_dum

Essayer avec

public function addMenus()
{
   add_menu_page('uTubeVideo', 'uTubeVideo', 'delete_posts', 'utubevideo_settings', array($this, 'option_panel'), plugins_url('utubevideo-gallery/i/utubevideo_icon_16x16.png'));
   add_submenu_page('utubevideo_settings', 'uTubeVideo Galleries', __('Galleries', 'utvg'), 'delete_posts', 'utubevideo_settings_galleries', array($this, 'gallery_panel')); 
}
0
Laukik Patel