register_uninstall_hook()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
register_uninstall_hook( string $file, callable $callback )
Описание
Регистрирует хук удаления, который будет вызван, когда пользователь нажмёт ссылку удаления, предписывающую плагину удалить самого себя. Ссылка не будет активной, пока плагин не привяжется к этому действию.
При регистрации хука удаления плагин не должен выполнять произвольный код вне функций. Чтобы запуститься через хук, плагин будет подключён, а значит, любой код, находящийся вне функций, выполнится в процессе удаления. Плагин не должен мешать процессу удаления.
Если плагин невозможно написать без выполнения кода внутри него, то плагин должен создать файл с именем «uninstall.php» в своей базовой папке. Этот файл, если он существует, будет вызван в процессе удаления в обход хука удаления. Используя «uninstall.php», плагин всегда должен проверять наличие константы «WP_UNINSTALL_PLUGIN» перед выполнением.
Оригинал (английский)
Registers the uninstall hook that will be called when the user clicks on the uninstall link that calls for the plugin to uninstall itself. The link won’t be active unless the plugin hooks into the action.
The plugin should not run arbitrary code outside of functions, when registering the uninstall hook. In order to run using the hook, the plugin will have to be included, which means that any code laying outside of a function will be run during the uninstallation process. The plugin should not hinder the uninstallation process.
If the plugin can not be written without running code within the plugin, then the plugin should create a file named ‘uninstall.php’ in the base plugin folder. This file will be called, if it exists, during the uninstallation process bypassing the uninstall hook. The plugin, when using the ‘uninstall.php’ should always check for the ‘WP_UNINSTALL_PLUGIN’ constant, before executing.
Параметры
$file
string
обязательный
$callback
callable
обязательный
Исходный код
wp-includes/plugin.php:933
function register_uninstall_hook( $file, $callback ) {
if ( is_array( $callback ) && is_object( $callback[0] ) ) {
_doing_it_wrong( __FUNCTION__, __( 'Only a static class method or function can be used in an uninstall hook.' ), '3.1.0' );
return;
}
/*
* The option should not be autoloaded, because it is not needed in most
* cases. Emphasis should be put on using the 'uninstall.php' way of
* uninstalling the plugin.
*/
$uninstallable_plugins = (array) get_option( 'uninstall_plugins' );
$plugin_basename = plugin_basename( $file );
if ( ! isset( $uninstallable_plugins[ $plugin_basename ] ) || $uninstallable_plugins[ $plugin_basename ] !== $callback ) {
$uninstallable_plugins[ $plugin_basename ] = $callback;
update_option( 'uninstall_plugins', $uninstallable_plugins );
}
}
История изменений
| Версия | Описание |
|---|---|
| 2.7.0 | Introduced. |

