Permite editorilor accesul la plugin-urile adăugate

30 mar. 2015, 16:18:02
Vizualizări: 26.8K
Voturi: 3

Am creat un plugin personalizat pe care vreau să îl poată folosi utilizatorii care au rol de Editor.

Am găsit un link aici despre cum să permiți editorilor să editeze meniurile permite editorilor să editeze meniurile?

folosind acest cod.

    $role_object = get_role( 'editor' );

// adaugă capabilitatea $cap acestui obiect de rol
$role_object->add_cap( 'edit_theme_options' );

Așadar, există vreo modalitate prin care pot permite editorilor accesul la plugin-urile mele personalizate adăugate?

0
Toate răspunsurile la întrebare 4
3

După o scurtă căutare, am găsit răspunsul aici

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

Prin schimbarea tuturor aparițiilor 'manage_options' în 'edit_pages' în fișierele mele de Plugin.

Editorilor li se permite să utilizeze plugin-uri cu Edit_pages

30 mar. 2015 16:43:16
Comentarii

Am încercat sugestia ta, dar nu a funcționat pentru mine.

Poți să-mi oferi mai multe detalii despre cum să realizez asta, te rog?

Alejo_Blue Alejo_Blue
19 iun. 2018 19:35:41

Bine, ai nevoie de un fragment de cod exemplu pentru Plugin pe Github? Ar trebui să funcționeze

user123451 user123451
20 iun. 2018 20:30:23

exact! funcționează perfect, mulțumesc mult

Youssef Youssef
15 mai 2020 06:56:13
0

Te rugăm să adaugi următorul cod.

function activate_plugin_name() {
   $role = get_role( 'editor' );
   $role->add_cap( 'manage_options' ); // capabilitate
}
// Înregistrăm hook-ul de activare
register_activation_hook( __FILE__, 'activate_plugin_name' );

function deactivate_plugin_name() {
  $role = get_role( 'editor' );
  $role->remove_cap( 'manage_options' ); // capabilitate
}
// Înregistrăm hook-ul de dezactivare
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`
9 feb. 2017 00:17:44
0

Acesta este doar un exemplu de situație în care este necesară activarea unui plugin pentru rolul de "editor". Pluginul se numește bulk images to posts. Acest plugin este activ doar pentru rolul de administrator. Pentru a-l activa pentru rolul de "editor", trebuie să parcurgeți fișierul "bulk-images-to-posts.php" și să căutați funcția big_create_menu() (responsabilă de crearea unui meniu în bara laterală de administrare) Dacă înlocuiți "manage_options" cu "edit_pages" veți observa că în meniul de administrare al rolului "editor", pluginul devine activ. Din nou, acesta este doar un exemplu pentru a ilustra efectul lui "edit_pages"

Iată un fragment de cod care ilustrează acest lucru:

// crează un nou meniu de top level
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Bulk Images to Posts Uploader','bulk-images-to-posts'), __('Bulk','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// crează pagini de submeniu
add_submenu_page( 'bulk-images-to-post', __('Bulk Images to Post - Upload','bulk-images-to-posts'), __('Uploader','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');
15 mai 2020 07:44:48
0

Mulțumesc Liz Eipe pentru soluția ta, dar din păcate nu a funcționat pentru mine. Ceea ce a funcționat în schimb, a fost schimbarea 'capability' pentru toate hook-urile add_menu_page() și add_submenu_page().

În esență, valoarea capability pe care o setezi corespunde accesului pentru diferite tipuri și combinații de utilizatori. Poți vedea toate capabilitățile posibile și accesul lor aici.

Am ales valoarea 'publish_posts', care oferă acces la pagina de administrare înregistrată cu hook-urile tale pentru Super Admin, Admin, Editor și Autor.

Acesta a fost codul meu înainte:

add_menu_page(
  'Titlul Meniului Meu',  
  'meniu personalizat',
  'administrator', // Doar admin are acces
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3
);

Și acum cu acces pentru Admin, Editor și Autor, s-a schimbat în:

add_menu_page(
  'Titlul Meniului Meu',
  'meniu personalizat',  
  'publish_posts', // Acces pentru Admin, Editor, Autor
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3  
);

O ultimă mică observație; nu uita să faci această modificare pentru toate paginile de administrare ale plugin-ului la care dorești să aibă acces și alți utilizatori, cum ar fi toate paginile de submeniu.

26 nov. 2020 19:19:52