WordPress: gestire metadati complessi nei profili utente

WordPress: gestire metadati complessi nei profili utente

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

Torna su