我正在钓上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 );
最合适的回答,由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/