Wie kann ich Daten von Form 1 zu Form 2 verschieben?

Ich habe eine zweistufige Website-Registrierung für meine WordPress-Website.

BEGIN BEARBEITEN

Der erste Schritt / das erste Formular ist ein Front-End-Verifikationsformular-Plugin, das ich erstellt habe und das eine custom_table überprüft, um zu überprüfen, ob der Besucher ein Teil der custom_table ist.

Der zweite Schritt / Form ist ein Frontend-Registrierungsform-Plugin, das ich gebaut habe, das ich den gleichen “Namen” auf 3 der Felder wie in der ersten Form verwendet habe, sowie die Eingabefelder der ersten Formulare im Wert der Eingabe der zweiten Formulare Felder.

ENDE EDIT

Was ich versuche, ist, dass die Formulardaten von 3 Feldern im ersten Formular die 3 Felder im zweiten Formular ausfüllen.

Ich habe versucht, die zweite URL zum Aktionsbereich des Formulars hinzuzufügen und die Namen des Formulars, das die Daten erfolgreich in das zweite Formular eingefügt hat, abgeglichen. Allerdings hat meine validation damit aufgehört, am ersten Formular zu arbeiten. Als solche habe ich diese Idee verschrottet.

Ich habe jetzt auch den Code bearbeitet, um die Änderungen zu reflektieren, die ich mit den Kommentaren von hwl unten gemacht habe, und würde gerne weitere Einblicke haben, da ich jetzt sehe, dass das validationsskript funktioniert, aber wenn Sie die erfolgreichen Informationen eingeben, lädt das Formular die Informationen immer noch nicht zweite Seite. Aber keine Fatal Errors, also ist das eine gute Sache, lol.

BEGIN EDIT – DISPLAY BEIDE FULL FORMS

Formular 1 – Bestätigungs-Plugin

