web-dev-qa-db-fra.com

wp_update_user () ne met pas à jour les données utilisateur

Avec le code ci-dessous, je tente de mettre à jour l'adresse électronique d'un utilisateur. Le $ _POST est correct, mais les données ne sont pas enregistrées dans la table wp_users.

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

Aussi essayé cela avec succès:

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

Quel est le problème avec cette mise à jour?

1
Hermants

La fonction a besoin d'un tableau avec les paramètres. Voir Le Codex . En outre, vous mappez le paramètre avec la valeur: ex. 'user_email' => $_POST['user_email'].

Dans votre exemple, le code ressemblerait à ceci:

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

Aussi, le conseil important: vous devez valider les données. En particulier les données du tableau $_POST. Peut-être que vous faites cela et que ce n'est pas dans votre exemple de source.

3
bueltge