update_user_meta () funktioniert nicht

Ich habe Probleme mit WordPress, mit der function update_user_meta()

Ich versuche, einen neuen benutzerdefinierten Metawert für den Benutzer zu aktualisieren oder hinzuzufügen, der bereits über das benutzerdefinierte Meta für das Bearbeitungsprofil verfügt. Aber wenn ich die function update_user_meta() außerhalb der edit-profile.php , hat es einfach nicht funktioniert.

Ich habe eine Seite wie eine Seite des Kontakts, wo das Formular die benutzerdefinierten Metadaten des Profils bearbeiten wird, in der Vorderseite des WordPress wie eine normale Seite von WordPress, aber wenn er das Formular abschickt, aktualisiert er einfach nicht, hier ist mein Code:

wenn der Benutzer Folgendes einreicht:

 function update_termini() { $user = wp_get_current_user(); $userData = array(); $userData['checkbox'] = intval( $_POST['custom_user_fields_checkbox'] ); update_user_meta( $user, 'custom_user_fields', $userData ); } add_action('edit_user_profile', 'update_termini'); 

Solutions Collecting From Web of "update_user_meta () funktioniert nicht"

wp_get_current_user() gibt ein Objekt zurück. update_user_meta( $user_id, $meta_key, $meta_value, $prev_value ) akzeptiert user_id als ersten Parameter. Verwenden Sie den folgenden Code, um die Benutzer-ID von wp_get_current_user()

 update_user_meta( $user->ID, 'custom_user_fields', $userData ); 

Dies ist der richtige Weg, um Benutzer-Meta zu aktualisieren, damit Sie Ihre Daten nicht durcheinander bringen; Das Snippet wird kommentiert, um weitere Details zu liefern:

 function update_termini( $user_id ) { // print_r( $user_id ); // exit; // $user_id holds the user ID of the actual user's profile page subjected to the edit. // That is the right way to do it. // The comment block right below this very block is an ineffective way as it will only work // for a current user editing his/her own profile page and why it is not the best way out; // Using wp_get_current_user() to derive at a user ID as in: $user = wp_get_current_user(); // then, $user->ID; will enable you get the user ID of the CURRENT USER and that is going // to AFFECT YOUR DATA NEGATIVELY when an administrator for instance edits the profile of // a user; what will happen then is that the data of the custom field will actually update // the records of the administrator rather than that of the intended user whos profile in // being edited by the administrator. // You can then perform any checks if needed, if ( current_user_can( 'edit_user' ) ) { // print_r( $_POST ); // exit; // And proceed to update the user meta of the actual user's profile page subjected to the edit; // it may or may not be the current user. // This way, you are sure to update the right field with right information. // For the purpose of this update, it is assumed the name of our newly added custom field // is custom_user_fields_checkbox. update_user_meta( $user_id, 'custom_user_fields_checkbox', $_POST['custom_user_fields_checkbox'] ); } } add_action( 'edit_user_profile', 'update_termini' );