Поддержка Проблемы и решения Ajax форма отправки данных не рабоатет

  • Ребята привет! Гляньт, кто шарит, код, что я не так делаю, не прилетает форма на почту:
    HTML:

    <form name="sign-content" id="sign-content" class="sign_form">
    	<input type="text" name="sign" placeholder="Ваш Email..." class="sign_field_input">
    	<div class="envelope_sign subscribe_form_submit">
    		<i class="far fa-envelope"></i>
    	</div>
    </form>

    Ajax:

    $(".subscribe_form_submit").click(function(e){
            e.preventDefault();
    	var email = $(".sign_field_input").val();
    	if (!($(".sign_field_input").val() == '') && !($(".subscribe_warning").css("display") == "block") && !($(".sign_field_input").css("border-color") == "rgb(255, 85, 82)")) {
    	console.log(email);
    			
    	$.ajax({
    		url: "/wp-admin/admin-ajax.php",
    		type: "POST",
    		data: ({
    			action: 'ajax_subscribe_form',
    			email: email
    		}),
    		success: funcThankYou,
    		error: funcSubscribeError
    		});			
    		}
            });

    PHP:

    function ajax_subscribe_form () {
        $to = "yahistoroomru1988@yandex.by";
        $from = htmlspecialchars($_REQUEST["email"]);
        $subject = "Подписка";
        $subject = "=?utf-8?b?". base64_encode($subject) ."?=";
        $message = "Email на подписку: $from";
        $headers = "From: $from\r\nReply-to: $to\r\nContent-type: text/html; charset=utf-8\r\n";
        mail($to, $subject, $message, $headers);
        wp_die();
    }
    add_action('wp_ajax_ajax_subscribe_form', 'ajax_subscribe_form');
    add_action('wp_ajax_nopriv_ajax_subscribe_form', 'ajax_subscribe_form');

    Прикол, в том, что форма срабатывает, console.log(email) выводится, если меняю в PHP $from = htmlspecialchars($_REQUEST[«sign»]) (sign — идентификатор инпута в форме) на почту прилетает, но без значения поля. В данном варианте в консоль выводится, ошибок не выдаёт, но на почту не прилетает. Пробовал через serialize() сделать, форму разбирает в консоль выводит массив, всё нормально без ошибок, но на почту всё равно не шлёт какого-то икса. Кто шарит, подскажите пожалуйста, затуп точно в приёме параметра email, может я уже от перегрева чего то элементарного не замечаю. Заранее спасибо!

    • Тема изменена 5 лет назад пользователем romveld.
    • Тема изменена 5 лет назад пользователем romveld.
    • Тема изменена 5 лет назад пользователем romveld.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Привет.

    если меняю в PHP $from = htmlspecialchars($_REQUEST[«sign»]) (sign — идентификатор инпута в форме) на почту прилетает, но без значения поля.

    Ну я бы тогда попробовать переименовать email, например, в your_email
    your_email: email
    и
    $from = htmlspecialchars($_REQUEST["your_email"]);

    Автор romveld

    (@romveld)

    Короче разобрался, всё заработало. В заголовках письма стоял отпрваитель — принимаемая из поля переменная, поменял на иксированный адрес почты хостинга, начали прилетать.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Ajax форма отправки данных не рабоатет» закрыта для новых ответов.