Eu criei um plug-in e quero adicionar uma função para excluir minhas tabelas do banco de dados quando um usuário excluir meu plug-in. Criei uma função que exclui tabelas do banco de dados quando um usuário desativa meu plug-in, mas não quero isso. Aqui está o código:
// Delete table when deactivate
function my_plugin_remove_database() {
global $wpdb;
$table_name = "NestoNovo";
$sql = "DROP TABLE IF EXISTS $table_name;";
$wpdb->query($sql);
delete_option("my_plugin_db_version");
}
register_deactivation_hook( __FILE__, 'my_plugin_remove_database' );
Como você pode ver, essa função exclui tabelas quando o plug-in está desativado, mas preciso fazer isso quando o plug-in é excluído.
Respostas:
Você pode fazer isso usando o suporte do WordPress uninstall.php:
Este arquivo uninstall.php é chamado quando seu plugin é excluído.
fonte
Entre com o código aqui:
fonte
Você precisa usar
register_uninstall_hook
hook em vez deregister_deactivation_hook
excluir tabelas do banco de dados.register_deactivation_hook
é acionado quando desativamos um plug-in e éregister_uninstall_hook
acionado quando queremosremove/delete
nosso plug-in.Por favor, use este código se você tiver apenas uma tabela:
Se você tiver mais de duas tabelas, use este código:
Links de referência:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
fonte
Se você estiver usando "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
vá para includes \ class -...- deactivator.php
e escreva o código a seguir (modifique-o conforme suas necessidades)
obrigado
fonte
Eu sei que existe esse gancho chamado:
register_deactivation_hook
que você pode usar para fazer coisas quando o plug-in está desativado. Dê uma olhada na documentação e veja se é o que você está procurando.Por exemplo:
fonte
Infelizmente, o WordPress não expõe a funcionalidade para fazer isso. Ele suporta apenas o gancho register_uninstall_hook. Esse gancho é chamado quando o usuário clica no link de desinstalação que solicita a desinstalação do plug-in. O link não estará ativo a menos que o plug-in seja conectado à ação. consulte http://codex.wordpress.org/Function_Reference/register_uninstall_hook
e o gancho register_deactivation_hook. O que a maioria dos desenvolvedores de plug-ins faz é adicionar uma caixa de seleção à tabela de configuração com o uso de get_option, update_option. Quando esta opção está marcada, os dados são removidos.
Dessa forma, a desativação temporária não redefine a tabela de opções do seu plugin.
fonte