@alexiusgrey

Как правильн сделать редирект на страницу «спасибо» с кастомной контактной формы?

Сайт на вордпресс, но контактная форма самописная, не contact form 7, и не популярная ajax-форма.
Экшен ведет на отдельный файл.
Код формы
<form action="<?php echo get_template_directory_uri(); ?>/data.php" method="post" id="form2">
							<ul class="clearfix">
								<li><input type="text" name="nameUser" class="required" placeholder="Как вас зовут?"></li>
								<li><input type="tel" name="phoneUser" class="required phone" placeholder="Ваш телефон"></li>
							</ul>
							<div class="btn-container clearfix">
								<div class="wrap-btn-right">
                  				<input type="hidden" name="letter_act" value="<?php echo get_field('letter_action', 'option'); ?>">
									<button class="btn-gen" type="submit">Отправить заявку</button>
								</div>
								<!--
								<div class="wrap-btn-left">
									<a href="https://wa.me/<?php echo get_field('ssylka_na_chat_whatsapp', 'option'); ?>" class="link-mess">Написать в What'sApp</a>
								</div>
								-->
							</div>
						</form>

Код data.php
<!DOCTYPE html>
<html>
<head>
<title>Отправка заявки</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
html {width: 100%;height: 100%;}
</style>
</head>
<body>
<?php

ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);

$to = "$_POST[letter_act]";
$from = "noreply@".$_SERVER['SERVER_NAME'];
$subject = '=?utf-8?B?'.base64_encode('Новая заявка:').'?=';
$headers .= 'Return-path: <' . $from . ">\r\n";
$headers .= 'From: заявка <' . $from . ">\r\n";
$headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$message = "Имя: $_POST[nameUser]\n\nТелефон: $_POST[phoneUser]";
$mail = mail($to, $subject, $message, $headers);
if ($mail) {
echo "<body style='background: url(wp-content/themes/pzk-theme/img/bg-general.jpg) no-repeat center; background-size:cover;'><div style='width:260px;height:275px;margin:100px auto;background: #fff;color:#0F5F6A;text-align:center;padding:40px 30px 0;font-size: 130%;font-family: Arial,sans-serif;box-shadow:0 10px 15px rgba(0,0,0, .5);'><p>Форма успешно заполнена и отправлена! Мы обязательно свяжемся с Вами. Спасибо!</p><p><a href='/' style='display:block;padding:10px 25px;margin: 10px 0 0;font-size:80%;background:#ff530e;border-radius:90px;border-bottom: 5px solid #d1450a;color:#fff;text-decoration:none;width:100px;margin:40px auto 0;'>На главную</a></p></div>";
}
else {
	echo "<body style='background: #fff;'><div style='width:260px;height:275px;margin:100px auto;background: #fff;color:#282828;text-align:center;padding:40px 30px 0;border: 1px solid #c0c0c0;border-radius:10px;font-size: 130%;font-family: Arial,sans-serif;box-shadow:0 10px 15px rgba(0,0,0, .5);'><p>Произошла ошибка! Повторите попытку позже.</p><p><a href='index.html' style='display:block;padding:10px 25px;background:#00b5a0;border-radius:5px;color:#fff;text-decoration:none;text-shadow:1px 1px 1px #000;width:100px;margin:40px auto 0;'>На главную</a></p></div>";
}
?>
</body>
</html>


Не так часто попадаются темы с самописными формами, но вот попалась, помогите пожалуйста разобраться, потому что я как раз таки люблю изучать самописное.
Правильно ли я понимаю - надо в самом файле data.php прописать редирект на страницу "спасибо"?

На какой хук в таком случае цеплять функцию с редиректом? Кажется mailsend или sendmail есть и без contact form 7?
Буду очень благодарен или за пример, или за материал. На примерах понимаю хорошо, на функциях ядра из кодекса с голыми переменными - плохо. Думаю хоть случай самописа и редкий, но не единичный, и кто-то такое уже делали.
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы