Creé un complemento y quiero agregar una función para eliminar mis tablas de la base de datos cuando un usuario elimina mi complemento. Creé una función que elimina tablas de la base de datos cuando un usuario desactiva mi complemento, pero no quiero eso. Aquí está el 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 puede ver, esta función elimina tablas cuando el complemento está desactivado, pero necesito hacerlo cuando se elimina el complemento.
Respuestas:
Puedes hacer esto usando el soporte de WordPress uninstall.php:
Este archivo uninstall.php se llama cuando se elimina el complemento.
fuente
Ingresa el código aquí:
fuente
Debe usar
register_uninstall_hook
hook en lugar deregister_deactivation_hook
eliminar tablas de la base de datos.register_deactivation_hook
se activa cuando desactivamos un complemento y seregister_uninstall_hook
activa cuando queremosremove/delete
nuestro complemento.Utilice este código si solo tiene una tabla:
Si tiene más de dos tablas, entonces use este código:
Enlaces de referencia:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
fuente
Si está utilizando "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
ir a incluye \ class -...- deactivator.php
y escriba el siguiente código (modifíquelo según sus necesidades)
Gracias
fuente
Sé que hay un gancho llamado:
register_deactivation_hook
que puedes usar para hacer cosas cuando el complemento está desactivado. Eche un vistazo a la documentación y vea si es lo que está buscando.Por ejemplo:
fuente
Desafortunadamente, WordPress no expone la funcionalidad para hacer eso. Solo es compatible con el gancho register_uninstall_hook. Se llama a este enlace cuando el usuario hace clic en el enlace de desinstalación que solicita que el complemento se desinstale. El enlace no estará activo a menos que el complemento se enganche a la acción. ver http://codex.wordpress.org/Function_Reference/register_uninstall_hook
y el gancho register_deactivation_hook. Lo que hace la mayoría de los desarrolladores de complementos es agregar una casilla de verificación a la tabla de configuración con el uso de get_option, update_option. Cuando esta opción está marcada, los datos se eliminan.
De esta manera, la desactivación temporal no restablece la tabla de opciones de su complemento.
fuente