Como verificar se o plugin está ativo no WordPress [3 MANEIRAS]

Publicados: 2020-08-08

verificar se um plugin está ativo no WordPress Como desenvolvedor do WordPress, uma das verificações mais comuns em seu código ao desenvolver um plug-in é o status da ativação do plug-in. Existem várias razões pelas quais você deve verificar se um plug-in está ativo. Para mencionar alguns, você pode verificar se um plug-in dependente está ativo ou um plug-in semelhante que faz a mesma coisa.

Em ambos os casos, você precisará adicionar a verificação no arquivo base do plug-in para verificar se o plug-in de destino está ativo. Um exemplo clássico quando você está desenvolvendo um plugin WooCommerce que estende as classes WooCommerce.

Por exemplo, quando você está desenvolvendo o plug-in do gateway de pagamento WooCommerce, você precisa verificar se o WooCommerce está ativo imediatamente após a ativação do plug-in ou, de preferência, durante o gancho de ativação do plug-in.

Verifique se um plugin do WordPress está ativo

Felizmente, o núcleo do WordPress tem um método ou função pronto para usar que verifica se um determinado plugin está ativo e retorna um verdadeiro ou falso.

is_plugin_active WordPress

Esta função retorna um boolean - true or false e você pode facilmente incorporá-lo em seu código, especialmente durante o gancho de ativação.

Se o plug-in que você está verificando não estiver ativo, você pode exibir um aviso de cabeçalho para o usuário instalar o plug-in.

Você também pode aplicar a mesma função quando quiser que o usuário desative outro plug-in que provavelmente entrará em conflito com a funcionalidade do seu plug-in.

Revisão rápida da função is_plugin_active()

Vejamos rapidamente a função is_plugin_active() para saber mais sobre como usá-la efetivamente em seu projeto.

is_plugin_active( string $plugin )

Esta função recebe um parâmetro de string que é a representação do caminho para o caminho relativo do plug-in no diretório de plug-ins.

 function is_plugin_active( $plugin) {
    return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network( $plugin);
}

Por exemplo, o caminho do WooCommerce é woocommerce/woocommerce.php , conforme mostrado no
imagem abaixo:
Caminho do arquivo base do WooCommerce

A função is_plugin_active() pode ser usada para verificar se o plugin está ativo no backend usando o seguinte trecho de código

 <?php
/**
* Detectar plug-in. Para uso apenas na área Admin.
*/
if ( is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
//plugin está ativado
}

Por exemplo, se você quiser verificar se o WooCommerce está ativo, você pode verificar usando o seguinte código:

 <?php
/**
* Verifique se o WooCommerce Plugin está ativo na área de administração
*/
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
//O plugin WooCommerce está ativado
}

Arquivo base de plug-in e diretório base

Como você pode ver, usei o nome de base do plug-in WooCommerce e a pasta como mencionei e ilustrada usando a imagem acima.
O nome base de um plug-in é o nome do arquivo de um único plug-in de arquivo que é o arquivo principal e às vezes corresponde ao diretório/pasta, mas não em todos os casos – alguns plug-ins são diferentes.

Verifique se o plug-in está ativo no multisite

Para WordPress multisite, existe uma função projetada para ajudar os desenvolvedores a verificar se o plug-in está ativo na rede multisite. A função é:

is_plugin_active_for_network( string $plugin )

Esta função funciona exatamente como a função is_plugin_active( string $plugin ) e pode ser aplicada da mesma forma para determinar se o plugin está ativo na rede multisite do WordPress.

 <?php
function is_plugin_active_for_network( $plugin) {
    if (! is_multisite()) {
        retorna falso;
    }
 
    $plugins = get_site_option('active_sitewide_plugins');
    if ( isset( $plugins[ $plugin])) {
        retorne verdadeiro;
    }
 
    retorna falso;
}

Outras maneiras de verificar se o plug-in está ativo

Existem outras maneiras que você pode empregar para verificar se um plugin está ativo. Você pode verificar usando as funções nativas do php class_exists ou function_exists. Esses métodos verificam se a classe do plugin ou a função existe respectivamente.

Usando function_exists() para verificar se o plug-in está ativo

Se você conhece a função ou método de um plugin você pode verificar usando o método function_exists como no trecho abaixo:

 <?php
if( function_exists( 'plugin_function' ) ) {
// Plugin está ativo
}

Usando class_exists() para verificar se o plugin está ativo

Se você conhece a classe principal de um plugin você pode verificar usando o método class_exists como no trecho abaixo:

 <?php
if( class_exists( 'plugin_class' ) ) {
// Plugin está ativo
}

Você pode conectar qualquer um desses métodos para verificar se o plug-in está ativo no gancho plugins_loaded como no trecho de código abaixo:

 <?php
/*
* Teste se um plugin está ativo
*/

function njengah_is_plugin_name_active() {
if( class_exists( 'Plugin_Class' ) ) {

// Está ativo, então faça a lógica aqui

}
}
add_action( 'plugins_loaded', 'njengah_is_plugin_name_active');

Conclusão

Neste post destacamos as várias maneiras de verificar se um plugin está ativo quando você está desenvolvendo outro plugin ou tema. Esses são métodos úteis que você pode aplicar em todas as suas tarefas de desenvolvimento do WordPress.

Artigos semelhantes