Ajax-форма, белый экран, в чем ошибка?
-
Знать бы — я ошибаюсь в коде или очередная опечатка. Оно переходит при клике на site-name.com/wp-admin/admin-ajax.php?action=send_mail, но белый экран. В консоли Unchecked runtime.lastError: The message port closed before a response was received. site-name.com/wp-admin/admin-ajax.php?action=send_mail
HTML формы:<form id="pp_booking_form" method="post" action="<?php echo admin_url('admin-ajax.php?action=send_mail') ?>" > <input type="hidden" id="action" name="action" value="pp_booking_mailer"> <input type="hidden" id="tour_title" name="tour_title" value="East Europe"> <input type="hidden" id="tour_url" name="tour_url" value="index.php"> <div class="one_half"> <label for="first_name">First Name</label> <input id="first_name" name="first_name" type="text" class="required_field" required> </div> <div class="one_half last"> <label for="last_name">Last Name</label> <input id="last_name" name="last_name" type="text" class="required_field" required> </div> <br class="clear"> <br> <div class="one_half"> <label for="email">Email</label> <input id="email" name="email" type="text" class="required_field" required> </div> <div class="one_half last"> <label for="phone">Phone</label> <input id="phone" name="phone" type="text"> </div> <br class="clear"> <br> <div class="one"> <label for="message">Additional Message</label> <textarea id="message" name="message" rows="7" cols="10" required></textarea> </div> <br class="clear"> <div class="one"> <p> <input id="booking_submit_btn" type="submit" value="Book By Email"> </p> </div> </form> JQuery jQuery(document).ready(function($) { var form = $('#pp_booking_form'); var action = form.attr('action'); form.on('submit', function(event) { var formData = { first_name: $('#first_name').val(), last_name: $('#last_name').val(), email: $('#email').val(), phone: $('#phone').val(), message: $('#message').val() }; $.ajax({ url: action, type: 'POST', data: formData, error: function() { form.html("Ваш тур не забронирован"); }; sussess: function() { form.html("Ваш тур забронирован"); } }); event.preventDefault(); }); }); В functions.php подключается так wp_enqueue_script( 'form_js', get_template_directory_uri() . '/assets/js/form.js', null, ['jquery'], true); Ниже в том же файле функций это: add_action( 'wp_ajax_send_mail', 'send_mail' ); add_action( 'wp_ajax_nopriv_send_mail', 'send_mail' ); function send_mail() { $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email = $_POST['email']; $phone = $_POST['phone']; $message = $_POST['message']; $to = get_option( 'admin_email'); $subject = 'Письмо без темы'; remove_all_filters( 'wp_mail_from'); remove_all_filters( 'wp_mail_from_name' ); $headers = array( 'From: Me Myself <me@example.net>', 'content-type: text/html', 'Cc: John Q Codex <jqc@wordpress.org>', 'Cc: iluvwp@wordpress.org', // тут можно использовать только простой email адрес ); wp_mail( $to, $subject, $message, $headers ); wp_die(); }; Верстал не я, и на самом деле я не знаю что значат эти поля <input type="hidden" id="action" name="action" value="pp_booking_mailer"> <input type="hidden" id="tour_title" name="tour_title" value="East Europe"> <input type="hidden" id="tour_url" name="tour_url" value="index.php"> Но даже если их закомментировать, то белый экран. Помогите разобраться пожалуйста!
Просмотр 8 ответов — с 1 по 8 (всего 8)
Просмотр 8 ответов — с 1 по 8 (всего 8)
- Тема «Ajax-форма, белый экран, в чем ошибка?» закрыта для новых ответов.