Как отобразить сообщение об обновлениях в списке плагинов

Я пытаюсь использовать in_plugin_update_message , чтобы отобразить однострочное сообщение под именем моего плагина в разделе списка плагинов администратора. Однако функция, вызываемая в hook, кажется не запущена: сообщение не отображается.

Я не могу понять, что я делаю неправильно.

Построение крючка

 global $pagenow; if ( 'plugins.php' === $pagenow ) { $file = basename( __FILE__ ); $folder = basename( dirname( __FILE__ ) ); $hook = "in_plugin_update_message-{$folder}/{$file}"; add_action( $hook, 'your_update_message_cb'); } 

Функция обратного вызова

 function your_update_message_cb( $plugin_data, $r ) { echo 'Hello World'; $output = 'Hello World'; return print $output; } 

Должен ли я использовать другой крючок или есть ошибка в моем коде? Спасибо за вашу помощь

Проблемы с кодом:

  1. Вам не нужно проверять наличие $pagenow , это действие будет срабатывать только на экране Plugins.

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

  3. Крючок действия не возвращает значения , вы делаете свои вещи, и все.

Рабочий код:

 $file = basename( __FILE__ ); $folder = basename( dirname( __FILE__ ) ); $hook = "in_plugin_update_message-{$folder}/{$file}"; add_action( $hook, 'your_update_message_cb', 10, 2 ); // 10:priority, 2:arguments # function your_update_message_cb( $plugin_data, $r ) { echo 'Hello World'; } 

Конечно, этот крючок не работает, если плагин inactive .