¿Cómo verificar si un plugin está activo? ¿Cómo comprobar si un plugin está habilitado o no?
Estoy usando el plugin mingle y el plugin mingle-forum.
Quiero mostrar una cierta parte en mi sitio solo si esos dos plugins están activos. ¿Cómo puedo resolver esto?
<?php if ( is_plugin_active('mingle-forum') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Esto genera un error de PHP: Call to undefined function is_plugin_active
¿Alguna idea de qué estoy haciendo mal?
actualización:
<?php if ( plugin_active('plugin-directory/mingle-forum/wpf-main.php') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Esta función existe en wp-admin/includes/plugin.php
, así que asumo que no está incluida por el tema.
Puedes hacer un require
del archivo, o crear tu propia versión de la función - mira aquí: http://wordpress.org/support/topic/is_plugin_active
ACTUALIZADO:
Por favor revisa is_plugin_active

gracias, podría haber encontrado una solución pero aún no logro que funcione. La función plugin_active está definida en mi archivo functions.php y no arroja un error. Sin embargo, mi div.login NUNCA aparece, no importa si el plugin está activo o no. ¿Tal vez estoy verificando la ruta incorrecta? ¿Alguna idea de lo que podría estar haciendo mal aquí?

encontré la solución. "plugin-directory" por supuesto tiene que ser el nombre del directorio donde se encuentra el archivo real del plugin. Pensé que "plugin-directory" era la ruta al directorio donde están todos los archivos del plugin.

Hay dos formas de verificar si un plugin está activo o no.
- Puedes usar la función is_plugin_active para verificar si el plugin está activo o no.
Si el plugin tiene una clase, puedes verificarlo de la siguiente manera:
if (class_exists('YITH_Woocompare_Frontend')) { echo 'tu código'; }
La clase mencionada anteriormente pertenece al plugin YITH WooCommerce Compare. El código anterior verifica si la clase existe y solo entonces ejecutará el código dentro de los corchetes.

También puedes intentar verificar si el plugin está activo o no
$pluginList = get_option( 'active_plugins' );
$plugin = 'PLUGIN_DIR/FILE_NAME.php';
if ( in_array( $plugin , $pluginList ) ) {
// El plugin 'mg-post-contributors' está activo
}
También prueba el siguiente código para mayor simplicidad
if ( is_plugin_active( 'PLUGIN_DIR/FILE_NAME.php' ) ) {
//el plugin está activado
}

Puedes simplemente usar la función predeterminada de WordPress. Esta función existe en wp-admin/includes/plugin.php
.
Simplemente pasa la ruta al archivo del plugin relativa al directorio de plugins.
$pluginPath = 'akismet/akismet.php';
if ( is_plugin_active( $pluginPath ) ) {
echo 'El plugin está activado';
} else {
echo 'El plugin no está activado';
}
Para más detalles sobre is_plugin_active
por favor consulta el siguiente enlace:
https://developer.wordpress.org/reference/functions/is_plugin_active/
