在插件激活前显示确认消息

时间:2012-09-14 作者:Daniel

我想在用户尝试激活我的插件时显示一条消息。此消息将询问他是否真的想激活插件,或者如果他改变主意,取消激活。我如何才能做到这一点?这是警告消息的代码,仅供参考。

---更新的代码---

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();
    }
} 

2 个回复
SO网友:kaiser

您可以阅读更多有关activation on this answer.

基本上,您需要将函数挂接到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?
}
就这么简单。你只需要填补空白。如果您有完整的工作示例,请使用您的工作代码更新此答案。谢谢

SO网友:Brian Fegter

您需要创建两个区别,即激活和启用。你HAVE TO 让您的插件激活AKA,让WP知道要处理的逻辑。即使插件已激活,您仍可以禁用功能并提醒用户插件已激活,但尚未启用。

有几个插件使用第二个启用步骤。你可以看看Private WPAll-In-One SEO Pack 看看他们是如何做到这一点的。

以下是我的做法:

插件激活后,设置一个管理员通知,提醒用户需要先启用该功能update_option()). 您可能希望创建一个设置页面,其中包含一个显示其启用状态的选择下拉列表get_option() 禁用管理通知并继续处理代码

结束

相关推荐

如何理解ACTIVE_PLUGINS OPTION_VALUE从数据库中启用和禁用某些插件?

谁能解释一下如何解释和理解WordPress中的active\\u plugins option\\u value字符串吗。然后使用此字符串/数组禁用和激活特定插件?以下是一个示例:a:8:{i:0;s:21:\"adrotate/adrotate.php\";i:1;s:19:\"akismet/akismet.php\";i:2;s:33:\"better-related/better-related.php\";i:3;s:17:\"clicky/clicky.php\";i:4;s:49:\"cu