get_error_messages()) > 0) { // Display errors ?> 
    get_error_messages() as $key => $val) { ?>
<form action="" method="post">
<input type="text" name="user_login" id="user_login" value="" >

<input type="text" name="first_name" id="first_name" value="" >

<input type="text" name="last_name" id="last_name" value="" >

<input type="text" name="SinLast4" id="SinLast4" value="">


<form action="" method="post"> <input type="hidden" name="user_login" value=""> <input type="hidden" name="first_name" value=""> <input type="hidden" name="last_name" value="">
isset($_POST['user_login']) ? $_POST['user_login'] : '', 'first_name' => isset($_POST['first_name']) ? $_POST['first_name'] : '', 'last_name' => isset($_POST['last_name']) ? $_POST['last_name'] : '', 'SinLast4' => isset($_POST['SinLast4']) ? $_POST['SinLast4'] : '', ); } function cv_validate(&$fields, &$errors) { // Make sure there is a proper wp error obj // If not, make one if (!is_wp_error($errors)) $errors = new WP_Error; // Validate form data if (empty($fields['user_login']) || empty($fields['first_name']) || empty($fields['last_name']) || empty($fields['SinLast4'])) { $errors->add('field', 'Please remember to enter your information exactly as it appears on your Dues Receipt.'); } if (strlen($fields['user_login']) add('username_length', 'Card Number too short. Pleas verify you have entered the entire Card Number'); } if (strlen($fields['SinLast4']) add('sin_length', 'Please verify you have entered only the last 4 digits of your SIN.'); } // If errors were produced, fail if (count($errors->get_error_messages()) > 0) { return false; } // Define $Card $First $Last $SinLast4 global $wpdb; $Card=$_POST['user_login']; $First=$_POST['first_name']; $Last=$_POST['last_name']; $SinLast4=$_POST['SinLast4']; $result = $wpdb->get_results( "SELECT * FROM custom_table WHERE Card = '$Card' AND First = '$First' AND Last = '$Last' AND SinLast4 = '$SinLast4'"); // $query = "SELECT * FROM custom_table WHERE Card = $Card AND First = $First AND Last = $Last AND SinLast4 = $SinLast4"; // $result = $wpdb->get_results($query); foreach ( $result as $query ) { echo "window.location='http://localhost/dev1/member-registration/';"; // Update URL to registration page header("location: http://localhost/dev1/member-registration/"); // Redirecting To Other Page } // Else, success! return true; } // The callback function for the [cv] shortcode function cv_cb() { $fields = array(); $errors = new WP_Error(); // Buffer output ob_start(); // Custom verification, go! cv($fields, $errors); // Return buffer return ob_get_clean(); } add_shortcode('cv', 'cv_cb');

FORM 2 – Registrierungs-Plugin

  get_error_messages()) > 0) { // Display errors ?> 
    get_error_messages() as $key => $val) { ?>
<form action="" method="post">
<input type="text" name="user_login" value="" >

<input type="text" name="first_name" value="" >

<input type="text" name="last_name" value="" >

<input type="text" name="user_email" value="">

<input type="text" name="email_confirm" value="">


isset($_POST['user_login']) ? $_POST['user_login'] : '', 'first_name' => isset($_POST['first_name']) ? $_POST['first_name'] : '', 'last_name' => isset($_POST['last_name']) ? $_POST['last_name'] : '', 'user_email' => isset($_POST['user_email']) ? $_POST['user_email'] : '', 'email_confirm' => isset($_POST['email_confirm']) ? $_POST['email_confirm'] : '', 'user_pass' => isset($_POST['user_pass']) ? $_POST['user_pass'] : '', 'user_pass_retyped' => isset($_POST['user_pass_retyped']) ? $_POST['user_pass_retyped'] : '' ); } function cr_validate(&$fields, &$errors) { // Make sure there is a proper wp error obj // If not, make one if (!is_wp_error($errors)) $errors = new WP_Error; // Validate form data if (empty($fields['user_login']) || empty($fields['first_name']) || empty($fields['last_name']) || empty($fields['user_email']) || empty($fields['email_confirm']) || empty($fields['user_pass']) || empty($fields['user_pass_retyped'])) { $errors->add('field', 'Please complete the registration form.'); } if (($fields['user_pass'].value) != ($fields['user_pass_retyped'].value)) { $errors->add('user_pass_retyped', 'Those passwords don\'t match!'); } // if (strlen($fields['user_login']) add('username_length', 'Card Number too short. Pleas verify you have entered the entire Card Number'); // } if (username_exists($fields['user_login'])) $errors->add('user_name', 'Sorry, that Card Number has already been registered.'); if (strlen($fields['user_pass']) add('user_pass', 'Password length must be greater than 8'); } if (!is_email($fields['user_email'])) { $errors->add('email_invalid', 'Please verify the email address prior to submitting.'); } if (!is_email($fields['email_confirm'])) { $errors->add('email_confirm_invalid', 'Please verify the email address prior to submitting.'); } if (($fields['user_email'].value) != ($fields['email_confirm'].value)) { $errors->add('email_mismatch', 'Those emails don\'t match!'); } if (email_exists($fields['user_email'])) { $errors->add('email_taken', 'Please use another email address as it appears that one is already in use.'); } // If errors were produced, fail if (count($errors->get_error_messages()) > 0) { return false; } // Else, success! return true; } // Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User($user_id); $hash = md5( $random_number ); add_user_meta( $user_id, 'hash', $hash ); $user_login = stripslashes($user->user_login); $first_name = stripslashes($user->first_name); $user_email = stripslashes($user->user_email); $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\n"; $message .= sprintf(__('First Name: %s'), $first_name) . "\n"; $message .= sprintf(__('E-mail: %s'), $user_email) . "\n"; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); if ( empty($plaintext_pass) ) return; $message = sprintf(__('Hello %s,'), $first_name) . "\n"; $message .= sprintf(__("Thank you for registering at %s."), get_option('blogname')) . "\n"; // $message .= wp_login_url() . "\n"; $message .= sprintf(__('Your account is created and must be activated before you can use it.')) . "\n"; $message .= sprintf(__('To activate the account click on the following link or copy-paste it in your browser:')) . "\n"; $message .= home_url('/').'activate?id='.$un.'&key='.$hash."\n"; $message .= sprintf(__('After activation you may login to %s'), site_url()) . "\n"; $message .= sprintf(__('Here are your Login Credentials:')) . "\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\n"; $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\n"; $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\n"; $message .= sprintf(__('Best Regards, %s'), get_option('blogname')); wp_mail($user_email, sprintf(__('[%s] Member Registration Email Verification'), get_option('blogname')), $message); } } // The callback function for the [cr] shortcode function cr_cb() { $fields = array(); $errors = new WP_Error(); // Buffer output ob_start(); // Custom registration, go! cr($fields, $errors); // Return buffer return ob_get_clean(); } add_shortcode('cr', 'cr_cb');

Frage Wie kann ich die Einträge user_login, first_name & last_name aus dem ersten Formular erhalten, um das zweite Formular aufzufüllen, ohne den validationscode aus Schritt 1 zu verlieren? Bitte geben Sie ein Beispiel an, wenn möglich.

Solutions Collecting From Web of "Wie kann ich Daten von Form 1 zu Form 2 verschieben?"

Ich konnte eine Lösung für mein Problem finden. Hier ist, was ich getan habe, um das Problem zu lösen. Es war ein bisschen herumlaufen und analysierte hauptsächlich, an welcher Stelle Dinge schief gelaufen sind.

Schritt 1. Das größte Problem, das ich hatte, bestand darin, die Informationen von einer Seite auf die andere zu übertragen. Stattdessen habe ich beide Formulare auf der gleichen Seite abgelegt und ein div-Format hinzugefügt, um es anzuzeigen: Keines für das zweite Formular, es wird aus der Browseransicht ausgeblendet.

Schritt 2. Nun, da ich beide Formulare auf der gleichen Seite hatte, habe ich die Echoumleitung als aktuelle Seite für eine erfolgreiche Formularübergabe auf Formular 1 bearbeitet.

Schritt 3. Um das erste Formular auszublenden und das zweite Formular zu enthüllen, habe ich auch ein Stil-Echo in den Erfolgsbereich eingefügt, um Formular 2 und ein anderes Stil-Echo anzuzeigen, um Formular 1 auszublenden.

Für den Besucher produzieren die Formulare nahtlos und alle Informationen von Formular eins werden korrekt in Formular 2 verschoben.

Hier ist mein bearbeiteter Code.

Unter Felder validieren und Fehler erzeugen

 // Validate fields and produce errors if (cv_validate($fields, $errors)) { // If successful, display a message echo ''; echo ''; } 

Dadurch kann sich die erste Form bei Erfolg verstecken und die zweite Form wird angezeigt.

Ich habe auch die classn zu den entsprechenden Formularen und div-Tags hinzugefügt, die die Formulare und voila umgeben, die beiden Plugins kommunizieren perfekt miteinander und der Besucher muss seine Daten auf dem zweiten Formular nicht erneut eingeben, was seinen Registrierungsprozess ein wenig einfacher macht .

Ich hoffe, jemand findet das hilfreich für ihre zukünftigen Projekte. Danke für die Beiträge der Community zu diesem Thema.