it-swarm.com.de

So melden Sie sich automatisch wieder an, nachdem Sie user_login geändert haben

Ich habe ein System von Ajax, das user_login der Benutzer ändert und dies ist mein Code:

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

Nachdem user_login geändert wurde, wird WordPress diesen Benutzer abmelden, sodass ich versuche, wp_signon zu verwenden, nachdem user_login geändert wurde, aber es funktioniert nicht.

2
Trello

Bei einem ähnlichen Versuch musste ich den Benutzercache leeren, um das Relogin zum Laufen zu bringen (nach vielen frustrierenden Tests!):

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);

Damit dies funktioniert, muss der Benutzer möglicherweise gleichzeitig sein Kennwort ändern, damit Sie das Feld $user_password mit einem Nur-Text-Kennwort ausfüllen können, das an wp_signon gesendet werden soll.

1
majick