Tutoriales

Comprobar si un plugin está activado en WordPress

En WordPress 6.5 va a aparecer por primera vez una funcionalidad muy interesante para definir dependencias entre plugins. Es decir, si un plugin depende de otro podrás indicarlo de forma sencilla tal como describen en este artículo. Hasta ahora había alguna solución de terceros pero no eran estándares, eran pesadas y daban ciertos problemas por falta de mantenimiento.

Pero claro, que un plugin dependa de un tercero también implica que puede que llames a clases, a espacios de nombres o a funciones del otro plugin y si el otro plugin no está activado, aunque definas la dependencia, puedes crear errores en tu ejecución.

¿Cómo resolverlo? Pues aislando el funcionamiento de las partes «dependientes» y chequeando si el plugin está activo. Se puede hacer por dos medios diferentes.

Comprobar si una función, clase o espacio de nombre existe

Si WooCommerce está activado, la función is_woocommerce existirá así que puedes hacer algo así:

if( function_exists( 'is_woocommmerce' ) )

O para BuddyPress o BuddyBoss puede usar una función que sirve para ver si ciertos componentes a su vez de BuddyPress o BuddyBoss está activo:

if( function_exists( 'bp_is_active' ) )

Preguntarle a WordPress

Hay una función de WordPress llamada is_plugin_active que sirve justo para eso, por ejemplo:

if( is_plugin_active( 'redsys-gateway-for-woocommerce-pro/redsys-gateway-for-woocomme-pro.php' )

Como véis hay que pasar la ruta del plugin: directorio/fichero-principal-plugin.php. Pero esta función se define en wp-admin/includes/plugin.php y es más frecuente de lo que parece que este fichero no esté cargado en determinados momentos donde vayas a chequear si un plugin está activo.

¿Qué hacemos entonces? Puedes chequear si el plugin está activo creando tú una pequeña función para evitar cargar todo el fichero que te comentaba (algo mejoras el rendimiento al no hacer un include de algo tan grande para solo una función).

function chequear_plugin_activo( $plugin ){
    return in_array( $plugin, apply_filters( 'active_plugins', ( array ) get_option( 'active_plugins', array() ) ) ) ||  ( is_multisite() && array_key_exists( $plugin, ( array ) get_site_option( 'active_sitewide_plugins', array() ) ) );   
}

Además como verás esta función chequea también que el plugin esté activo a nivel de red, que no viene mal para entornos multi sitio.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Francisco Javier Carazo Gil

Entradas recientes

Checkout seguro: cobra sin perder conversiones

Configura un checkout seguro en WordPress y WooCommerce para proteger pagos, reducir errores de integración…

hace % días

Checkout seguro: cobra sin perder conversiones

Configura un checkout seguro en WordPress y WooCommerce para proteger pagos, reducir errores de integración…

hace % días

¿Qué aporta la integración de Bizum y métodos similares en el proceso de pago?

El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Desarrollo de plugins a medida WordPress

El desarrollo de plugins a medida WordPress resuelve pagos, reservas y flujos propios con integración…

hace % días