Регистрация Хука Деактивации Плагина в WordPress
Функция register_deactivation_hook() позволяет задать действие, которое будет выполнено при деактивации плагина. Это полезно, если вам нужно выполнять какие-то завершающие действия, например, освобождать ресурсы или удалять временные данные.
Как работает
Когда плагин деактивируется, вызывается специальный хук с названием deactivate_PLUGINNAME. В этой строке PLUGINNAME заменяется на имя вашего плагина, включая путь, если он находится в подпапке. Например, если ваш плагин расположен по адресу wp-content/plugins/sampleplugin/sample.php, то название хука будет deactivate_sampleplugin/sample.php.
Если плагин состоит только из одного файла и находится по пути wp-content/plugins/sample.php, то имя хука будет простым: deactivate_sample.php.
Возвращаемое значение
Эта функция не возвращает ничего (null).
Использование
Для регистрации хука деактивации, используйте следующий синтаксис:
register_deactivation_hook( $file, $callback );
$file(строка, обязательный параметр): имя файла плагина с указанием пути.$callback(функция): функция, которая будет вызвана при деактивации плагина.
Примеры
Пример 1: Запуск функции при деактивации плагина
Предположим, вы хотите запустить функцию myplugin_deactivate() при деактивации плагина, и она находится в основном файле плагина:
register_deactivation_hook( __FILE__, 'myplugin_deactivate' );
function myplugin_deactivate() {
// Здесь вы можете выполнить необходимые действия при деактивации плагина.
}
В этом примере функция myplugin_deactivate() будет вызвана, когда плагин будет деактивирован.
Пример 2: Обычные функции (не классы)
Этот пример демонстрирует, как вызвать функции активации/деактивации/удаления в файле плагина:
Пример 3: Использование классов
Если плагин написан в виде класса, регистрации функций выглядят так:
Примечание о неймспейсах
Если в вашем основном файле плагина используется неймспейс, убедитесь, что вы используете ключевое слово __NAMESPACE__ при регистрации хука:
register_deactivation_hook( __FILE__, __NAMESPACE__ . 'deactivate_plugin' );
Это необходимо для того, чтобы WordPress правильно распознал вашу функцию.
Заключение
Функция register_deactivation_hook() — это мощный инструмент для разработчиков WordPress, который позволяет выполнять действия пр�� деактивации плагина. Важно правильно зарегистрировать этот хук, чтобы ваш код выполнялся в нужный момент.