register_form, benutzerdefiniertes Feld wurde beim ersten Versuch nicht übergeben

Ich habe ein Problem mit einem benutzerdefinierten Feld auf dem Registrierungsformular (in Verbindung mit WooCommerce)

function my_account_send_form_post_data( ) { $email = $_POST["email"]; $firstname = $_POST["billing_first_name"]; $lastname = $_POST["billing_last_name"]; $api = $this->get_api(); if ( ! $api ) { return false; } if ( isset( $_POST['mailchimp-subscribe'] ) && 'yes' == $_POST['mailchimp-subscribe'] ) { $list_id = $this->get_option( 'wc_mailchimp_list_id' ); $double_optin = $this->get_option( 'wc_mailchimp_double_optin' ) == 'yes'; $api->my_account_subscribe_to_list( $list_id, $firstname, $lastname, $email); } return true; } /** * Subscribe to Mailchimp via account registration on my-account page * @param string $list_id * @param string $firstname * @param string $lastname * @param string $email **/ public function my_account_subscribe_to_list( $list_id, $firstname, $lastname, $email) { $data = array( 'id' => $list_id, 'email' => array( 'email' => $email ), 'merge_vars' => array( 'FNAME' => $firstname, 'LNAME' => $lastname, ), 'double_optin' => false, 'update_existing' => true, ); $response = $this->perform_request( '/lists/subscribe.json', $data ); $response = wp_remote_retrieve_body( $response ); echo print_r($response, true); if ( is_wp_error( $response ) ) { return false; } $response = json_decode( $response, true ); echo print_r($response, true); if ( isset( $response['status'] ) && 'error' == $response['status'] ) { return false; } return true; } 

Wie Sie sehen können, verarbeitet die my_account_subscribe_to_list die my_account_subscribe_to_list der benutzerdefinierten Informationen und print_r die Antwort.

Beim ersten Versuch, dich zu registrieren, wirst du korrekt bei WordPress registriert, aber die benutzerdefinierten Daten werden nie verarbeitet.

Beim zweiten Versuch, ein Konto unter Verwendung derselben Registrierungsinformationen wie beim ersten Versuch zu registrieren. Sie erhalten einen Fehler, dass die Registrierungsinformationen bereits verwendet werden (wie vermutet). Sie erhalten jedoch auch die Ausgabe von $response daher werden das benutzerdefinierte Feld und die Daten verarbeitet.

Solutions Collecting From Web of "register_form, benutzerdefiniertes Feld wurde beim ersten Versuch nicht übergeben"

In der Dokumentation zu register_form ist eine Erwähnung von user_register unter hooks enthalten, die verwendet wird:

Mit diesem Aktionshook können Sie sofort nach dem Hinzufügen zur database auf Daten für einen neuen Benutzer zugreifen. Die Benutzer-ID wird an hook als Argument übergeben.

In der Regel wird dieser Hook zum Speichern zusätzlicher Benutzermetas verwendet, die von benutzerdefinierten Registrierungsformularen übergeben wurden.

Das Ändern von register_form zu user_register behob das Problem und ließ mich zusätzliche Daten user_register wenn die Registrierung abgeschlossen ist