Consentire l'accesso agli editor per i plugin aggiunti

30 mar 2015, 16:18:02
Visualizzazioni: 26.8K
Voti: 3

Ho creato un plugin personalizzato che voglio che gli utenti con ruolo Editor possano utilizzare.

Ho trovato un link qui per consentire l'accesso agli editor per modificare i menu consentire agli editor di modificare i menu?

utilizzando questo codice.

    $role_object = get_role( 'editor' );

// aggiungi la capacità $cap a questo oggetto ruolo
$role_object->add_cap( 'edit_theme_options' );

Quindi, c'è un modo possibile per consentire agli Editor l'accesso ai miei plugin personalizzati aggiunti?

0
Tutte le risposte alla domanda 4
3

Dopo una rapida ricerca, ho trovato la risposta qui

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

Sostituendo tutte le occorrenze di 'manage_options' con 'edit_pages' nei file dei miei Plugin.

Gli editori possono utilizzare i plugin con il capability 'edit_pages'

30 mar 2015 16:43:16
Commenti

Ho provato il tuo suggerimento ma non ha funzionato per me.

Puoi fornire maggiori dettagli su come realizzarlo?, per favore

Alejo_Blue Alejo_Blue
19 giu 2018 19:35:41

Va bene, hai bisogno di un frammento di codice di esempio per un Plugin su Github? Dovrebbe funzionare

user123451 user123451
20 giu 2018 20:30:23

esattamente! funziona perfettamente, grazie mille

Youssef Youssef
15 mag 2020 06:56:13
0

Per favore aggiungi il seguente codice.

function activate_plugin_name() {
   $role = get_role( 'editor' );
   $role->add_cap( 'manage_options' ); // capability
}
// Registriamo il nostro hook di attivazione
register_activation_hook( __FILE__, 'activate_plugin_name' );

function deactivate_plugin_name() {

  $role = get_role( 'editor' );
  $role->remove_cap( 'manage_options' ); // capability
}
// Registriamo il nostro hook di disattivazione
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`
9 feb 2017 00:17:44
0

Questo è solo un caso d'uso della necessità di attivare un plugin per il ruolo utente "editor". Il plugin si chiama bulk images to posts. Questo plugin è attivo solo per il ruolo admin. Quindi per attivarlo per il ruolo "editor", devi passare attraverso il file "bulk-images-to-posts.php" e cercare la funzione big_create_menu() (responsabile della creazione di un menu nella barra admin laterale) Ora se sostituisci "manage_options" con "edit_pages" vedrai che nel menu admin del ruolo "editor", il plugin diventa attivo. Ancora una volta, questo è solo un esempio di 1 caso d'uso per mostrare l'effetto di "edit_pages"

Ecco uno snippet di codice che mostra questo:

// crea un nuovo menu di primo livello
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');
// crea pagine di sottomenu
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 mag 2020 07:44:48
0

Grazie Liz Eipe per la tua soluzione, ma purtroppo non ha funzionato per me. Ciò che ha funzionato per me è stato cambiare la 'capability' per tutti gli hook add_menu_page() e add_submenu_page().

Fondamentalmente, il valore di capability che imposti corrisponde all'accesso per diversi tipi e combinazioni di utenti. Puoi visualizzare tutte le capability possibili e il loro accesso qui.

Ho scelto 'publish_posts' come valore, che concede a Super Admin, Admin, Editor e Author l'accesso alla pagina admin che registri con i tuoi hook.

Questo era il mio codice prima:

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

E ora con accesso per Admin, Editor e Author è cambiato in:

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

Un'ultima piccola nota; non dimenticare di cambiare questo per tutte le pagine admin del plugin a cui vuoi che altri utenti abbiano accesso, come tutte le pagine dei sottomenu.

26 nov 2020 19:19:52