Windhack
@Windhack
developer

Как настроить форму обратной связи для сайта wordpress?

Доброго времени суток! Хочу сделать форму обратной связи для сайта, без использования плагинов. Накидал код в шаблон страницы (допустим page.php):
<form role="form" class="callback-form" action="<?php get_template_directory(); ?>/send.php" method="POST">
	<input type="text" name="name" class="form-control" placeholder="Ваше имя">
	<input type="text" name="ephone" class="form-control" placeholder="Ваш телефон или e-mail" required>
	<textarea name="question" class="form-control" rows="5" placeholder="Ваш вопрос"></textarea>
	<input type="submit" class="callsub">
</form>

Создал файл send.php и закинул в папку с темой, в котором такой код:
<?php 
	$adminemail="example@mail.com";
	$date=date("d.m.y");
	$time=date("H:i");
	$name=$_POST['name'];
	$ephone=$_POST['ephone'];
	$question=$_POST['question'];

	$msg="
	<p>Имя: $name</p>
	<p>Телефон: $ephone</p>
	<p>Вопрос: $question</p>
	";

	$send = mail("$adminemail", "$date $time Обратный звонок (Site)", "$msg");

	if ($send == 'true') {
		echo "Спасибо, Ваше сообщение отправлено";
	} else {
		echo "Сообщение не отправлено! Что то не так..";
	}
?>


После сабмита пишет "страница не найдена", шаблон 404, сообщение не приходит... В чем может быть проблема?
Есть еще один прикол, когда не вводить имя в форму, то переходит на страницу блога... Наперед спасибо!
  • Вопрос задан
  • 621 просмотр
Решения вопроса 1
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
Проблема в том, что wordpess не видит этот файл. Тут есть два варианта:
1)Зарезервировать его в wordpress: В начале вашего PHP файла отправки задать ему имя шаблона в виде комментария, например :
<?php 
/*
Template Name: Email Send
*/
  $adminemail="example@mail.com";
  $date=date("d.m.y");
  $time=date("H:i");
  $name=$_POST['name'];
  $ephone=$_POST['ephone'];
  $question=$_POST['question'];
....

После чего зайти в админку, создать там страницу, и прописать адрес, например /send. Выбрать справа внизу шаблон который мы только создали Email Send, вписать любой контент что бы он не был пустым и сохранить. Теперь в action формы вам нужно будет указать путь до этой страницы. Вот так сработает отправка в связке с WP.

2) Закинуть ваш файл в корень сайта WP и прописать к нему путь!

Удачи
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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