Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

Quando falamos de plugins instalados numa rede WordPress multisite, alguns plugins podem ser activados para utilização por toda a rede, enquanto outros só podem ser activados num único site específico.

Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

Plug-ins activados pela rede:

Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

O mesmo plugin ativado para um site específico:

Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

Compreender como funciona não deve ser muito difícil, mas podemos ter problemas quando tentamos verificar no código se um plugin está ativado para toda a rede ou apenas para um site específico.

Existem muitas formas diferentes de o conseguir, cada uma com as suas caraterísticas próprias.

is_plugin_active_for_network() 

Se um plugin estiver ativado para toda a rede, esta função devolverá true (verdadeiro). Assim, por exemplo, se utilizarmos esta função no sítio 1 e o nosso plugin só estiver ativado no sítio 1 e não estiver definido para ser ativado em toda a rede, então esta função devolverá false (falso).

if( is_plugin_active_for_network( 'woocommerce/woocommerce.php' ) {
// O WooCommerce está ativado para a rede.
} else {
// O WooCommerce não está ativado na rede.
}

is_plugin_active() 

Esta função é útil porque desempenha duas funções:

  1. Verificará se o plugin está ativado apenas no sítio que está a utilizar atualmente.
  2. Também verifica se o plugin está definido para estar ativo em toda a rede.

Devolve true (verdadeiro) se pelo menos uma destas duas condições for válida.

if( is_plugin_active( 'woocommerce/woocommerce.php' ) {
// O WooCommerce está ativado neste sítio específico ou está ativado na rede.
) { // O WooCommerce está ativado neste sítio específico ou está ativado na rede.

Pode ter a certeza de que esta funcionalidade também é segura em ambientes de rede sem múltiplos sites.

Verifique se o plugin está ativo apenas num site específico 

Uma vez que esta funcionalidade não está disponível no núcleo do WordPress, tenho o seguinte código personalizado para si:

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

Pode verificar sites específicos numa rede multisite, mas não se esqueça de fornecer o $blog_id responder com cânticos $plugin Variáveis.

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

restore_current_blog() ;

Verifique em que sítios um determinado plugin (no nosso caso, o WooCommerce) está ativo:

$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á ativo em {$site->blogname}";
}

restore_current_blog(); }

resumos

Em suma, quer utilizeis_plugin_active()no entantois_plugin_active_for_network()Em ambos os casos, o WordPress verifica se os plug-ins estão activados nas opções do site:

Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

Não se preocupe com a utilização excessiva da base de dados, uma vez que estas opções são carregadas automaticamente e se utilizar a opçãois_plugin_active()só irá verificar a partir de uma variável global.

Os valores das opções na base de dados são, na verdade, uma matriz serializada, como a seguinte:

Guia para verificar o estado de ativação do plug-in do WordPress em redes multisite

Contactar-nos
Não consegue ler o artigo? Contacte-nos para obter uma resposta gratuita! Ajuda gratuita para sítios pessoais e de pequenas empresas!
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correio eletrónico: info@361sale.com
Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados
Publicado por photon fluctuations, retweetado com atribuição:https://www.361sale.com/pt/6236/

Como (0)
Anterior Quarta-feira, 21 de março de 2024 às 6:28 p.m.
Seguinte Terça-feira, 22 de março de 2024, 13:57h.

Recomendado

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Contactar-nos

020-2206-9892

QQ咨询:1025174874

Correio eletrónico: info@361sale.com

Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados

Serviço ao cliente WeChat
Para facilitar o registo e o início de sessão de utilizadores globais, cancelámos a função de início de sessão por telefone. Se tiver problemas de início de sessão, contacte o serviço de apoio ao cliente para obter assistência na ligação do seu endereço de correio eletrónico.