Cum să verificați dacă pluginul este activ în WordPress [ 3 MODI ]

Publicat: 2020-08-08

verificați dacă un plugin este activ în WordPress În calitate de dezvoltator WordPress, una dintre cele mai comune verificări din codul dvs. atunci când dezvoltați un plugin este starea activării pluginului. Există mai multe motive pentru care ar trebui să verificați dacă un plugin este activ. Ca să menționăm câteva, puteți verifica dacă un plugin dependent este activ sau un plugin similar care face același lucru.

În ambele cazuri, va trebui să adăugați verificarea în fișierul de bază al pluginului pentru a verifica dacă pluginul vizat este activ. Un exemplu clasic dacă atunci când dezvoltați un plugin WooCommerce care extinde clasele WooCommerce.

De exemplu, atunci când dezvoltați pluginul pentru poarta de plată WooCommerce, trebuie să verificați dacă WooCommerce este activ imediat după activarea pluginului dvs. sau, de preferință, în timpul cârligului de activare a pluginului.

Verificați dacă un plugin WordPress este activ

Din fericire, nucleul WordPress are o metodă sau o funcție gata de utilizare care verifică dacă un anumit plugin este activ și returnează un adevărat sau fals.

este_plugin_activ WordPress

Această funcție returnează un boolean - true or false și îl puteți încorpora cu ușurință în codul dvs., mai ales în timpul hook-ului de activare.

Dacă pluginul pe care îl verificați nu este activ, puteți afișa o notificare de antet pentru ca utilizatorul să instaleze pluginul.

De asemenea, puteți aplica aceeași funcție atunci când doriți ca utilizatorul să dezactiveze un alt plugin care ar putea intra în conflict cu funcționalitatea pluginului dvs.

Funcția is_plugin_active() Revizuire rapidă

Să ne uităm rapid la funcția is_plugin_active() pentru a afla mai multe despre cum să o folosești eficient în proiectul tău.

is_plugin_active( string $plugin )

Această funcție ia un parametru șir care este reprezentarea căii către calea relativă a pluginului în directorul de pluginuri.

 function is_plugin_active( $plugin ) {
    return in_array( $plugin, (matrice) get_option( 'plugins_active', array() ) ) || is_plugin_active_for_network( $plugin );
}

De exemplu, WooCommerce este calea woocommerce/woocommerce.php , așa cum se arată pe
imaginea de mai jos:
Calea fișierului de bază WooCommerce

Funcția is_plugin_active() poate fi utilizată pentru a verifica dacă pluginul este activ în backend folosind următorul fragment de cod

 <?php
/**
* Detectează pluginul. Pentru utilizare numai în zona de administrare.
*/
if ( is_plugin_active( 'director-plugin/fişier-plugin.php' ) ) {
//pluginul este activat
}

De exemplu, dacă doriți să verificați dacă WooCommerce este activ, puteți verifica folosind următorul cod:

 <?php
/**
* Verificați dacă WooCommerce Plugin este activ în zona de administrare
*/
dacă ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
// Pluginul WooCommerce este activat
}

Fișier de bază pentru plugin și director de bază

După cum puteți vedea, am folosit numele de bază al pluginului WooCommerce și folderul, așa cum am menționat și ilustrat folosind imaginea de mai sus.
Numele de bază al unui plugin este numele fișierului pentru un singur plugin de fișier care este fișierul principal și uneori se potrivește cu directorul / folderul, dar nu în toate cazurile - unele plugin-uri sunt diferite.

Verificați dacă pluginul este activ în Multisite

Pentru WordPress multisite există o funcție care este concepută pentru a ajuta dezvoltatorii să verifice dacă pluginul este activ în rețeaua multisite. Funcția este:

is_plugin_active_for_network( string $plugin )

Această funcție funcționează la fel ca funcția is_plugin_active( string $plugin ) și poate fi aplicată în același mod pentru a determina dacă pluginul este activ în rețeaua multisite WordPress.

 <?php
funcția is_plugin_active_for_network( $plugin ) {
    dacă ( ! is_multisite() ) {
        returnează fals;
    }
 
    $plugins = get_site_option( 'active_sitewide_plugins' );
    if ( isset( $plugins[ $plugin ] ) ) {
        returnează adevărat;
    }
 
    returnează fals;
}

Alte moduri de a verifica dacă pluginul este activ

Există și alte moduri pe care le puteți folosi pentru a verifica dacă un plugin este activ. Puteți verifica folosind funcțiile native php class_exists sau function_exists. Aceste metode verifică dacă clasa plugin-ului sau respectiv funcția există.

Folosind function_exists() pentru a verifica dacă pluginul este activ

Dacă cunoașteți funcția sau metoda unui plugin, puteți verifica folosind metoda function_exists ca în fragmentul de mai jos:

 <?php
if( function_exists( 'plugin_function' ) ) {
// Pluginul este activ
}

Folosind class_exists() pentru a verifica dacă pluginul este activ

Dacă știți despre clasa principală a unui plugin, puteți verifica folosind metoda class_exists ca în fragmentul de mai jos:

 <?php
if( class_exists( 'plugin_class' ) ) {
// Pluginul este activ
}

Puteți conecta oricare dintre aceste metode pentru a verifica dacă pluginul este activ pe cârligul plugins_loaded , ca în fragmentul de cod de mai jos:

 <?php
/*
* Testați dacă un plugin este activ
*/

funcția njengah_is_plugin_name_active() {
if( class_exists('Plugin_Class') ) {

// Este activ, așa că faceți logica aici

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

Concluzie

În această postare am evidențiat diferitele modalități de a verifica dacă un plugin este activ atunci când dezvoltați un alt plugin sau temă. Acestea sunt metode utile pe care le puteți aplica în toate sarcinile dvs. de dezvoltare WordPress.

Articole similare