Wie können Sie zusätzliche Benutzerdaten als Teil des Registrierungsprozesses speichern?

Ich habe ein mehrteiliges Tabbed-Registrierungsformular erstellt, das neben Benutzernamen, Passwort und E-Mail etwa 40 bis 45 benutzerdefinierte Felder enthält. Das Ziel besteht darin, eine neue Benutzerregistrierung zu erstellen und den validierten / bereinigten Inhalt der Feldeingaben in einer neuen Tabelle in der database zu speichern. Diese Tabelle wird als Registrierung verwendet und von öffentlichen Benutzern durchsucht.

Wenn ich wp_create_user anrufe, sind die einzigen drei zulässigen Argumente Benutzername, Passwort und E-Mail. Gibt es einen anderen Haken, den ich nennen sollte, der in meinen anderen Feldern posten wird?

Hier ist mein bisheriges Formular:

class qfpregister extends WP_Widget { static private $login_registration_status; static function registration_form(){ $username = esc_attr( $_POST['username']); $password = esc_attr( $_POST['password']); $firstname = esc_attr( $_POST['firstname']); $middlename = esc_attr( $_POST['middlename']); $lastname = esc_attr( $_POST['lastname']); $companyname = esc_attr($_POST['companyname']); $dateofbirth = esc_attr($_POST['dateofbirth']); $ssn = esc_attr($_POST['ssn']); $workaddress1 = esc_attr($_POST['workaddress1']); $workaddress2 = esc_attr($_POST['workaddress2']); $workcity = esc_attr($_POST['workcity']); $workstate = esc_attr($_POST['workstate']); $workzipcode = esc_attr($_POST['workzipcode']); $homeaddress1 = esc_attr($_POST['homeaddress1']); $homeaddress2 = esc_attr($_POST['homeaddress2']); $homecity = esc_attr($_POST['homecity']); $homestate = esc_attr($_POST['homestate']); $homezipcode = esc_attr($_POST['homezipcode']); $phone = esc_attr($_POST['phone']); $fax = esc_attr($_POST['fax']); $email = esc_attr($_POST['email']); $website = esc_attr($_POST['website']); $biography = esc_attr($_POST['biography']); $photofilename = esc_attr($_POST['photofilename']); $billingsameashome = esc_attr($_POST['billingsameashome']); $billingsameaswork = esc_attr($_POST['billingsameaswork']); $chfcearneddate = esc_attr($_POST['chfcearneddate']); $chfccert = esc_attr($_POST['chfccert']); $pfsearneddate = esc_attr($_POST['pfsearneddate']); $pfscert = esc_attr($_POST['pfscert']); $msfsearneddate = esc_attr($_POST['msfsearneddate']); $msfscert = esc_attr($_POST['msfscert']); $msearneddate = esc_attr($_POST['msearneddate']); $mscert = esc_attr($_POST['mscert']); $qfpearneddate = esc_attr($_POST['qfpearneddate']); $qfpcert = esc_attr($_POST['qfpcert']); $othercreds = esc_attr($_POST['othercreds']); $regtype = esc_attr($_POST['regtype']); $ccnumber = esc_attr($_POST['ccnumber']); $ccexpmonth = esc_attr($_POST['ccexpmonth']); $ccexpyear = esc_attr($_POST['ccexpyear']); $cvvnumber = esc_attr($_POST['cvvnumber']); /* { $html = '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html = '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= 'Select...'; $html .= 'Alabama'; $html .= 'Alaska'; $html .= 'Arizona'; $html .= 'Arkansas'; $html .= 'California'; $html .= 'Colorado'; $html .= 'Connecticut'; $html .= 'District of Columbia'; $html .= 'Delaware'; $html .= 'Florida'; $html .= 'Georgia'; $html .= 'Hawaii'; $html .= 'Idaho'; $html .= 'Illinois'; $html .= 'Indiana'; $html .= 'Iowa'; $html .= 'Kansas'; $html .= 'Kentucky'; $html .= 'Louisiana'; $html .= 'Maine'; $html .= 'Maryland'; $html .= 'Massachusetts'; $html .= 'Michigan'; $html .= 'Minnesota'; $html .= 'Mississippi'; $html .= 'Missouri'; $html .= 'Montana'; $html .= 'Nebraska'; $html .= 'Nevada'; $html .= 'New Hampshire'; $html .= 'New Jersey'; $html .= 'New Mexico'; $html .= 'New York'; $html .= 'North Carolina'; $html .= 'North Dakota'; $html .= 'Ohio'; $html .= 'Oklahoma'; $html .= 'Oregon'; $html .= 'Pennsylvania'; $html .= 'Rhode Island'; $html .= 'South Carolina'; $html .= 'South Dakota'; $html .= 'Tennessee'; $html .= 'Texas'; $html .= 'Utah'; $html .= 'Virginia'; $html .= 'Vermont'; $html .= 'Washington'; $html .= 'West Virginia'; $html .= 'Wisconsin'; $html .= 'Wyoming'; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= 'Select...'; $html .= 'Alabama'; $html .= 'Alaska'; $html .= 'Arizona'; $html .= 'Arkansas'; $html .= 'California'; $html .= 'Colorado'; $html .= 'Connecticut'; $html .= 'District of Columbia'; $html .= 'Delaware'; $html .= 'Florida'; $html .= 'Georgia'; $html .= 'Hawaii'; $html .= 'Idaho'; $html .= 'Illinois'; $html .= 'Indiana'; $html .= 'Iowa'; $html .= 'Kansas'; $html .= 'Kentucky'; $html .= 'Louisiana'; $html .= 'Maine'; $html .= 'Maryland'; $html .= 'Massachusetts'; $html .= 'Michigan'; $html .= 'Minnesota'; $html .= 'Mississippi'; $html .= 'Missouri'; $html .= 'Montana'; $html .= 'Nebraska'; $html .= 'Nevada'; $html .= 'New Hampshire'; $html .= 'New Jersey'; $html .= 'New Mexico'; $html .= 'New York'; $html .= 'North Carolina'; $html .= 'North Dakota'; $html .= 'Ohio'; $html .= 'Oklahoma'; $html .= 'Oregon'; $html .= 'Pennsylvania'; $html .= 'Rhode Island'; $html .= 'South Carolina'; $html .= 'South Dakota'; $html .= 'Tennessee'; $html .= 'Texas'; $html .= 'Utah'; $html .= 'Virginia'; $html .= 'Vermont'; $html .= 'Washington'; $html .= 'West Virginia'; $html .= 'Wisconsin'; $html .= 'Wyoming'; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= ''; $html .= '
'; $html .= '</div'; $html .= '
'; $html .= ''; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; // close tabpane return $html; }

}

Welche function (en) sollten aufgerufen werden, um den neuen Benutzer und die entsprechenden Daten als Metainputs auf dem Benutzerdatensatz hinzuzufügen?

Solutions Collecting From Web of "Wie können Sie zusätzliche Benutzerdaten als Teil des Registrierungsprozesses speichern?"

In der function, die Sie in user_register , müssen Sie den Benutzer erstellen und die Werte speichern. Zuerst würde ich die Verwendung von wp_insert_user() anstelle von wp_create_user() empfehlen.

Sie könnten so etwas tun:

 $userdata = array( 'user_email' => $email_address, 'user_login' => $user_name, // this is automatically salted 'user_pass' => 'plain_text_password', ); // this function returns the user id $user_id = wp_insert_user( $userdata ) ; $data = array( 'field_key_name' => $data_one, 'field_key_name_two' => $data_two, ); foreach( $data as $k => $v ) { update_user_meta( $user_id, $k, $v ); } // if wp_insert_user fails, it returns an error object if ( is_wp_error( $user_id ) ) { // error } else { // success } 

Wenn Sie die Daten in einer benutzerdefinierten Tabelle speichern, führen Sie diese Aktualisierungsabfrage anstelle von update_user_meta() , wodurch Ihre Daten in der Tabelle wp_usermeta werden.