Controle de ativação de uma extensão WooCommerce
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:
- Defina uma classe que inicie quando o plugin for iniciado,
- Verifique se o WooCommerce está ativo,
- Se sim, carregue todas as outras dependências,
- 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.
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 :
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:
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:
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ê:
- O WordPress funcionará através da lista de plugins que precisa ativar.
- 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.