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?
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.