在页面刷新后显示管理员通知

时间:2017-03-23 作者:Louis W

我正在钓上profile_update 事件,以便在从后端保存成员配置文件时对其执行操作。触发事件和我的代码后,Wordpress会将页面重定向回自身。

我想这就是为什么我的通知没有出现在后端的原因。有没有办法告诉它只显示在新的页面视图上?

我的代码的缩写版本:

function SITE_profile_update_notice() {
    echo \'<div class="error notice"><p>Good Job!</p></div>\';
}

function SITE_profile_update( $user_id, $old_user_data ) {
    // ... 
    add_action( \'admin_notices\', \'SITE_profile_update_notice\' );
}

add_action( \'profile_update\', \'SITE_profile_update\', 10, 2 );

1 个回复
最合适的回答,由SO网友:Sam 整理而成

您应该使用set\\u transient,这是存储的,并将在页面重新加载后显示,就像服务器端的cookie一样。

function SITE_profile_update_notice() {
// Add this to your code where you want to the transient to fire  after function
set_transient( \'fx-admin-notice-panel\', true, 5 );
}

/* Add admin notice */
add_action( \'admin_notices\', \'fx_admin_notice_example_notice\' );


/** Admin Notice on Activation. @since 0.1.0 */
function fx_admin_notice_example_notice(){

    /* Check transient, if available display notice */
    if( get_transient( \'fx-admin-notice-panel\' ) ){
        ?>
        <div class="updated notice is-dismissible">
            <div class="notice"><p>Good Job!</p></div>
        </div>
        <?php
        /* Delete transient, only display this notice once. */
        delete_transient( \'fx-admin-notice-panel\' );
    }
}
此页面可能非常适合您的需要http://revelationconcept.com/wordpress-send-admin-notification-user-updates-profile/