Cómo verificar si el complemento está activo en WordPress [3 MANERAS]

Publicado: 2020-08-08

verificar si un complemento está activo en WordPress Como desarrollador de WordPress, una de las verificaciones más comunes en su código al desarrollar un complemento es el estado de activación del complemento. Hay varias razones por las que debe verificar si un complemento está activo. Por mencionar algunos, puede verificar si un complemento dependiente está activo o un complemento similar que hace lo mismo.

En cualquier caso, deberá agregar la verificación en el archivo base de su complemento para verificar si el complemento objetivo está activo. Un ejemplo clásico si está desarrollando un complemento de WooCommerce que amplía las clases de WooCommerce.

Por ejemplo, cuando está desarrollando el complemento de pasarela de pago de WooCommerce, debe verificar si WooCommerce está activo inmediatamente después de activar su complemento o, preferiblemente, durante el enlace de activación del complemento.

Comprobar si un complemento de WordPress está activo

Afortunadamente, el núcleo de WordPress tiene un método o función listo para usar que verifica si un determinado complemento está activo y devuelve un verdadero o falso.

es_plugin_activo WordPress

Esta función devuelve un boolean - true or false , y puede incorporarlo fácilmente en su código, especialmente durante el gancho de activación.

Si el complemento que está comprobando no está activo, puede mostrar un aviso de encabezado para que el usuario instale el complemento.

También puede aplicar la misma función cuando desee que el usuario desactive otro complemento que probablemente entre en conflicto con la funcionalidad de su complemento.

Revisión rápida de la función is_plugin_active()

Veamos rápidamente la función is_plugin_active() para obtener más información sobre cómo usarla de manera efectiva en su proyecto.

is_plugin_active( string $plugin )

Esta función toma un parámetro de cadena que es la representación de la ruta a la ruta relativa del complemento en el directorio de complementos.

 función is_plugin_active ($ complemento) {
    return in_array ($complemento, (matriz) get_option( 'complementos_activos', matriz() ) ) || is_plugin_active_for_network ($ complemento);
}

Por ejemplo, la ruta de WooCommerce es woocommerce/woocommerce.php como se muestra en la
imagen a continuación:
Ruta del archivo base de WooCommerce

La función is_plugin_active() se puede usar para verificar si el complemento está activo en el backend usando el siguiente fragmento de código

 <?php
/**
* Detectar complemento. Solo para uso en el área de administración.
*/
if ( is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
// el complemento está activado
}

Por ejemplo, si desea verificar si WooCommerce está activo, puede verificar usando el siguiente código:

 <?php
/**
* Compruebe si el complemento WooCommerce está activo en el área de administración
*/
si (es_plugin_activo ('woocommerce/woocommerce.php')) {
//El complemento WooCommerce está activado
}

Archivo base del complemento y directorio base

Como puede ver, he usado el nombre base del complemento WooCommerce y la carpeta como mencioné y se ilustró usando la imagen de arriba.
El nombre base de un complemento es el nombre de archivo para un complemento de un solo archivo que es el archivo principal y, a veces, coincide con el directorio/carpeta, pero no en todos los casos: algunos complementos son diferentes.

Comprobar si el complemento está activo en multisitio

Para WordPress multisitio hay una función que está diseñada para ayudar a los desarrolladores a verificar si el complemento está activo en la red multisitio. La función es:

is_plugin_active_for_network( string $plugin )

Esta función funciona igual que la función is_plugin_active( string $plugin ) y se puede aplicar de la misma manera para determinar si el complemento está activo en la red multisitio de WordPress.

 <?php
función is_plugin_active_for_network ($ complemento) {
    si (! es_multisitio()) {
        falso retorno;
    }
 
    $complementos = get_site_option('active_sitewide_plugins');
    if ( isset ($ complementos [ $ complemento ] ) ) {
        devolver verdadero;
    }
 
    falso retorno;
}

Otras formas de verificar si el complemento está activo

Hay otras formas que puede emplear para verificar si un complemento está activo. Puede verificar usando las funciones nativas de php class_exists o function_exists. Estos métodos verifican si la clase del complemento o la función existe respectivamente.

Uso de function_exists() para verificar si el complemento está activo

Si conoce la función o el método de un complemento, puede verificar usando el método function_exists como en el fragmento a continuación:

 <?php
if( function_exists( 'plugin_function' ) ) {
// El complemento está activo
}

Usando class_exists() para verificar si el complemento está activo

Si conoce la clase principal de un complemento, puede verificar usando el método class_exists como en el fragmento a continuación:

 <?php
if( class_exists( 'plugin_class' ) ) {
// El complemento está activo
}

Puede enlazar cualquiera de estos métodos para verificar si el complemento está activo en el plugins_loaded como en el fragmento de código a continuación:

 <?php
/*
* Probar si un complemento está activo
*/

función njengah_is_plugin_name_active() {
if( class_exists( 'Plugin_Class' ) ) {

// Está activo así que haz la lógica aquí

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

Conclusión

En esta publicación, hemos resaltado las diversas formas de verificar si un complemento está activo cuando está desarrollando otro complemento o tema. Estos son métodos útiles que puede aplicar en todas sus tareas de desarrollo de WordPress.

Artículos similares