我想在成功登录后重置用户的帖子元

时间:2013-03-06 作者:Bimal Rekhadiya

我想在登录后重置管理员的元值。它可以在管理员通过控制面板登录后更改,但我想在每次登录后重置它。

我使用了此代码,但它不起作用:

function reset_dismiss_message(){
    update_user_meta( get_current_user_id(), \'tgmpa_dismissed_notice\', false );
}
add_action(\'wp_login\', \'reset_dismiss_message\');
我检查了一下,发现get_current_user_id() 函数没有返回用户ID,因为在wp\\U登录操作处理时没有生成数据。

那么我该怎么做呢?

2 个回复
最合适的回答,由SO网友:Eugene Manuilov 整理而成

wp_login 行动passes 2个参数$user_login$user. 第二个参数是WP_User 类,您可以使用该类从以下位置获取用户id:

function reset_dismiss_message( $user_login, $user ) {
    update_user_meta( $user->ID, \'tgmpa_dismissed_notice\', false );
}
add_action( \'wp_login\', \'reset_dismiss_message\', 10, 2 );

SO网友:Adam

相反,你可能想试试;

function reset_dismiss_message(){
    global $current_user;
    get_currentuserinfo();
    update_user_meta( $current_user->ID, \'tgmpa_dismissed_notice\', false );
}
add_action(\'wp_login\', \'reset_dismiss_message\');

结束

相关推荐

多个单个站点,一个插件目录-调整plugins_url()

[这不是一个多站点问题]更新:这个问题在逻辑上是不可能的,或者是思维循环,如果你愿意的话,请检查下面的更新。技术是laid out here in WPEngineer.它允许有一个插件文件夹来为运行在同一服务器上的多个WordPress站点提供服务。所以,我所有的开发站点都在wp配置中有这个。phpdefine( \'WP_PLUGIN_DIR\', \'/www_dev/base-site/wp-content/plugins\' ); define( \'WP_PLUGIN_URL\', \