WordPress memorizza i metadati di ciascun profilo utente nella tabella wp_usermeta
(consultate il documento relativo ). Tali metadati sono accessibili tramite la funzione get_usermeta()
e aggiornabili tramite la funzione update_usermeta()
. Ma come possiamo memorizzare dati complessi associati
agli utenti?
Una soluzione consiste nel raggruppare questi dati convertendoli in una stringa da associare ad un campo meta del profilo utente. Questa soluzione è usata più volte da WordPress e fa uso della funzione PHP serialize()
:
$user_data = array(
'address' => $_POST['address'],
'zip' => $_POST['zip']
);
$meta = serialize( $user_data );
update_usermeta( 10, 'my-user-data', $meta );
La funzione update_usermeta()
accetta come primo parametro l'ID dell'utente, come secondo parametro il nome del campo meta e come terzo parametro il valore di tale campo. Per riottenere
l'array associativo di partenza la procedura è la seguente:
$meta = get_usermeta( 10, 'my_user_data', true );
$user_data = unserialize( $meta );
Qui è la funzione PHP unserialize()
che ci permette di riottenere i dati iniziali. Un'altra soluzione consiste nel trasformare i dati in una stringa JSON:
$user_data = array(
'address' => $_POST['address'],
'zip' => $_POST['zip']
);
$meta = json_encode( $user_data );
update_usermeta( 10, 'my-user-data', $meta );
Quindi per riottenere i dati iniziali scriveremo:
$meta = get_usermeta( 10, 'my_user_data', true );
$user_data = json_decode( $meta, true );