Support » Allgemeine Fragen » wp_update_user bzw. update_user_meta speichert nicht
wp_update_user bzw. update_user_meta speichert nicht
-
Moin Zusammen,
es geht bei mir um wp_update_user() bzw. update_user_meta(). Ich hab schon lauter Foren Einträge gecheckt und meine ich mach alles richtig, aber es klappt nicht.
Ich möchte ganz simpel den Vornamen des Benutzer im Frontend über Ajax speichern / ändern.
Ich hab im Frontend ein Input-Feld wo der Name eingetragen wird. Ich hol mir den Namen auf click per jQuery + die User ID und übergebe diese mit ajax an mein PHP Script. Die korrekten Daten gehen rein und kommen auch zurück und es gibt keinen Fehler, aber er speichert die Daten einfach nicht ab. Im Script hab ich jetzt mal beide Varianten aufgeführt. Meine Ajax Action lautet: ajax_update_user
php:
function ajax_update_user() { $currentuserid = (int) $_POST['currentuserid']; $user_firstname = $_POST['user_firstname']); update_user_meta( $currentuserid, 'first_name', $user_firstname ); $user_data = wp_update_user( array( 'ID' => $currentuserid, 'first_name' => $user_firstname ) ); echo $currentuserid . $user_firstname; //rückgabe überprüfen - klappt wp_die();// leave ajax call } add_action('wp_ajax_nopriv_ajax_update_user', 'ajax_update_user' ); add_action('wp_ajax_ajax_update_user', 'ajax_update_user' );
Ich hoffe ihr könnt mir sagen was ich falsch mache.
Danke!!
Viele Grüße
Sebastian
-
Was kommt denn bei
$user_data
als Return-Wert zurück?Klarstellung: In der Funktion
ajax_update_user
kommen alle Daten aus dem Frontend, mehrmals getestet, an?
So wie du das auch beschreibst. (Aka die erste Nachfrage eines Technikers, ob das Kabel eh angesteckt ist 😀 )MOOOOOOOOOOOOOOOMENT!
Was oft für Verwirrung stiftet ist:
WordPress speichert nicht, wenn versucht wird, die bereits gespeicherten Daten 1:1 zu speichern.Kann es sein, dass du im Frontend immer mit den gleichen Daten versuchst, deine Funktion zu testen???
Wenn ich $user_data ausgebe kommt zur Zeit die User ID zurück. Hab auch mal aus der Doku das getestet, hat auch geklappt, also „success“:
if ( is_wp_error( $user_data ) ) { // There was an error; possibly this user doesn't exist. echo 'Error.'; } else { // Success! echo 'User profile updated.'; }
Ja die richtigen Daten(ID und Name) werden auch korrekt in der „success function“ zurück gespielt.
success: function( entry_success ) { //response ist returned data alert(entry_success); location.reload(); }
Ok! Wie machst du fest, dass Speichervorgang dann fehl schlägt???
Bist du, zb per phpmyadmin, in die DB gegangen und hast das kontrolliert?
Hast du das mit WordPress-Funktionen getestet?Gerade erst deine angepasste Antwort gesehen. Ganz verstehen tue ich es nicht was du meinst. Ich hole den aktuellen Vornamen(zb:Rose) und schreibe es ins Value Attribut meines Input Felds. Dann schreibe ich einfach etwas hinten dran(Rose asdf) und klick auf speichern. Die Seite lädt nach dem Script nach und es steht halt immer noch Rose drin. Bin aber auch schon mal ins Backend und habe under Benutzer nachgeschaut. Datenbank hab ich jetzt nicht gecheckt.
Check mal die DB pls!
In der DB ist der first_name nachdem speichern leider auch immer noch „Rose“. Ich hol mir ja auch immer den aktuellen first_name des users.
Puh, sorry – da fällt MIR leider dazu nix mehr ein. Wenn du nirgendwo eine Fehlermeldung bekommst, die Speichervorgänge durchgehen, laut Antwort der Funktionen….
Dann fällt mir nichts ein, warum das dann DENNOCH nicht in der DB drin ist.Verdammt, wie kann das denn sein .. Ja ich hab auch schon alles durchsucht an Foren und alle machen es gleich.
Trotzdem vielen Dank!! Hier noch mal kurz mein Ajax, kannst du da noch mal drüber schauen, müsste doch auch korrekt sein, es läuft wie gesagt ja auch durch.
jQuery(document).ready(function(event){ var currentuserid = jQuery('#content').attr("data-user-id"); //userid holen jQuery('.profil-speichern').click(function(e){ //finaler eintrags Button klick var user_firstname = jQuery('#vorname').val(); //firstname holen var user_lastname = jQuery('#nachname').val(); //lastname holen alert(currentuserid + ' ' + user_firstname + ' ' + user_lastname); jQuery.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php');?>', dataType: "html", // add data type data: { action : 'ajax_update_user', currentuserid: currentuserid, user_firstname: user_firstname, user_lastname: user_lastname }, // function call from function.php and give param zum script success: function( entry_success ) { //response ist returned data alert(entry_success); location.reload(); } }); }); });
Hat denn sonst keiner eine Idee wodran es liegen kann?
- Das Thema „wp_update_user bzw. update_user_meta speichert nicht“ ist für neue Antworten geschlossen.