php – 激活WordPress插件后显示消息

我想在激活插件显示激活消息.

我已经看到了关于这个问题的几个问题,但是没有一个问题能够正常运行:

if (!get_option("startup")) {
    echo "<div class='updated'><h3>Welcome to [name]</h3>";
    update_option('startup', 'true');
}

那工作..有点.它将HTML放在最顶端,甚至在<!DOCTYPE>之前.有没有办法把它放在正确的地方?那么在身体标签

解决方法:

这里有一些你需要做的事情.首先,register_activation_hook() function用于挂钩你的插件的激活. admin_notices action用于在管理区域内添加通知(您不能在任何地方打印通知).

但是,还有一个额外的复杂因素是您无法在插件激活时使用admin_notices操作.这是因为wordpress没有“活动”你的插件 – 它在后台激活它并抑制输出,以确保在完成激活之前它不会触发任何致命错误.

幸运的是,this blog post概述了这个问题的解决方案.该帖子的作者建议使用transients保存插件的“状态”,以便在激活后可以检索它.

因为该博客拥有像这个网站这样的CC-BY-SA许可证,所以我会在这里复制代码以便它继续存在.我稍微压缩它以保持这篇文章的长度,但你可以view the whole blog post完整的解决方案.我也测试了这一点,以确保它仍然有效 – 它安装在我的wordpress 4.5.3上.

register_activation_hook( __FILE__, 'fx_admin_notice_example_activation_hook' );

function fx_admin_notice_example_activation_hook() {
    set_transient( 'fx-admin-notice-example', true, 5 );
}

add_action( 'admin_notices', 'fx_admin_notice_example_notice' );

function fx_admin_notice_example_notice(){

    /* Check transient, if available display notice */
    if( get_transient( 'fx-admin-notice-example' ) ){
        ?>
        <div class="updated notice is-dismissible">
            <p>Thank you for using this plugin! <strong>You are awesome</strong>.</p>
        </div>
        <?PHP
        /* Delete transient, only display this notice once. */
        delete_transient( 'fx-admin-notice-example' );
    }
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...