Înregistrare utilizator urmată de autentificare automată
Folosesc un plugin modificat pentru nevoile mele.
Ceea ce doresc este ca după ce utilizatorul s-a înregistrat, acesta să fie autentificat automat și redirecționat înapoi la pagina curentă. Momentan, le trimite un email cu numele de utilizator și parola. Apoi trebuie să se autentifice folosind aceste detalii.

Practic, pentru a autentifica un utilizator puteți folosi:
//Autentifică utilizatorul
$creds = array();
$creds['user_login'] = $login;
$creds['user_password'] = $password;
if ( !empty( $remember ) ){
$creds['remember'] = true;
}
$user = wp_signon( $creds, true );
dar asta funcționează doar când aveți parola și numele de utilizator deci puteți crea propriul formular de înregistrare, îl puteți procesa și puteți crea utilizatorul manual
//Doar după ce totul a fost validat, procedați cu crearea utilizatorului
//Creează utilizatorul
$user_pass = wp_generate_password();
$user = array(
'user_login' => $username,
'user_pass' => $user_pass,
'first_name' => $firstname,
'last_name' => $lastname,
'user_email' => $email
);
$user_id = wp_insert_user( $user );
/*Trimite e-mail administratorului și noului utilizator -
Puteți crea propriul e-mail în loc să folosiți această funcție*/
wp_new_user_notification( $user_id, $user_pass );
și aici avem atât autentificarea cât și parola, astfel încât puteți autentifica utilizatorul.
Sper că acest lucru vă ajută

Nu există un loc ideal pentru a interveni în procesul de înregistrare. Cred că ar fi util să adăugăm un hook de acțiune pentru înregistrarea utilizatorilor în nucleul WordPress. Dar până atunci, cred că poți simula acest lucru. Una dintre ultimele acțiuni care au loc atunci când un utilizator se înregistrează cu succes este crearea unei opțiuni de utilizator numită 'default_password_nag'. Putem crea o acțiune care să monitorizeze această opțiune și să configureze utilizatorul atunci când este setată.
add_action('update_user_metadata', 'my_auto_login', 10, 4);
function my_auto_login( $metaid, $userid, $key, $value ) {
// Ne interesează doar evenimentul legat de 'default_password_nag'. Ignorăm orice altceva.
if ( 'default_password_nag' !== $key && true !== $value) {
return;
}
// Setăm variabilele pentru utilizatorul curent și îi oferim un cookie de autentificare.
wp_set_current_user( $userid );
wp_set_auth_cookie( $userid );
}
Netestat, dar în teorie ar trebui să funcționeze.
Acum că avem o idee despre ce să facem, trebuie să menționez că cred că aceasta este o idee proastă din punct de vedere al securității. Oamenii pot crea conturi false fără să treacă prin dificultatea de a configura o căsuță de email falsă. :)

Tocmai am reușit să fac această funcționalitate să funcționeze folosind hook-ul user_register și următorul cod în fișierul meu functions.php:
// autentifică automat un utilizator care tocmai s-a înregistrat
function auto_login_new_user( $user_id ) {
wp_set_auth_cookie( $user_id, false, is_ssl() );
}
add_action( 'user_register', 'auto_login_new_user' );

function autentificare_dupa_inregistrare($userlogin,$userpass){
$credentials = array( 'user_login' => $userlogin, 'user_password' => $userpass, 'remember' => true );
$secure_cookie = is_ssl();
$secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, $credentials);
add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);
$user = wp_authenticate($credentials['user_login'], $credentials['user_password']);
wp_set_auth_cookie($user->ID, $credentials["remember"], $secure_cookie);
do_action('wp_login', $user->user_login, $user);
}
