Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

Cuando hablamos de plugins instalados en una red WordPress multisitio, algunos plugins pueden ser activados para su uso por toda la red, mientras que otros sólo pueden ser activados en un único sitio específico.

Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

Plug-ins activados por red:

Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

El mismo plugin activado para un sitio específico:

Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

Entender cómo funciona no debería ser demasiado difícil, pero podemos encontrarnos con problemas cuando intentamos comprobar en código si un plugin está activado para toda la red o sólo para un sitio concreto.

Hay muchas formas diferentes de conseguirlo, cada una con sus propias características.

is_plugin_active_for_network() 

Si un plugin está activado para toda la red entonces esta función devolverá true (verdadero). Así, por ejemplo, si usamos esta función en el sitio 1 y nuestro plugin sólo está activado en el sitio 1 y no está configurado para ser activado en toda la red, entonces esta función devolverá false (falso).

if( is_plugin_active_for_network( 'woocommerce/woocommerce.php' ) ) {
// WooCommerce está activado para la red.
} else {
// WooCommerce no está activado para la red.
}

is_plugin_active() 

Esta función es útil porque realiza dos tareas:

  1. Comprobará si el plugin está activado sólo en el sitio que está utilizando actualmente.
  2. También comprueba si el plugin está configurado para estar activo en toda la red.

Devuelve true (verdadero) si se cumple al menos una de estas dos condiciones.

if( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
// WooCommerce está activado en este sitio específico o activado en red.
) { // WooCommerce está activado en este sitio específico o activado en red.

Tenga la seguridad de que esta función también es segura en entornos de red no multisitio.

Comprobar si el plugin está activo sólo en un sitio específico 

Dado que esta función no está disponible en el núcleo de WordPress, tengo el siguiente código personalizado para usted:

if( in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) {
}

Puede comprobar sitios específicos en una red multisitio, pero no olvide proporcionar la dirección $blog_id responder cantando $plugin Variables.

switch_to_blog( $blog_id ).
if( in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) {
}

restore_current_blog() ;

Comprueba en qué sitios está activo un plugin específico (en nuestro caso WooCommerce):

$sites = get_sites();
foreach( $sites as $site ) {
switch_to_blog( $site->blog_id );

if( in_array( 'woocommerce/woocommerce.php', (array) get_option( 'active_plugins', array() ) ) {
echo "WooCommerce está activo en {$site->blogname}";
}

restore_current_blog(); }

resúmenes

En resumen, tanto si utilizais_plugin_active()sin embargois_plugin_active_for_network()WordPress comprueba en ambos casos si los plugins están activados en las opciones del sitio:

Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

No se preocupe por el uso excesivo de la base de datos, ya que estas opciones se cargan automáticamente y si utiliza la opciónis_plugin_active()sólo lo comprobará desde una variable global.

Los valores de las opciones en la base de datos son en realidad una matriz serializada, como la siguiente:

Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio

Póngase en contacto con nosotros
¿No puede leer el artículo? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de pequeñas empresas
Teléfono: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Publicado por photon fluctuations, retweeted with attribution:https://www.361sale.com/es/6236/

Como (0)
Anterior Miércoles, 21 de marzo de 2024 a las 18:28.
Siguiente Martes, 22 de marzo de 2024, a las 13.57 horas.

Recomendado

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

020-2206-9892

QQ咨询:1025174874

Correo electrónico: info@361sale.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres

Servicio de atención al cliente WeChat
Para facilitar el registro y el inicio de sesión de los usuarios en todo el mundo, hemos anulado la función de inicio de sesión por teléfono. Si tiene problemas para iniciar sesión, póngase en contacto con nuestro servicio de atención al cliente para que le ayuden a vincular su dirección de correo electrónico.