it-swarm.com.de

Speichern Sie benutzerdefinierte Benutzer-Metas bei der Registrierung

Ich versuche, mein eigenes Registrierungsformular zu erstellen und die Telefonnummer als erforderliches Feld hinzuzufügen, und ich würde diese Telefonnummer gerne als benutzerdefiniertes Benutzer-Meta speichern.

Nach der Validierung und Überprüfung der Eingaben wird ets. Mein Code sieht so aus:

// this returns the correct value etc. - string(9) "126777889"
var_dump($metas['user_phone'])

$user_id = wp_insert_user($fields);
add_user_meta( $user_id, 'user_phone', $metas['user_phone'] );

Der Benutzer wurde korrekt erstellt, aber im Telefon-Metafeld ist ein Fehler aufgetreten. Im Backend sieht das so aus:  enter image description here 

Ich habe diesen Ansatz auch ausprobiert, um zu testen, ob das Meta existiert:

if(get_user_meta($user_id,'user_phone')) {
    update_user_meta($user_id,'user_phone');
} else {
    add_user_meta($user_id,'user_phone');    
}

Es wurde auch versucht, das Meta mit der Aktion 'user_register' wie folgt hinzuzufügen:

function addMyCustomMeta($user_id,$meta) {
    update_user_meta($user_id,$meta);
}
add_action('user_register','addMyCustomMeta',10,2,);

Und dann mit so:

$user_id = wp_insert_user($fields);
do_action('addMyCustomMeta',$user_id,$metas['user_phone']);

In jedem Fall habe ich die oben beschriebene Situation. Kein Metatitel und der Wert wird als mehrere "Array" gespeichert

In der Datenbank sieht es gut aus:

 enter image description here 

Hast du eine Ahnung, was ich falsch mache?

Vielen Dank

1
Cafourek

Sie müssen die folgenden Hooks auslösen:

  • user_register
  • personal_options_update
  • edit_user_profile_update

    add_action('user_register', 'addMyCustomMeta');    
    add_action('personal_options_update', 'addMyCustomMeta' );    
    add_action('edit_user_profile_update','addMyCustomMeta' );    
    function addMyCustomMeta( $user_id ) {    
               update_user_meta( $user_id, 'user_phone', $_POST['user_phone'] ); 
    }
    

Hoffentlich hilft das!!

4
Aishan