Supprimer les tables de la base de données lors de la suppression du plugin
-
-
Avez-vousessayé [register_uninstall_hook] (http://codex.wordpress.org/Function_Reference/register_uninstall_hook)?Have you tried [register_uninstall_hook](http://codex.wordpress.org/Function_Reference/register_uninstall_hook)?
- 0
- 2014-11-21
- Andrew Bartel
-
Mercipour la réponse .. oui ..j'essaye ça .. rienne s'estpassé ..:/Thank you for answer.. yes.. i try that.. nothing happend.. :/
- 0
- 2014-11-21
- svukovic
-
6 réponses
- votes
-
- 2014-12-20
Vouspouvez lefaireen utilisant le support WordPress uninstall.php:
<?php if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); global $wpdb; $wpdb->query( "DROP TABLE IF EXISTS NestoNovo" ); delete_option("my_plugin_db_version"); ?>
Cefichier uninstall.phpest appelé lorsque votrepluginest supprimé.
You could do this using the WordPress uninstall.php support:
<?php if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); global $wpdb; $wpdb->query( "DROP TABLE IF EXISTS NestoNovo" ); delete_option("my_plugin_db_version"); ?>
This uninstall.php file is called when your plugin is deleted.
-
- 2017-04-05
Entrez le codeici:
register_deactivation_hook( __FILE__, 'my_plugin_remove_database' ); function my_plugin_remove_database() { global $wpdb; $table_name = $wpdb->prefix . 'NestoNovo'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); delete_option("my_plugin_db_version"); }
Enter code here:
register_deactivation_hook( __FILE__, 'my_plugin_remove_database' ); function my_plugin_remove_database() { global $wpdb; $table_name = $wpdb->prefix . 'NestoNovo'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); delete_option("my_plugin_db_version"); }
-
- 2019-03-25
Vous devez utiliser le hook
register_uninstall_hook
au lieu deregister_deactivation_hook
pour supprimer destables de labase de données.register_deactivation_hook
se déclenche lorsquenous désactivons unpluginetregister_uninstall_hook
se déclenche lorsquenous voulonsremove/delete
notreplugin.Veuillez utiliser ce code si vousn'avez qu'une seuletable:
function delete_plugin_database_table(){ global $wpdb; $table_name = $wpdb->prefix . 'table_name'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); } register_uninstall_hook(__FILE__, 'delete_plugin_database_table');
Si vous avezplus de deuxtableaux,vous utilisez ce code:
function delete_plugin_database_tables(){ global $wpdb; $tableArray = [ $wpdb->prefix . "table_name1", $wpdb->prefix . "table_name2", $wpdb->prefix . "table_name3", $wpdb->prefix . "table_name4", ]; foreach ($tableArray as $tablename) { $wpdb->query("DROP TABLE IF EXISTS $tablename"); } } register_uninstall_hook(__FILE__, 'delete_plugin_database_tables');
Liens de référence:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall -méthodes/
You need to use
register_uninstall_hook
hook instead ofregister_deactivation_hook
to delete tables from the database.register_deactivation_hook
fires when we deactivate a plugin andregister_uninstall_hook
fires when we want toremove/delete
our plugin.Please use this code if you have only one table:
function delete_plugin_database_table(){ global $wpdb; $table_name = $wpdb->prefix . 'table_name'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); } register_uninstall_hook(__FILE__, 'delete_plugin_database_table');
If you have more than two tables then you use this code:
function delete_plugin_database_tables(){ global $wpdb; $tableArray = [ $wpdb->prefix . "table_name1", $wpdb->prefix . "table_name2", $wpdb->prefix . "table_name3", $wpdb->prefix . "table_name4", ]; foreach ($tableArray as $tablename) { $wpdb->query("DROP TABLE IF EXISTS $tablename"); } } register_uninstall_hook(__FILE__, 'delete_plugin_database_tables');
Reference Links:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
-
Merci sauvemajournée :)Thanks save my day :)
- 0
- 2020-03-24
- Arman H
-
- 2020-03-24
Si vous utilisez "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
aller àincludes \ class -...- deactivator.php
et écrivez le code suivant (modifiez s'il vousplaît selon vosbesoins)
global $wpdb; $tableArray = [ $wpdb->prefix . "table1", $wpdb->prefix . "table2", ]; foreach($tableArray as $table){ $wpdb->query("DROP TABLE IF EXISTS $table"); }
Merci
If you are using "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
go to includes\class-...-deactivator.php
and write the following code ( modify please as your needs)
global $wpdb; $tableArray = [ $wpdb->prefix . "table1", $wpdb->prefix . "table2", ]; foreach($tableArray as $table){ $wpdb->query("DROP TABLE IF EXISTS $table"); }
Thanks
-
- 2016-09-19
Je sais qu'ilexiste ce hook appelé:
register_deactivation_hook
que vouspeut utiliserpourfaire des choses lorsque lepluginest désactivé. Jetez un œil à la documentationet voyez si c'est ce que vous recherchez.Parexemple:
**register_deactivation_hook**(__FILE__, 'sm_deactivation'); function myplugin_deactivation(){ /* Stuff */}
I know that there's this hook called:
register_deactivation_hook
that you can use to do stuff when the plugin is deactivated. Take a look at the documentation and see if it is what you're looking for.For instance:
**register_deactivation_hook**(__FILE__, 'sm_deactivation'); function myplugin_deactivation(){ /* Stuff */}
-
- 2014-11-22
Malheureusement,WordPressn'exposepas defonctionnalitéspourfaire cela.Ilprend uniquementen charge le hook register_uninstall_hook.Ce hookest appelé lorsque l'utilisateur clique sur le lien de désinstallation qui appelle leplugin à se désinstaller.Le lienne sera actif que si leplugin se connecte à l'action. voir http://codex.wordpress.org/Function_Reference/register_uninstall_hook
et le hook register_deactivation_hook.Laplupart des développeurs deplugins ajoutent une case à cocher à latable de configuration avec l'utilisation deget_option,update_option.Lorsque cette optionest cochée,les données sont supprimées.
De cettefaçon,la désactivationtemporairene réinitialisepas latable d'options de votreplugin.
Unfortunately, WordPress does not expose functionality to do that. It only supports the register_uninstall_hook hook. This hook is called when the user clicks on the uninstall link that calls for the plugin to uninstall itself. The link won't be active unless the plugin hooks into the action. see http://codex.wordpress.org/Function_Reference/register_uninstall_hook
and the register_deactivation_hook hook. What most plugin developer do is add an checkbox to the setting table with the use of get_option, update_option. When this option is checked, the data is removed.
This way, temporary deactivation does not reset the option table of your plugin.
J'ai créé unpluginet je souhaite ajouter unefonctionpour supprimermestables de labase de données lorsqu'un utilisateur supprimemonplugin.J'ai créé unefonction qui supprime lestables de labase de données lorsqu'un utilisateur désactivemonplugin,maisje ne veuxpas de ça.Voici le code:
Comme vouspouvez le voir,cettefonction supprime lestables lorsque lepluginest désactivé,maisje dois lefaire lorsque lepluginest supprimé.