register_uninstall_hook()

Функция register_uninstall_hook() используется при разработке плагинов, позволяет привязать какую-то произвольную функцию, срабатывающую при удалении плагина. Весь код плагина, подключенный не через хуки, будет также выполнен при удалении, возможно в такой ситуации лучше использовать uninstall.php.

Смотрите также:

register_uninstall_hook( $file, $function )
$file
Файл плагина, обычно переменная содержит константу __FILE__, если функция используется непосредственно в главном файле плагина, либо путь на сервере до него, например dirname( __FILE__ ) . '/my-plugin.php'
$function
Название функции в виде строки, например my_function, либо метода класса в виде массива, например array( 'My_Class', 'my_method' ) (или array( $this, 'my_method' ) при запуске из самого класса).

Функция ничего не возвращает.

uninstall.php

Тем не менее при выполнении каких-либо действий при удалении рекомендуется использовать файл uninstall.php, который также должен лежать непосредственно в папке с плагин. При его наличии функция register_uninstall_hook() будет игнорироваться.

Сам uninstall.php должен соответствовать следующему шаблону:

if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { // константа определена только в момент удаления плагина
	exit;
}
 
// делаем какие-то действия при удалении

Пример

Вставляем этот код в главный файл плагина:

register_uninstall_hook( __FILE__, 'truemisha_uninstall' );
 
function truemisha_uninstall(){
 
	// делаем что-либо при удалении плагина	
 
}

Чаще используется для подчищения опций после удаления плагина или даже целых таблиц в базе данных, которые он создал.

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.