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

¿Por qué falla Bizum en WooCommerce? 9 causas

Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…

hace % días

Plugin gratuito Redsys WordPress: qué revisar

Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…

hace % días

Qué necesito para activar CECA Online en mi web

¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…

hace % días

Cómo elegir una pasarela para suscripciones

Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…

hace % días

Plugin Bizum WordPress para cobrar con control

Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…

hace % días

Cómo aceptar CECA en reservas de WordPress

Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…

hace % días