Evitare la disattivazione dei plugins di WordPress

A volte può capitare che per questioni pratiche, ci siano uno o più plugins fondamentali per il funzionamento del tema e/o della piattaforma WordPress. Come fare in modo che questi non vengano disabilitati da qualche utente che ha accesso al backend ed anche i permessi per farlo?
Pensiamo ad esempio ad un sito che hai creato per un tuo cliente, il cui utente ha i permessi di amministratore del sito. Ipotizziamo che su questo sito, ci sia un plugin fondamentale per il funzionamento e che quindi non deve essere assolutamente disattivato, come fare?
- Leggi l'articolo, ti bastano solo 2 minuti, 42 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Il codice
Modifica il file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
ed aggiungi le seguenti linee di codice:
// Evita che i plugin vengano disattivati add_filter( 'plugin_action_links', function( $actions, $plugin ) { if ( array_key_exists( 'edit', $actions ) ) { unset( $actions['edit'] ); } if ( array_key_exists( 'deactivate', $actions ) ) { unset( $actions['deactivate'] ); } return $actions; }, 10, 4 );
- Riga 3-5: eliminiamo da ogni plugin il link modifica
- Riga 6-8: eliminiamo da ogni plugin il link disattiva
Approfondimento
Nel caso tu voglia evitare che vengano disattivati solo alcuni plugins e non tutti, basta aggiungere una seconda condizione di controllo alla riga 6, specificando in un array() i plugin da “bloccare”:
// Evita che solo alcuni plugin vengano disattivati add_filter( 'plugin_action_links', function( $actions, $plugin ) { if ( array_key_exists( 'edit', $actions ) ) { unset( $actions['edit'] ); } if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin, array( 'woocommerce/woocommerce.php', 'contact-form-7/wp-contact-form-7.php' ) ) ) { unset( $actions['deactivate'] ); } return $actions; }, 10, 4 );
Nel caso specifico, abbiamo reso non disattivabili i plugins WooCommerce e Contact Form 7.
Ecco il confronto tra il prima:
e il dopo aver inserito lo snippet: