Отображать уведомления об обновлении, такие как "Что нового"
Я собираюсь выпустить новое обновление для своего плагина. Я использовал несколько функций, доступных только для WordPress 3.8, и это нормально, потому что я хочу поддерживать последнюю версию.
Как мне отобразить сообщение пользователю перед обновлением плагина со списком Что нового или просто общее предупреждение о том, что WordPress 3.8 требуется для запуска последней версии плагина?
Я прикрепил снимок экрана, на котором я хотел бы отобразить сообщение. Это что-то, что отображается на основе того, что вы внесли в журнал изменений вашего readme.txt
в багажнике?
1 answers
Вы можете подключиться к in_plugin_update_message-{$file}
.
Для вышеупомянутого плагина соответствующий код выглядит следующим образом:
add_action('admin_menu', array($this,'admin_menu'), 11);
function admin_menu()
{
global $pagenow;
if( $pagenow == 'plugins.php' )
{
$hook = apply_filters('acf/get_info', 'hook');
add_action( 'in_plugin_update_message-' . $hook, array($this, 'in_plugin_update_message'), 10, 2 );
}
}
function in_plugin_update_message( $plugin_data, $r )
{
$version = apply_filters('acf/get_info', 'version');
$readme = wp_remote_fopen( 'http://plugins.svn.wordpress.org/advanced-custom-fields/trunk/readme.txt' );
$regexp = '/== Changelog ==(.*)= ' . $version . ' =/sm';
$o = '';
if( !$readme )
{
return;
}
preg_match( $regexp, $readme, $matches );
if( ! isset($matches[1]) )
{
return;
}
$changelog = explode('*', $matches[1]);
array_shift( $changelog );
if( !empty($changelog) )
{
$o .= '<div class="acf-plugin-update-info">';
$o .= '<h3>' . __("What's new", 'acf') . '</h3>';
$o .= '<ul>';
foreach( $changelog as $item )
{
$item = explode('http', $item);
$o .= '<li>' . $item[0];
if( isset($item[1]) )
{
$o .= '<a href="http' . $item[1] . '" target="_blank">' . __("credits",'acf') . '</a>';
}
$o .= '</li>';
}
$o .= '</ul></div>';
}
echo $o;
}
Объявление: Вот как я сделал это для плагина, в котором я участвую.