Intereting Posts
Как установить статическую главную страницу html «Конфликт» с действием deleted_post и is_admin () Удалить навигационное меню или пункт меню WordPress за Proxy – смешанный контент Лето / зимнее время – "летнее время" Меню категорий, которое отфильтровывает пустые категории Исключение сообщений из категории, но только если они не входят в несколько категорий скрыть комментарии для сообщений до зарегистрированных пользователей FancyBox JS перестала работать на нескольких сайтах. Ответственный пользовательский плагин. Необходима срочная помощь Добавление jquery и thickbox в тему WordPress Пытаясь использовать WP_Query для возврата сообщения с мета-значениями и без них не удалось сохранить пользовательские термины таксономии в настраиваемом метабоксе в wp-admin Удаление данных типа Custom Post с помощью команды mySQL Пользовательский цикл не учитывает категории / теги Отменить фильтр комментариев?

admin_notices после register_uninstall / deactivate_hook

Я успешно добавил уведомления администратора для отображения в register_activation_hook , и когда плагин обновляется, но я не вижу никакого способа отобразить admin_notices после удаления или деактивации перехватчиков. Это вообще возможно? В качестве альтернативы можно использовать javascript на этом этапе? (да вроде).


РЕДАКТИРОВАТЬ:

Чтобы ответить на @GM, я уже прочитал документы и @kaiser. Я уже видел вашу замечательную запись на этих крючках, но, если я не был неаккуратным и пропустил что-то, эти два крючка, похоже, работают по-другому, чем активационный крючок. Вот что я тестировал:

Это не отображает уведомление на странице администратора, при деактивации или деинсталляции (хотя при деактивации вы увидите короткое сообщение, отображаемое на белом экране после запуска крюка, но перед загрузкой страницы администратора плагина):

 register_deactivation_hook(__FILE__, "gfahp_deactivate"); function gfahp_deactivate(){ $notices = sprintf('%sSome notice%s', '<div class="error fade"><p>', '</p></div>'); echo $notices; } 

Это также не работает (на обоих):

 register_deactivation_hook(__FILE__, "gfahp_deactivate"); function gfahp_deactivate(){ add_action( 'admin_notices', 'gfahp_checks', 0 ); } function gfahp_checks(){ $notices = sprintf('%sSome notice%s', '<div class="error fade"><p>', '</p></div>'); echo = $notices; // return does not work either } 

Javascript работают над дезактивацией, но НЕ удаляют:

 register_deactivation_hook(__FILE__, "gfahp_deactivate"); function gfahp_deactivate(){ $notices = 'Some notice'; echo "<script>window.alert('$notices');</script>"; } 

Короткий ответ – нет, это невозможно. Когда вы деактивируете свой плагин, он деактивируется, поэтому не запускается действие admin_notices при обновлении экрана администратора. Вы можете подтвердить это сами, используя действие несколько иначе.

В вашей функции дезактивации есть следующая строка:

 set_transient('my_deactivation_transient', 'My plugin is being deactivated', 100); 

Сделайте функцию admin_notices следующим:

 function my_admin_notices() { $message = get_transient('my_deactivation_transient'); if (empty($message)) return; echo "<div class='error'><p>$message</p></div>"; } 

Когда вы отключите свой плагин, вы не увидите никаких сообщений. Когда вы снова активируете свой плагин, вы увидите сообщение. Дело не в том, что функция admin_notices не вызывается, просто плагин не активен, когда обновляется экран администратора.