Я создал плагин и хочу добавить функцию для удаления моих таблиц из базы данных, когда пользователь удаляет мой плагин. Я создал функцию, которая удаляет таблицы из БД, когда пользователь отключает мой плагин, но я этого не хочу. Вот код:
// 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' );
Как вы можете видеть, эта функция удаляет таблицы, когда плагин деактивирован, но мне нужно сделать это, когда плагин удален.
Ответы:
Вы можете сделать это с помощью WordPress uninstall.php:
Этот файл uninstall.php вызывается при удалении вашего плагина.
источник
Введите код сюда:
источник
Вам нужно использовать
register_uninstall_hook
хук вместо того,register_deactivation_hook
чтобы удалять таблицы из базы данных.register_deactivation_hook
срабатывает, когда мы отключаем плагин, иregister_uninstall_hook
срабатывает, когда мы хотим, чтобыremove/delete
наш плагин.Пожалуйста, используйте этот код, если у вас есть только одна таблица:
Если у вас более двух таблиц, используйте этот код:
Ссылки Ссылки:
https://developer.wordpress.org/reference/functions/register_uninstall_hook/ https://developer.wordpress.org/plugins/plugin-basics/uninstall-methods/
источник
Если вы используете "WORDPRESS PLUGIN BOILERPLATE GENERATOR" wppb
перейти к включает в себя \ class -...- deactivator.php
и напишите следующий код (измените, пожалуйста, как вам нужно)
Спасибо
источник
Я знаю, что есть этот хук, который называется:
register_deactivation_hook
что вы можете использовать, когда плагин деактивирован. Взгляните на документацию и убедитесь, что это то, что вы ищете.Например:
источник
К сожалению, WordPress не предоставляет функциональности для этого. Он поддерживает только хук register_uninstall_hook. Этот хук вызывается, когда пользователь нажимает на ссылку удаления, которая требует, чтобы плагин удалил сам себя. Ссылка не будет активной, если плагин не подключится к действию. см. http://codex.wordpress.org/Function_Reference/register_uninstall_hook
и ловушка register_deactivation_hook. Большинство разработчиков плагинов добавляют флажок в таблицу настроек с использованием get_option, update_option. Когда эта опция отмечена, данные удаляются.
Таким образом, временная деактивация не сбрасывает таблицу параметров вашего плагина.
источник