Home>Snippets>Evitare la disattivazione dei plugins di WordPress

Evitare la disattivazione dei plugins di WordPress


Evitare la disattivazione dei plugin 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:



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Rimuovere i widget di default dalla bacheca di WordPress

Rimuovere i widget di default dalla bacheca di WordPress


Ecco come rimuovere con un semplice snippet i widget predefiniti presenti nella bacheca di WordPress

Come caricare file SVG in WordPress

Come caricare file SVG in WordPress


Ecco un semplice trucchetto per abilitare l’upload dei file SVG nella libreria media di WordPress ed utilizzarli all’interno del tuo sito web.

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)