Я хочу отобразить сообщение когда пользовательская попытка активировать мой плагин. Это сообщение спросит, хочет ли его действительно активировать плагин или, если его передумали, отменяют активацию. Как я могу выполнить это? Это - код для предупреждающего сообщения только для ссылки.
---ОБНОВЛЕННЫЙ КОД---
register_activation_hook( __FILE__, 'on_activation' );
function on_activation() {
// Add the admin notice:
add_action( 'admin_notices', 'on_activation_note' );
// Then you should check the DB option:
$plugins = get_option( 'active_plugins' );
// Do all the checks from the confirmation message
if ( !in_array(__FILE__, $plugins) ) {
unset( $plugins[ dirname( __FILE__ ) ] );
update_option( 'active_plugins', $plugins );
}
}
function on_activation_note() {
global $pagenow;
if ( $pagenow == 'plugins.php' ) {
ob_start(); ?>
<div id="message" class="error">
<p><strong>Aviso</strong></br>
Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</p>
<p><span><a class="button" href="">Cancelar</a></span>
<span><a class="button" href="">Continuar</a></span></p>
</div>
<?php
echo ob_get_clean();
}
}
Можно читать больше о деталях активации на этом ответе.
В основном необходимо сцепить функцию с register_activation_hook()
- принятие, что это из Вашей основной сменной папки и не подпапки:
register_activation_hook( __FILE__, 'on_activation' );
function wpse65190_on_activation()
{
// Add an admin notice:
add_action( 'admin_notices', 'wpse65190_on_activation_note' );
// Then you should check the DB option:
$plugins = get_option( 'active_plugins' );
if ( ! in_array( dirname( __FILE__ ), $plugins )
{
unset( $plugins[ dirname( __FILE__ ) ] );
update_option( 'active_plugins', $plugins );
}
}
function wpse65190_on_activation_note()
{
// Add your note here: Maybe a form?
}
Это настолько легко. Просто необходимо заполнить разрывы. Если Вы получили полный рабочий пример, обновите этот ответ со своим рабочим кодом.Спасибо.
Необходимо создать два различия, активированные и включенные. НЕОБХОДИМО было активировать плагин, иначе включенный, чтобы WP знал что логику обработать. Даже при том, что плагин активируется, можно все еще отключить функциональность и предупредить пользователя, что плагин активирован, но еще не включен.
Существует несколько плагинов, которые используют вторичный шаг включения. Можно смотреть на Частный WP и Единый Пакет SEO, чтобы видеть, как они выполняют это.
Вот то, как я приблизился бы к нему:
update_option()
). Вы могли бы хотеть создать страницу настроек с выбором, выпадающим, который показывает разрешать состояние.get_option()
отключить администраторское уведомление и продолжить обрабатывать Ваш код.
echo
. Простоreturn
вместо этого. – kaiser 15.09.2012, 21:39