JQuery Ajax отправляет данные из контактной формы 7 многоступенчатой ​​формы Wordpress - PullRequest
0 голосов
/ 30 мая 2018

Я хочу отправить данные из контактной формы 7 Многошаговая форма в php файле.Каждый шаг имеет 1-4 поля.Поэтому я хочу, чтобы те же данные, которые отправлялись по электронной почте, отправлялись и в php файл.Данные, которые отправляются на электронную почту, таковы:

Internet: [radio-internet]
Mobile: [radio-mobile]
Provider: [radio-provider]
Surname: [your-surname]
Name: [your-name]
Email: [your-email]
Phone: [your-phone]
Hours: [radio-hours]

Я пробовал что-то подобное, но не работает:

<script type="text/javascript">
document.addEventListener( 'wpcf7submit', function( event ) {
    //Form
    var inputs = event.detail.inputs;

    for ( var i = 0; i < inputs.length; i++ ) {
    if ( 'radio-internet' == inputs[i].name &&  'radio-mobile' == inputs[i].name &&  && 'radio-provider' == inputs[i].name && 'your-surname' == inputs[i].name &&  'your-name' == inputs[i].name  &&  'your-email' == inputs[i].name  &&  'your-phone' == inputs[i].name  &&  'radio-hours' == inputs[i].name ) {
        jQuery.ajax({
            url  : 'process.php', // the url where we want to POST 
            type : 'post',
            data :  inputs,
            success : function( response ){
                console.log(response);
                console.log('lead inserted');
            },
            error : function(e1, e2, e3){
                console.log(e1);
                console.log(e2);
                console.log(e3);
            }
        });
        console.log( event.detail );
    }

}, false );
</script>

Внимание: каждое поле должно идти в другое поле в файле php

$data = array(
"lastname" => "" . $_POST['surname'], //surname
"firstname" => "" . $_POST['name'], //name
"mobile" => "" . $_POST['phone'], //mobile
"email" => "" . $_POST['email'], //email
);

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Попробуйте использовать событие wpcf7mailsent, оно работает для меня.

document.addEventListener( 'wpcf7mailsent', function( event ) {

            var inputs = event.detail.inputs;


                var username = document.getElementById('username').value; // OR jQuery( "#username" ).val();

                var email = document.getElementById('email').value; // OR jQuery( "#email" ).val();


                jQuery.ajax({
                   url  : <?php echo admin_url('admin-ajax.php'); ?>, // the url where we want to POST 
                type : 'post',
                data :  {action:second_form,username:username,email:email},
                success : function( response ){
                    console.log(response);

                },
                  error: function(response) {
                    console.log(response);
                  },
                });
                alert('hi');


        }, false );

Функция действия Ajax

add_action('wp_ajax_second_form' , 'second_form');
add_action('wp_ajax_nopriv_second_form','second_form');
function second_form(){
echo $_POST['username'];
echo $_POST['email'];
//do for second form
}
0 голосов
/ 30 мая 2018

Для этого вы можете использовать контактную форму 7. Перед пересылкой электронной почты.

Сейчас я просто сохранил данные в одном текстовом файле, вы можете добавить свою логику здесь.

 add_action( 'wpcf7_before_send_mail', 'd_before_send_email' );

 function d_before_send_email($cf7) {
    $output = "";
    $output .= "Name: " . $_POST['name'];
    $output .= "Email: " . $_POST['email'];       

    file_put_contents("contactform7output.txt", $output);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...