我试图在第一次用户登录时强制更改密码,但总体上不起作用,但到目前为止,我发现一个问题update\\u user\\u meta()根本没有更新,这是我的代码:
function track_last_login($login)
{
global $user_ID;
$user = get_userdatabylogin($login);
$Nlogins = (int)get_user_meta($user->ID, \'Nlogins\', true);
if (!$Nlogins) $Nlogins=1;
else $Nlogins++;
update_user_meta($user->ID, \'Nlogins\', $Nlogins);
if ($Nlogins==1)
{
add_action(\'admin_notices\', \'showAdminMessagePwd\');
header("Location: http://example.com/wp-admin/profile.php");
}
else
remove_action(\'admin_notices\', \'showAdminMessagePwd\');
}
add_action(\'wp_login\',\'track_last_login\');
//(showAdminMessagePwd is a function already defined)
根据我的日志消息,在update\\u user\\u meta之前,Nlogins的值是1,但它在数据库中保持在0,每次新登录都像第一次一样。我做错了什么?
另一个问题是:为什么*add\\u action(\'admin\\u notices\',\'showadminsessagepwd\')*只在从函数外部调用(直接在functions.php中调用)时起作用,而在函数内部调用时不起作用。
非常感谢。