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

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

Imagen [1] - Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio - Photonwave.com | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida

Plug-ins activados por red:

Imagen [2] - Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio - Photonwave.com | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida

El mismo plugin activado para un sitio específico:

Imagen [3] - Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio - Photonwave.com | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida

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()no obstanteis_plugin_active_for_network()WordPress comprueba en ambos casos si los plugins están activados en las opciones del sitio:

Imagen [4] - Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio - Photonwave.com | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida

No se preocupe por el uso excesivo de la base de datos, ya que estas opciones se cargarán 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:

Imagen [5] - Guía para comprobar el estado de activación de plugins de WordPress en redes multisitio - Photonwave.com | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida

Contacte con nosotros
?No puede leer el tutorial? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de peque?as empresas
Servicio de atención al cliente WeChat
Servicio de atención al cliente WeChat
Tel: 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
? Declaración de reproducción
Este artículo fue escrito por Harry
EL FIN
Si le gusta, apóyela.
felicitaciones0 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios