Методи за деинсталиране
Вашият плъгин може да се нуждае от прочистване, когато се деинсталира от даден сайт. А плъгин се счита за деактивиран, ако даден потребител е деактивирал приставката, и след това се кликне върху връзката Изтриване.
Когато един плъгин е деинсталиран, вие ще искате да изчистите всичко за презапис добавените от плъгина настройки, специфични за плъгина, или други стойности като бази данни, които трябва да бъдат отстранени. По-малко опитни потребители понякога правят грешката при използване на куката деактивиране за тази цел.
Този таблица илюстрира разликите между деактивиране и деинсталиране.
Scenario | Deactivation Hook | Uninstall Hook |
---|---|---|
Remove option from wp_options | No | Yes |
Flush Cache | Yes | No |
Вместо да използвате куката деактивиране, трябва да направите едно от следните неща:
използвайте register_uninstall_hook() function
или създайте uninstall.php файл в главната папка на вашия плъгин
Ето един пример за използване на uninstall.php.
При използване на uninstall.php, приставката трябва винаги да се проверява за константата WP_UNINSTALL_PLUGIN преди изпълнение. Константата на WP_UNINSTALL_PLUGIN се определя от WordPress по време на изпълнение по време на деинсталиране, то няма да присъства, ако uninstall.php се иска директно. Той също така няма да присъства, когато се използва техниката за деинсталиране кука. WP_UNINSTALL_PLUGIN се определя само когато uninstall.php файл се намира в папката плъгин.
Ето един пример за премахване на записи в базата данни.
// If uninstall is not called from WordPress, exit
if
( !defined(
'WP_UNINSTALL_PLUGIN'
) ) {
exit
();
}
$option_name
=
'plugin_option_name'
;
delete_option(
$option_name
);
// For site options in Multisite
delete_site_option(
$option_name
);
// Drop a custom db table
global
$wpdb
;
$wpdb
->query(
"DROP TABLE IF EXISTS {$wpdb->prefix}mytable"
);