Autentificare in WordPress pe baza de email

Posibil ca la un moment dat vei avea nevoie de o logare automata pe baza de email. In mod normal pentru orice sistem de autentificare trebuie sa introduci un utilizator / o adresa email si o parola.

Dar ce se intampla cand ai doar o adresa de email?

In WordPress se poate aplica un mic hack ce NU ESTE RECOMANDAT, dar va arat cum se poate implementa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
// Aceasta functie se poate copie in folderul vostru de tema WordPress in fisierul functions.php 
// @param:  string $email - adresa de email 
 
function autentificare_dupa_email ( $email ) {
   $user_id = email_exists($email);   // daca exista adrese de email, functia va returna id-ul utilizatorului 
 
    if (!$user_id) return false;      // daca nu avem $user_id inseamna ca nu exista utilizatorul in baza de date, deci nu se va loga
 
    wp_set_current_user($user_id, $email); // setam utilizatorul curent in WordPress
 
    wp_set_auth_cookie($user_id);          // creeam cookie-ul de autentificare pentru a pastra utilizatorul logat. 
}
 
// Unde vrem sa apelam auto autentificarea introducem urmatoare linie: 
 
autentificare_dupa_email ('sandor@mailinator.com'); 
 
// Utilizatorul in acest moment este logat si se poate apela functia is_user_logged_in() ce va returna TRUE. 
?>

Leave a Reply