Cosa sono le cache utente di WordPress?
Se hai mai lavorato a un progetto quando devi lavorare con i cookie di autenticazione di WordPress, probabilmente ti sei imbattuto nella funzione wp_set_auth_cookie. In breve, questa funzione :
Imposta l’ID utente basato sui cookie di autenticazione.
E quando usi questa funzione, stai essenzialmente creando un cookie che viene utilizzato per autenticare l’utente per accedere a WordPress.
Ma se stai cercando di autenticare un utente con WordPress in modo programmatico, sono necessari alcuni passaggi aggiuntivi per farlo correttamente, specialmente se stai lavorando con i plug-in di memorizzazione nella cache.
Ed è qui che entrano in gioco le cache degli utenti di WordPress.
Cache utente di WordPress
Oltre a creare semplicemente un cookie di autenticazione, è importante assicurarsi di eseguire le seguenti operazioni:
- svuota le cache degli utenti,
- eliminare i cookie di autenticazione,
- impostare un utente corrente,
- impostare il cookie di autenticazione,
- aggiornare le cache utente.
Sembra una soluzione complicata, giusto? La cosa bella è che ci sono una manciata di funzioni (collegate sopra) che lo rendono davvero facile.
La cosa importante da ricordare è che hai bisogno di un’istanza di WP_User per fare tutto questo. Il modo in cui recuperi un’istanza dell’utente dipenderà dalla funzionalità del tuo plug-in.
Cioè, forse sei in grado di recuperare un riferimento per un utente dato un nome utente :
<?php
$user = get_user_by( 'login', $username );
O forse hai un indirizzo email che puoi usare :
<?php
$user = get_user_by( 'email', $email );
In ogni caso, i seguenti passaggi devono avere un utente se vuoi farlo correttamente. Quindi, detto questo, ecco come potrebbe apparire il codice :
<?php
// Clean out any cookies and cookies for an existing user.
clean_user_cache( $user->ID );
wp_clear_auth_cookie();
// Set the current user and update the caches.
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID, true, false );
update_user_caches( $user );
E questo è tutto! Quindi ecco la descrizione di ciò che fa ciascuna funzione:
- clean_user_cache. Ciò rimuoverà tutte le informazioni degli utenti memorizzate nella cache.
- wp_clear_auth_cookie. Quando un utente viene autenticato con WordPress, viene memorizzato un cookie. Questo cancellerà quel cookie di autenticazione.
- wp_set_current_user. Data un’istanza di WP_User, chiedi a WordPress di contrassegnare questo utente (permettendo che esista nel database)
- wp_set_auth_cookie. Questo creerà il cookie utilizzato per l’autenticazione per l’utente che è stato appena impostato nella funzione precedente.
- update_user_caches. Infine, questo aggiornerà le cache dell’utente con le informazioni con i nuovi anni.
Quando si tratta di lavorare con la memorizzazione nella cache degli utenti di WordPress, l’autenticazione e di andare avanti con l’autenticazione programmatica degli utenti, queste sono le funzioni che dovrebbero essere utilizzate.