Salvataggio di dati personalizzati per ogni utente
Permetto agli utenti di salvare alcune note sul mio sito WordPress. Possono farlo solo dopo aver effettuato l'accesso al sito.
Ora voglio salvare le loro note in una tabella del database e associarle all'ID dell'utente, cioè se un utente ha salvato 2 note, quando effettua l'accesso e va alla "mia pagina", dovrebbe poter vedere le 2 note che ha salvato.
Qualcuno potrebbe gentilmente guidarmi su come fare questo? Ho trovato molte informazioni sul salvataggio di metadati personalizzati degli utenti durante la registrazione. Ma non ho trovato alcun aiuto sul salvataggio di informazioni associate a un account utente dopo che hanno effettuato l'accesso.
Grazie.

Dai un'occhiata alla funzione update_user_meta puoi salvare i dati dell'utente durante la registrazione o dopo il login, dipende semplicemente dall'ID utente che gli passi.
Ad esempio, nella tua funzione per salvare i dati dell'utente dopo il login:
function save_user_data_7231(){
global $current_user;
if is_user_logged_in{ //controlla se l'utente è loggato
if (isset($_POST['Notes'])){
// ottieni le informazioni dell'utente corrente
get_currentuserinfo();
$old_notes = get_user_meta($current_user->ID, 'user_notes', true);
if (isset($old_notes)&& is_array($old_notes)){
//se abbiamo già salvato più di una nota
$old_notes[] = $_POST['Notes'];
update_user_meta( $current_user->ID, 'user_notes', $old_notes);
}
if (isset($old_notes)&& !is_array($old_notes)){
//se abbiamo salvato solo una nota prima
$new_notes = array($old_notes,$_POST['Notes']);
update_user_meta( $current_user->ID, 'user_notes', $new_notes)
}
if (!isset($old_notes)){
//prima nota che salviamo per questo utente
update_user_meta( $current_user->ID, 'user_notes', $_POST['Notes'])
}
}
}
}
Per visualizzare le note puoi usare get_user_meta
function get_user_notes_654(){
global $current_user;
if is_user_logged_in{ //controlla se l'utente è loggato
// ottieni le informazioni dell'utente corrente
get_currentuserinfo();
$old_notes = get_user_meta($current_user->ID, 'user_notes', true);
if (!isset($old_notes)){
$re = 'Nessuna nota ANCORA!';
}
if (isset($old_notes)){//abbiamo delle note. Rimosso il ! extra qui.
if (is_array($old_notes)){//più di una
foreach($old_notes as $note){
$re .= '<strong>nota:</strong>' . $note . '<br />';
}
}else{//solo una
$re = '<strong>nota:</strong>' . $old_notes . '<br />';
}
}
re .='//qui andrebbe il form per aggiungere note';
return $re;
}
}
Spero sia utile

grazie. cosa succede se voglio salvare dati diversi da stringhe - ad esempio file?

il salvataggio dei file comporterebbe l'elaborazione del caricamento e il salvataggio dell'ID dell'allegato che può essere salvato come stringa, inoltre se salvi semplicemente l'URL del file dopo il caricamento è comunque una stringa.

@Bainternet so che questa discussione è vecchia ma mi è stata utile. Solo una domanda: non ho impostato una nota eppure $old_notes = get_user_meta($current_user->ID, 'user_notes', true);
echo 'old notes ' . isset($old_notes);
restituisce un 1, dovrebbe essere 0/false, giusto?
