Como posso mover dados do formulário 1 para formulário 2

Eu tenho um registro de site de 2 passos para o meu site WordPress.

COMEÇA A EDITAR

O primeiro passo / formulário é um plugin de formulário de verificação de front-end que eu criei que verifica um custom_table para verificar se o visitante faz parte do custom_table.

O segundo passo / formulário é um plugin de formulário de registro do frontend que eu construí, que eu usei o mesmo “nome” em 3 dos campos como na primeira forma, bem como ecoei os primeiros campos de input de formulários no valor da segunda input de formulários Campos.

END EDIT

O que eu estou tentando fazer é ter os dados do formulário de 3 campos na primeira forma preencher os 3 campos no segundo formulário.

Eu tentei adicionar o segundo url à área de ação do formulário e combinou os nomes do formulário que preencheram com sucesso os dados no segundo formulário, no entanto, ao fazer isso, minha validação deixou de funcionar no primeiro formulário. Como tal, eu descartei essa ideia.

Agora, eu também editei o código para refletir as mudanças que fiz com os comentários de hwl abaixo e gostaria de mais informações, como agora estou vendo o script de validação está funcionando, mas quando você inseriu as informações bem-sucedidas, o formulário ainda não está carregando as informações no segunda página. Mas não há erros fatais, então, isso é bom, lol.

COMEÇA EDITAR – MOSTRAR AS FORMAS COMPLETAS

FORMULÁRIO 1 – Plugin de Verificação

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');

FORMULÁRIO 2 – Plugin de registro

  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');

Pergunta Como posso obter as inputs user_login, first_name e last_name do primeiro formulário para preencher o segundo formulário sem perder o código de validação da etapa 1? Forneça um exemplo, se possível.

Solutions Collecting From Web of "Como posso mover dados do formulário 1 para formulário 2"

Consegui encontrar uma solução para o meu problema. Aqui é o que eu fiz para resolver o problema. Foi um pouco de um passeio e principalmente analisando em que ponto as coisas deram errado.

Passo 1. Estabeleceu que o maior problema que eu estava tendo era mover as informações de uma página para outra. Então, em vez disso, deixei cair ambos os formulários na mesma página, adicionando um estilo div para exibir: nenhum para o segundo formulário, escondendo-o na visualização dos navegadores.

Passo 2. Agora que eu tinha ambos os formulários na mesma página, editei o redirecionamento de eco para ser a página atual em um envio de formulário bem-sucedido no formulário 1.

Etapa 3. Para ocultar o primeiro formulário e revelar o segundo formulário, eu calei um eco de estilo para a área de sucesso, para exibir o formulário 2 e outro eco de estilo para esconder o formulário 1.

Para o visitante, os formulários produzem perfeitamente e todas as informações da forma um estão se movendo corretamente para a forma 2.

Aqui está o meu código editado.

Em Validar campos e produzir erros

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

Isso permite que o primeiro formulário ocorra no sucesso e o segundo formulário a revelar.

Eu também adicionei as classs aos formulários correspondentes e as tags div relacionadas aos formulários e voila, os dois plugins se comunicam perfeitamente um com o outro e o visitante não precisa voltar a inserir seus dados no segundo formulário tornando seu processo de registro um pouco mais fácil .

Espero que alguém ache que isso seja útil para seus projetos futuros. Obrigado pela contribuição das comunidades neste tópico.