✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Controle de ativação de uma extensão WooCommerce

23

Ao criar uma extensão WooCommerce, é importante considerar que quando a extensão é ativada, o usuário pode não ter o WooCommerce instalado ou ativo.

E embora uma extensão possa ser ativada, ela não fará nada. Isso pode, em última análise, fornecer um nível de confusão para o usuário.

Em casos como esse, acho importante garantir que uma extensão só possa ser ativada se o plug-in principal estiver instalado e ativo.

Ativando uma extensão WooCommerce

Embora algumas extensões para WooCommerce sejam semelhantes a outras, a implementação de uma para outra pode variar. Ou seja, a maneira como uma extensão é escrita pode usar um paradigma totalmente diferente da outra.

Seja qual for o caso, se você optar por fazer algo assim, aqui está algo a considerar:

  1. Defina uma classe que inicie quando o plugin for iniciado,
  2. Verifique se o WooCommerce está ativo,
  3. Se sim, carregue todas as outras dependências,
  4. Caso contrário, desative automaticamente o plug-in.

Parece muito trabalho, mas não é tanto código. Você também pode considerar adicionar um aviso de plug-in personalizado quando a ativação for negada, mas abordarei como fazer isso em uma postagem futura.

1 Defina uma classe

Geralmente, acho uma boa ideia ter uma função para iniciar e parar o plugin. Se o WooCommerce estiver ativo, você poderá iniciar a extensão inteira; caso contrário, temos que interromper sua ativação.

Para fazer isso, podemos conectar no gancho admin_init para cada uma das funções.

<?php

class Extension_For_WooCommerce {

    public function init() {

        add_action( 'admin_init', array( $this, 'start') );
        add_action( 'admin_init', array( $this, 'stop') );
    }
}

Quando o plug-in é iniciado a partir do administrador do WordPress, a função init precisará ser chamada programaticamente a partir da função de entrada do plug-in principal.

2 Verifique se o WooCommerce está ativo

Antes de implementar qualquer função, porém, precisamos verificar se o plugin WooCommerce está ativo. Geralmente é seguro assumir que o WooCommerce está localizado em um diretório fixo, que é o que este código faz :

<?php

private function woocommerce_is_active() {
    return is_plugin_active( 'woocommerce/woocommerce.php' );
}

No entanto, se o WooCommerce estiver localizado em outro lugar, talvez seja necessário fazer outras verificações até encontrá-lo.

3 Carregar as Dependências

Na função de início, se o WooCommerce estiver ativo, podemos carregar o restante dos componentes do plug-in:

<?php

public function start() {

    if (! $this->woocommerce_is_active()) {
        return;
    }

    // Load dependencies.
}

Mas o WooCommerce pode não estar ativo.

4 Ou Parar Ativação

E se o WooCommerce não estiver ativo, precisamos interromper a ativação deste plugin:

<?php

public function stop() {

    if (! $this->woocommerce_is_active()) {

        deactivate_plugins( plugin_basename( __FILE__) );
        unset( $_GET['activate'] ); // Input var okay.
    }
}

Observe que mesmo que você faça a ativação em massa do plugin deste código, este código pode não funcionar. Aqui está o porquê:

  1. O WordPress funcionará através da lista de plugins que precisa ativar.
  2. Se o WooCommerce não tiver sido ativado antes da extensão, a extensão não será ativada.

Portanto, outra maneira de abordar isso seria ativar o WooCommerce, se ainda não estiver ativo.

Mensagens personalizadas

Como mencionado anteriormente, acho que é uma boa ideia fornecer algum tipo de aviso de administração quando a ativação do plug-in for negada, mas isso está além do escopo deste tutorial.

Seja qual for o caso, o código acima fornece uma maneira de controlar potencialmente a ativação de uma extensão WooCommerce.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação