Задать вопрос
@Magnet19

Почему не работает форма отправки заявки ajax в wordpress?

Сайт . Проблема в калькуляторе - не отправляет заявку на почту. Форма отправки корректно собирает данные для отправки (можно посмотреть в консоли при нажатии кнопки "отправить"), но не отправляет их. В чем проблема и как решить?
<script type="text/javascript" >
				$(".calc-summ__btn").on("click", function (event) {
        event.preventDefault();
        var form = $("input[name='form']:checked").attr('data-id'),
        		left = $("#output-left").val(),
						top = $("#output-top").val(),
						right = $("#output-right").val(),
        		left_size = $("#output-left").val(),
						top_size = $("#output-top").val(),
						right_size = $("#output-right").val(),
						area,
        		fasad = $(".calc-fasad-option input[type='radio']:checked").attr('data-form'),
        		coll = $(".calc-fasad-option input[name='coll']:checked").attr('data-coll'),
        		dataprice = $(".calc-fasad-option input[name='coll']:checked").attr('data-price');
						price = 45000;

						if (left > 0) {
							left -= 600;
						} else if(left == 600 ){
							left_size = 0;
						} else{
							left = 0;
						}
						if (right > 0) {
							right -= 600;
						} else if(right == 600 ){
							right_size = 0;
						} else{
							right = 0;
						}
						area = (parseFloat(left) + parseFloat(top) + parseFloat(right))*0.6;
						summa = area * parseFloat(price)/1000;
						price = area * parseFloat(dataprice)/1000;
				console.log(form, left_size, top_size, right_size, area, fasad, coll, dataprice, price);

        $.ajax({
            url: "/wp-admin/admin-ajax.php",
            method: 'post',
            data: {
                action: 'ajax_order',
                form: form,
                left: left,
                top: top,
                right: right,
                area: area,
                fasad: fasad,
								coll: coll,
								price: price
            },
            success: function (response) {
                $('#submit-ajax').html(response);
            }
				});
    });
        </script>

Код в function.php
function ajax_form()
{
	$form = $_REQUEST['form'];
	$left = $_REQUEST['left'];
	$top = $_REQUEST['top'];
	$right = $_REQUEST['right'];
	$area = $_REQUEST['area'];
	$fasad = $_REQUEST['fasad'];
	$coll = $_REQUEST['coll'];
	$dataprice = $_REQUEST['dataprice'];
	$price = $_REQUEST['price'];
	$response = '';
	$thm = 'Заявка с сайта Collection';
	$thm = "=?utf-8?b?" . base64_encode($thm) . "?=";
	$msg = "Форма: " . $form . "<br/>
					Размер слева: " . $left . "<br/>
					Размер сверху: " . $top . "<br/>
					Размер справа: " . $right . "<br/>
					Площадь: " . $area . "<br/>
					Фасад: " . $fasad . "<br/>
					Комплектация: " . $coll . "<br/>
					Цена за погонный метр: " . $dataprice . "<br/>
					Итоговая цена: " . $price . "<br/>";
	$mail_to = 'aidarud@mail.ru';
	$headers = "Content-Type: text/html; charset=utf-8\n";
	$headers .= 'От: сайта Collection' . "\r\n";

// Отправляем почтовое сообщение

	if (mail($mail_to, $thm, $msg, $headers)) {
		$response = 'Заявка успешна отправлена';
	} else
		$response = 'Ошибка при отправке заявки';

// Сообщение о результате отправки почты

	if (defined('DOING_AJAX') && DOING_AJAX) {
		echo $response;
		wp_die();
	}
}
add_action('wp_ajax_nopriv_ajax_order', 'ajax_form');
add_action('wp_ajax_ajax_order', 'ajax_form');
  • Вопрос задан
  • 581 просмотр
Подписаться 2 Простой 2 комментария
Решения вопроса 1
alex-1917
@alex-1917
Если ответ помог, отметь решением
Используй либу для отправки через smtp!
Тыщу раз уже жевали\. что функция mail.php полностью заблокирована на гмайл и майл-ру
Немного пашет на яше, но до поры до времени, начнешь посылать 20 в день - сначала свалится в спам, а дальше всё.
Я уже раз пять тут выкладывал ссылку на гит, если аллергия на поиск, то увы и ах, у меня аллергия на повторять одно и тоже...

встретились как-то два аллергика....
)))
UPD. (тут один дотошный пристебался) - для упрощения понимания ответа и в целях незасорения ответа спец. терминами допустил упрощение, а именно - проблемную для одного дотошного строку следует читать так:
Письма, отправленные функцией mail.php, автоматически удаляются без уведомления пользователя почтового сервиса, это касается таких почтовых БЕСПЛАТНЫХ сервисов, как GMAIL.com & MAIL.ru.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 дек. 2024, в 11:07
10000 руб./за проект
23 дек. 2024, в 10:43
5000 руб./за проект
23 дек. 2024, в 10:32
2000 руб./за проект