web-dev-qa-db-ja.com

User_loginを変更した後にユーザーを再度自動ログインする方法

私は、ユーザーのuser_loginを変更するというajaxによるシステム作業を行っています。これが私のコードです。

$wpdb->update($wpdb->users, array('user_login' => sanitize_text_field($args['user_login'])), array('ID' => $user_id));

User_loginが変更された後、WordPressはこのユーザーをログアウトさせるので、user_loginが変更された後にwp_signonを使用しようとしますが、動作していません。

2
Trello

再ログインを機能させるためにユーザーキャッシュをクリアする必要があるのと同じようなことを試みたときに、私は気付きました(非常にイライラするテストの後に!)

wp_cache_delete($user_id, 'users');
wp_cache_delete($old_user_login, 'userlogins'); // maybe unnecessary?
$creds = array('user_login' => $user_login, 'user_password' => $user_password, 'remember' => true);
wp_signon($creds);

これを機能させるには、$user_passwordフィールドにプレーンテキストのパスワードを入力してwp_signonに入力できるように、ユーザーに同時にパスワードの変更も必要になる場合があります。

1
majick