J'ai créé un plugin et je veux ajouter une fonction pour supprimer mes tables de la base de données lorsqu'un utilisateur supprime mon plugin. J'ai créé une fonction qui supprime les tables de la base de données lorsqu'un utilisateur désactive mon plugin, mais je ne le veux pas. Voici le code:
// 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' );
Comme vous pouvez le voir, cette fonction supprime les tables lorsque le plugin est désactivé, mais je dois le faire lorsque le plugin est supprimé.
Réponses:
Vous pouvez le faire en utilisant le support WordPress uninstall.php:
Ce fichier uninstall.php est appelé lorsque votre plugin est supprimé.
la source
Entrez le code ici:
la source
Vous devez utiliser le
register_uninstall_hook
hook au lieu deregister_deactivation_hook
supprimer les tables de la base de données.register_deactivation_hook
se déclenche lorsque nous désactivons un plugin et seregister_uninstall_hook
déclenche lorsque nous voulonsremove/delete
notre plugin.Veuillez utiliser ce code si vous n'avez qu'une seule table:
Si vous avez plus de deux tables, vous utilisez ce code:
Liens de référence:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
la source
Si vous utilisez "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
allez dans includes \ class -...- deactivator.php
et écrivez le code suivant (modifiez svp selon vos besoins)
Merci
la source
Je sais qu'il y a ce crochet appelé:
register_deactivation_hook
que vous pouvez utiliser pour faire des choses lorsque le plugin est désactivé. Jetez un œil à la documentation et voyez si c'est ce que vous recherchez.Par exemple:
la source
Malheureusement, WordPress n'expose pas de fonctionnalité pour le faire. Il prend uniquement en charge le crochet register_uninstall_hook. Ce hook est appelé lorsque l'utilisateur clique sur le lien de désinstallation qui appelle le plugin à se désinstaller. Le lien ne sera actif que si le plugin se connecte à l'action. voir http://codex.wordpress.org/Function_Reference/register_uninstall_hook
et le crochet register_deactivation_hook. Ce que la plupart des développeurs de plugins font est d'ajouter une case à cocher à la table de configuration en utilisant get_option, update_option. Lorsque cette option est cochée, les données sont supprimées.
De cette façon, la désactivation temporaire ne réinitialise pas la table des options de votre plugin.
la source