Saya membuat plugin dan ingin menambahkan fungsi untuk menghapus tabel saya dari database ketika pengguna menghapus plugin saya. Saya membuat fungsi yang menghapus tabel dari DB ketika pengguna menonaktifkan plugin saya, tetapi saya tidak menginginkannya. Ini kodenya:
// 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' );
Seperti yang Anda lihat, fungsi ini menghapus tabel ketika plugin dinonaktifkan, tetapi saya perlu melakukan itu ketika plugin dihapus.
Jawaban:
Anda dapat melakukan ini menggunakan dukungan uninstall.php WordPress:
File uninstall.php ini dipanggil saat plugin Anda dihapus.
sumber
Masukkan kode di sini:
sumber
Anda perlu menggunakan
register_uninstall_hook
hook alih-alihregister_deactivation_hook
menghapus tabel dari database.register_deactivation_hook
kebakaran ketika kita menonaktifkan sebuah plugin danregister_uninstall_hook
memecat ketika kita inginremove/delete
plugin kita.Silakan gunakan kode ini jika Anda hanya memiliki satu tabel:
Jika Anda memiliki lebih dari dua tabel maka Anda menggunakan kode ini:
Tautan Referensi:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
sumber
Jika Anda menggunakan "GENERATOR BOILERPLATE PLUGIN WORDPRESS PLUG" wppb
masuk ke include \ class -...- deactivator.php
dan tulis kode berikut (ubahlah sesuai kebutuhan Anda)
Terima kasih
sumber
Saya tahu ada kait yang disebut ini:
register_deactivation_hook
yang dapat Anda gunakan untuk melakukan hal-hal ketika plugin dinonaktifkan. Lihatlah dokumentasi dan lihat apakah itu yang Anda cari.Contohnya:
sumber
Sayangnya, WordPress tidak mengekspos fungsionalitas untuk melakukan itu. Ini hanya mendukung hook register_uninstall_hook. Hook ini dipanggil saat pengguna mengklik tautan uninstall yang meminta plugin untuk menghapus instalannya sendiri. Tautan tidak akan aktif kecuali plugin terhubung ke tindakan. lihat http://codex.wordpress.org/Function_Reference/register_uninstall_hook
dan kait register_deactivation_hook. Apa yang dilakukan sebagian besar pengembang plugin adalah menambahkan kotak centang ke tabel pengaturan dengan menggunakan get_option, update_option. Ketika opsi ini dicentang, data dihapus.
Dengan cara ini, penonaktifan sementara tidak menyetel ulang tabel opsi plugin Anda.
sumber