Come verificare se il plug-in è attivo in WordPress [ 3 MODI ]

Pubblicato: 2020-08-08

controlla se un plugin è attivo in WordPress In qualità di sviluppatore WordPress, uno dei controlli più comuni nel codice durante lo sviluppo di un plug-in è lo stato di attivazione del plug-in. Esistono diversi motivi per verificare se un plug-in è attivo. Per citarne alcuni, puoi verificare se un plug-in dipendente è attivo o un plug-in simile che fa la stessa cosa.

In entrambi i casi dovrai aggiungere il check nel file di base del tuo plug-in per verificare se il plug-in di destinazione è attivo. Un classico esempio se stai sviluppando un plugin WooCommerce che estende le classi WooCommerce.

Ad esempio, quando si sviluppa il plug-in del gateway di pagamento WooCommerce, è necessario verificare se WooCommerce è attivo subito dopo l'attivazione del plug-in o preferibilmente durante l'hook di attivazione del plug-in.

Verifica se un plugin per WordPress è attivo

Fortunatamente, il core di WordPress ha un metodo o una funzione pronta all'uso che controlla se un determinato plugin è attivo e restituisce un valore vero o falso.

is_plugin_active WordPress

Questa funzione restituisce un boolean - true or false e puoi facilmente incorporarlo nel tuo codice specialmente durante l'hook di attivazione.

Se il plug-in che stai controllando non è attivo, puoi visualizzare un avviso di intestazione per consentire all'utente di installare il plug-in.

Puoi anche applicare la stessa funzione quando desideri che l'utente disattivi un altro plug-in che potrebbe entrare in conflitto con la funzionalità del tuo plug-in.

Funzione is_plugin_active() Recensione rapida

Esaminiamo rapidamente la funzione is_plugin_active() per saperne di più su come utilizzarla efficacemente nel tuo progetto.

is_plugin_active( string $plugin )

Questa funzione accetta un parametro stringa che è la rappresentazione del percorso del percorso relativo del plugin nella directory dei plugin.

 funzione è_plugin_attivo($plugin) {
    return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network($plugin);
}

Ad esempio WooCommerce è il percorso è woocommerce/woocommerce.php come mostrato in
immagine sotto:
Percorso del file di base di WooCommerce

La funzione is_plugin_active() può essere utilizzata per verificare se il plug-in è attivo nel backend utilizzando il seguente frammento di codice

 <?php
/**
* Rileva plug-in. Da utilizzare solo nell'area di amministrazione.
*/
if ( is_plugin_active( 'directory-plugin/file-plugin.php' ) ) {
//il plugin è attivato
}

Ad esempio se vuoi verificare se WooCommerce è attivo puoi controllare utilizzando il seguente codice:

 <?php
/**
* Verifica se WooCommerce Plugin è attivo nell'area di amministrazione
*/
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
//Il plug-in WooCommerce è attivato
}

File di base del plug-in e directory di base

Come puoi vedere, ho usato il nome di base del plug-in WooCommerce e la cartella come ho menzionato come illustrato usando l'immagine sopra.
Il nome di base di un plug-in è il nome del file di un plug-in di file singolo che è il file principale e talvolta corrisponde alla directory/cartella ma non in tutti i casi: alcuni plug-in sono diversi.

Verifica se il plug-in è attivo in multisito

Per il multisito WordPress esiste una funzione progettata per aiutare gli sviluppatori a verificare se il plugin è attivo nella rete multisito. La funzione è:

is_plugin_active_for_network( string $plugin )

Questa funzione funziona esattamente come la funzione is_plugin_active( string $plugin ) e può essere applicata allo stesso modo per determinare se il plugin è attivo nella rete multisito di WordPress.

 <?php
la funzione è_plugin_active_for_network($plugin) {
    se ( ! è_multisito() ) {
        restituire falso;
    }
 
    $plugins = get_site_option('active_sitewide_plugins');
    if ( isset($plugin[$plugin])) {
        restituisce vero;
    }
 
    restituire falso;
}

Altri modi per verificare se il plug-in è attivo

Ci sono altri modi che puoi utilizzare per verificare se un plugin è attivo. Puoi controllare usando le funzioni php native class_exists o function_exists. Questi metodi controllano se esiste rispettivamente la classe del plugin o la funzione.

Utilizzo di function_exists() per verificare se il plug-in è attivo

Se conosci la funzione o il metodo di un plugin puoi controllare usando il metodo function_exists come nello snippet qui sotto:

 <?php
se( funzione_esiste( 'funzione_plugin' ) ) {
// Il plugin è attivo
}

Utilizzo di class_exists() per verificare se il plug-in è attivo

Se conosci la classe principale di un plugin puoi controllare usando il metodo class_exists come nello snippet qui sotto:

 <?php
se( classe_esiste( 'classe_plugin' ) ) {
// Il plugin è attivo
}

Puoi agganciare uno di questi metodi per verificare se il plugin è attivo plugins_loaded come nello snippet di codice qui sotto:

 <?php
/*
* Verifica se un plugin è attivo
*/

funzione njengah_is_plugin_name_active() {
if( class_exists( 'Plugin_Class' ) ) {

// È attivo, quindi fai la logica qui

}
}
add_action('plugins_loaded', 'njengah_is_plugin_name_active');

Conclusione

In questo post abbiamo evidenziato i vari modi per verificare se un plugin è attivo quando stai sviluppando un altro plugin o tema. Questi sono metodi utili che puoi applicare a tutte le tue attività di sviluppo di WordPress.

Articoli simili