Comment vérifier si le plugin est actif dans WordPress [3 FAÇONS]

Publié: 2020-08-08

vérifier si un plugin est actif dans WordPress En tant que développeur WordPress, l'une des vérifications les plus courantes dans votre code lors du développement d'un plugin est le statut d'activation du plugin. Il existe plusieurs raisons pour lesquelles vous devriez vérifier si un plugin est actif. Pour n'en citer que quelques-uns, vous pouvez vérifier si un plugin dépendant est actif ou un plugin similaire qui fait la même chose.

Dans les deux cas, vous devrez ajouter la vérification dans le fichier de base de votre plugin pour vérifier si le plugin ciblé est actif. Un exemple classique si vous développez un plugin WooCommerce qui étend les classes WooCommerce.

Par exemple, lorsque vous développez le plugin de passerelle de paiement WooCommerce, vous devez vérifier si WooCommerce est actif immédiatement après l'activation de votre plugin ou de préférence pendant le crochet d'activation du plugin.

Vérifier si un plugin WordPress est actif

Heureusement, le noyau de WordPress a une méthode ou une fonction prête à l'emploi qui vérifie si un certain plugin est actif et renvoie un vrai ou un faux.

is_plugin_active WordPress

Cette fonction renvoie un boolean - true or false et vous pouvez facilement l'incorporer dans votre code notamment lors du hook d'activation.

Si le plugin que vous vérifiez n'est pas actif, vous pouvez afficher un avis d'en-tête pour que l'utilisateur installe le plugin.

Vous pouvez également appliquer la même fonction lorsque vous souhaitez que l'utilisateur désactive un autre plugin susceptible d'entrer en conflit avec les fonctionnalités de votre plugin.

Examen rapide de la fonction is_plugin_active()

Examinons rapidement la fonction is_plugin_active() pour en savoir plus sur la façon de l'utiliser efficacement dans votre projet.

is_plugin_active( string $plugin )

Cette fonction prend un paramètre de chaîne qui est la représentation du chemin vers le chemin relatif du plugin dans le répertoire des plugins.

 fonction est_plugin_active( $plugin ) {
    return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network( $plugin );
}

Par exemple WooCommerce est le chemin est woocommerce/woocommerce.php comme indiqué sur le
image ci-dessous :
Chemin du fichier de base WooCommerce

La fonction is_plugin_active() peut être utilisée pour vérifier si le plugin est actif dans le backend en utilisant l'extrait de code suivant

 <?php
/**
* Détecter le plugin. À utiliser uniquement dans la zone d'administration.
*/
if ( is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
// le plugin est activé
}

Par exemple si vous voulez vérifier si WooCommerce est actif vous pouvez vérifier en utilisant le code suivant :

 <?php
/**
* Vérifiez si le plugin WooCommerce est actif dans la zone d'administration
*/
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
//Le plugin WooCommerce est activé
}

Fichier de base du plugin et répertoire de base

Comme vous pouvez le voir, j'ai utilisé le nom de base du plugin WooCommerce et le dossier comme je l'ai mentionné et illustré à l'aide de l'image ci-dessus.
Le nom de base d'un plugin est le nom de fichier d'un plugin de fichier unique qui est le fichier principal et parfois il correspond au répertoire / dossier mais pas dans tous les cas - certains plugins sont différents.

Vérifiez si le plugin est actif dans le multisite

Pour WordPress multisite, il existe une fonction conçue pour aider les développeurs à vérifier si le plugin est actif dans le réseau multisite. La fonction est :

is_plugin_active_for_network( string $plugin )

Cette fonction fonctionne exactement comme la fonction is_plugin_active( string $plugin ) et peut être appliquée de la même manière pour déterminer si le plugin est actif sur le réseau multisite WordPress.

 <?php
fonction est_plugin_active_for_network( $plugin ) {
    si ( ! est_multisite() ) {
        retourner faux ;
    }
 
    $plugins = get_site_option( 'active_sitewide_plugins' );
    si ( isset( $plugins[ $plugin ] ) ) {
        retourner vrai ;
    }
 
    retourner faux ;
}

Autres moyens de vérifier si le plugin est actif

Il existe d'autres moyens que vous pouvez utiliser pour vérifier si un plugin est actif. Vous pouvez vérifier en utilisant les fonctions php natives class_exists ou function_exists. Ces méthodes vérifient si la classe du plugin ou la fonction existe respectivement.

Utilisation de function_exists() pour vérifier si le plugin est actif

Si vous connaissez la fonction ou la méthode d'un plugin, vous pouvez vérifier en utilisant la méthode function_exists comme dans l'extrait ci-dessous :

 <?php
if( function_exists( 'plugin_function' ) ) {
// Le plugin est actif
}

Utilisation de class_exists() pour vérifier si le plugin est actif

Si vous connaissez la classe principale d'un plugin, vous pouvez vérifier en utilisant la méthode class_exists comme dans l'extrait ci-dessous :

 <?php
if( class_exists( 'plugin_class' ) ) {
// Le plugin est actif
}

Vous pouvez crocheter l'une ou l'autre de ces méthodes pour vérifier si le plugin est actif sur le crochet plugins_loaded comme dans l'extrait de code ci-dessous :

 <?php
/*
* Tester si un plugin est actif
*/

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

// C'est actif alors faites la logique ici

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

Conclusion

Dans cet article, nous avons mis en évidence les différentes façons de vérifier si un plugin est actif lorsque vous développez un autre plugin ou thème. Ce sont des méthodes utiles que vous pouvez appliquer à toutes vos tâches de développement WordPress.

Articles similaires