Ich habe ein Plugin erstellt und möchte eine Funktion zum Löschen meiner Tabellen aus der Datenbank hinzufügen, wenn ein Benutzer mein Plugin löscht. Ich habe eine Funktion erstellt, die Tabellen aus der Datenbank löscht, wenn ein Benutzer mein Plugin deaktiviert, aber das möchte ich nicht. Hier ist der 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' );
Wie Sie sehen können, löscht diese Funktion Tabellen, wenn das Plugin deaktiviert ist, aber ich muss dies tun, wenn das Plugin gelöscht wird.
Antworten:
Sie können dies mit der Unterstützung von WordPress uninstall.php tun:
Diese uninstall.php-Datei wird aufgerufen, wenn Ihr Plugin gelöscht wird.
quelle
Code hier eingeben:
quelle
Sie müssen
register_uninstall_hook
Hook verwenden, anstattregister_deactivation_hook
Tabellen aus der Datenbank zu löschen.register_deactivation_hook
wird ausgelöst, wenn wir ein Plugin deaktivieren, und wirdregister_uninstall_hook
ausgelöst, wenn wirremove/delete
unser Plugin verwenden möchten .Bitte verwenden Sie diesen Code, wenn Sie nur eine Tabelle haben:
Wenn Sie mehr als zwei Tabellen haben, verwenden Sie diesen Code:
Referenzlinks:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
quelle
Wenn Sie "WORDPRESS PLUGIN BOILERPLATE GENERATOR" verwenden, wppb
Gehe zu Includes \ class -...- deactivator.php
und schreiben Sie den folgenden Code (ändern Sie ihn bitte nach Ihren Wünschen)
Vielen Dank
quelle
Ich weiß, dass es diesen Hook gibt
register_deactivation_hook
, mit dem Sie Dinge erledigen können, wenn das Plugin deaktiviert ist. Schauen Sie sich die Dokumentation an und prüfen Sie, ob es das ist, wonach Sie suchen.Zum Beispiel:
quelle
Leider stellt WordPress dafür keine Funktionen zur Verfügung. Es wird nur der Hook register_uninstall_hook unterstützt. Dieser Hook wird aufgerufen, wenn der Benutzer auf den Deinstallationslink klickt, der das Plugin auffordert, sich selbst zu deinstallieren. Der Link ist nur aktiv, wenn sich das Plugin in die Aktion einhakt. Siehe http://codex.wordpress.org/Function_Reference/register_uninstall_hook
und der Haken register_deactivation_hook. Was die meisten Plugin-Entwickler tun, ist das Hinzufügen eines Kontrollkästchens zur Einstellungstabelle unter Verwendung von get_option, update_option. Wenn diese Option aktiviert ist, werden die Daten entfernt.
Auf diese Weise wird durch die vorübergehende Deaktivierung die Optionstabelle Ihres Plugins nicht zurückgesetzt.
quelle