wp_update_user() non aggiorna user_data

5 lug 2016, 11:02:09
Visualizzazioni: 23.8K
Voti: 4

Con il codice qui sotto, provo ad aggiornare l'indirizzo email di un utente. Il $_POST è corretto, ma i dati non vengono salvati nella tabella wp_users.

$user_id = $_POST['ID']; // ID corretto
wp_update_user( $user_id, 'user_email', $_POST['user_email']); // indirizzo email corretto

Ho anche provato questo senza successo:

wp_update_user( array( $user_id, 'user_email', $_POST['user_email']) );         

Cosa c'è di sbagliato in questo aggiornamento?

0
Tutte le risposte alla domanda 1
0

La funzione richiede un array con i parametri. Vedi The Codex. Inoltre, mappi il parametro con il valore: es. 'user_email' => $_POST['user_email'].

Nel tuo esempio, il codice dovrebbe apparire così:

    $user_id = (int) $_POST[ 'ID' ];
    wp_update_user( array(
        'ID' => $user_id,
        'user_email' => $_POST[ 'user_email' ]
   ) );

Inoltre, un suggerimento importante: dovresti validare i dati. Specialmente i dati provenienti dall'array $_POST. Forse lo stai già facendo, e non è presente nel tuo codice d'esempio.

5 lug 2016 11:08:52