Salvare date personalizate pentru fiecare utilizator
Permit utilizatorilor să salveze note pe site-ul meu WordPress. Ei pot face acest lucru doar după ce se autentifică pe site.
Acum doresc să salvez notele lor într-o tabelă de baze de date și să le asociez cu ID-ul utilizatorului, adică dacă un utilizator a salvat 2 note, atunci când se autentifică și accesează "pagina mea", ar trebui să poată vedea cele 2 note salvate.
Poate cineva să mă ghideze cum să fac acest lucru? Am găsit multe informații despre salvarea metadatelor personalizate ale utilizatorilor la înregistrare. Dar nu am găsit ajutor pentru salvarea informațiilor asociate cu un cont de utilizator după autentificare.
Mulțumesc.

Aruncă o privire la update_user_meta poți salva datele utilizatorului dacă se înregistrează sau este autentificat, este doar o chestiune de ce ID de utilizator îi transmiți.
Să zicem în funcția ta pentru a salva datele utilizatorului după ce se autentifică:
function save_user_data_7231(){
global $current_user;
if is_user_logged_in{ //verifică dacă utilizatorul este autentificat.
if (isset($_POST['Notes'])){
// obține informațiile utilizatorului curent
get_currentuserinfo();
$old_notes = get_user_meta($current_user->ID, 'user_notes', true);
if (isset($old_notes)&& is_array($old_notes)){
//dacă am salvat deja mai multe note
$old_notes[] = $_POST['Notes'];
update_user_meta( $current_user->ID, 'user_notes', $old_notes);
}
if (isset($old_notes)&& !is_array($old_notes)){
//dacă am salvat doar o notă înainte
$new_notes = array($old_notes,$_POST['Notes']);
update_user_meta( $current_user->ID, 'user_notes', $new_notes)
}
if (!isset($old_notes)){
//prima notă pe care o salvăm pentru acest utilizator
update_user_meta( $current_user->ID, 'user_notes', $_POST['Notes'])
}
}
}
}
Pentru a afișa notele lor poți folosi get_user_meta
function get_user_notes_654(){
global $current_user;
if is_user_logged_in{ //verifică dacă utilizatorul este autentificat.
// obține informațiile utilizatorului curent
get_currentuserinfo();
$old_notes = get_user_meta($current_user->ID, 'user_notes', true);
if (!isset($old_notes)){
$re = 'Nicio notă ÎNCĂ!';
}
if (isset($old_notes)){//avem note. Am eliminat ! suplimentar aici.
if (is_array($old_notes)){//mai mult de una
foreach($old_notes as $note){
$re .= '<strong>notă:</strong>' . $note . '<br />';
}
}else{//doar una
$re = '<strong>notă:</strong>' . $old_notes . '<br />';
}
}
re .='//formularul de adăugare notă ar veni aici';
return $re;
}
}
Sper că acest lucru ajută

mulțumesc. ce fac dacă vreau să salvez date care nu sunt șiruri de caractere - de exemplu fișiere?

salvarea fișierelor ar implica procesarea încărcării și salvarea ID-ului atașamentului care poate fi salvat ca șir de caractere, de asemenea dacă salvezi doar URL-ul către fișier după încărcare, acesta rămâne tot un șir de caractere.

@Bainternet știu că acest thread este vechi dar mă ajută. Doar o întrebare, nu am setat o notă și totuși $old_notes = get_user_meta($current_user->ID, 'user_notes', true);
echo 'old notes ' . isset($old_notes);
returnează 1, ar trebui să fie 0/false, nu?
