хочу создать форму отправки меила со страницы поста
Можно использовать специально предназначенные для этого плагины — например, Contact Form 7.
Sergey Biryukov, извините, но мне не нужен плагин. Я написал форму и она почему-то не работает. Мне интересно в чем проблема
-
Ответ изменён 7 лет, 11 месяцев назад пользователем mrguseynov.
-
Ответ изменён 7 лет, 11 месяцев назад пользователем mrguseynov.
после первой посылки почты, при обновление страницы, посылается повторное письмо
После отправки можно сделать перенаправление на ту же страницу, чтобы очистить массив $_POST
. Перенаправления срабатывают только до вывода на экран, поэтому код проверки и отправки стоит перенести в начало шаблона, а лучше — вынести в функцию и привязать к действию init
.
не работает четвертый параметр меила
В чём это выражается? Проверил скрипт на локальной установке — заголовки From
и Reply-To
попадают в письмо и соответствуют заданным.
и не работает четвертый параметр меила. Т.е.
$headers = 'From: My Site <'.$from.'>'
Вангую что хостер озабочен ограничением спама и безопасностью, поэтому From
, не принадлежащий домену идёт на прогулку.
но мне не нужен плагин.
И категорически зря!
Может кому-то понадобится`<?php
$to = ‘меил’;
$error=0;
echo ‘
<form enctype=»multipart/form-data» method=»post» action=»/’.str_replace(network_home_url(), », get_permalink()) .'» id=»contactform»>
<label for=»isk_name»>’.__( ‘Name’, ‘twentyten’ ). ‘:</label>
<input class=»form-control» type=»text» name=»isk_name»>
<label for=»isk_surname»>’.__( ‘Surname’, ‘twentyten’ ). ‘:</label>
<input class=»form-control» type=»text» name=»isk_surname»>
<label for=»emailfrom»>Email:</label>
<input class=»form-control» type=»email» name=»emailfrom»>
<label for=»subjectsubjectsubject»>’.__( ‘Subject’, ‘twentyten’ ). ‘:</label>
<input class=»form-control» type=»text» name=»subject»>
<label for=»message»>’.__( ‘Additional information’, ‘twentyten’ ). ‘:</label>
<textarea rows=»5″ cols=»50″ name=»message» id=»message» class=»form-control»></textarea>
<button class=»btn btn-primary btn-lg btn-block btn-ex» type=»submit» name=»isk_submit»>’.__( ‘Send’, ‘twentyten’ ). ‘</button>
</form>
‘;
if (isset($_POST[‘isk_submit’])){
get_header();
if(trim($_POST[’emailfrom’]) == ») {
$error=1;
} else {
$from = trim($_POST[’emailfrom’]);
}
if(trim($_POST[‘subject’]) == ») {
$error=1;
}else {
$subject = trim($_POST[‘subject’]);
}
if(trim($_POST[‘isk_name’]) == ») {
$error=1;
}else {
$isk_name = trim($_POST[‘isk_name’]);
}
if(trim($_POST[‘isk_surname’]) == ») {
$error=1;
}else {
$isk_surname = trim($_POST[‘isk_surname’]);
}
if(trim($_POST[‘message’]) == ») {
$error = 1;
} else {
if(function_exists(‘stripslashes’)) {
$comments = stripslashes(trim($_POST[‘message’]));
} else {
$comments = trim($_POST[‘message’]);
}
}
if ($error==1) {
echo ‘<script type=»text/javascript»>alert(«Error»)</script>’;
}else {
$body = ‘
<div style=»-moz-box-sizing: border-box;box-sizing: border-box;»>
<div style=»background:#00abd7;text-align:center;-moz-box-sizing: border-box;box-sizing: border-box;padding:10px 0;color:#fff;»>’.__( ‘Order’, ‘twentyten’ ). ‘</div>
<div style=»width:30%; border:1px solid #ccc; border-top:none; float:left; padding: 8px; -moz-box-sizing: border-box; box-sizing: border-box;»>’.__( ‘Name’, ‘twentyten’ ). ‘</div>
<div style=»border-right:1px solid #ccc; border-bottom:1px solid #ccc; padding: 8px; margin: 0 0 0 30%; -moz-box-sizing: border-box; box-sizing: border-box;»>$isk_name</div>
<div style=»width:30%; border:1px solid #ccc; border-top:none; float:left; padding: 8px; -moz-box-sizing: border-box; box-sizing: border-box;»>’.__( ‘Surname’, ‘twentyten’ ). ‘</div>
<div style=»border-right:1px solid #ccc; border-bottom:1px solid #ccc; padding: 8px; margin: 0 0 0 30%; -moz-box-sizing: border-box; box-sizing: border-box;»>$isk_surname</div>
<div style=»width:30%; border:1px solid #ccc; border-top:none; float:left; padding: 8px; -moz-box-sizing: border-box; box-sizing: border-box;»>’.__( ‘Email’, ‘twentyten’ ). ‘</div>
<div style=»border-right:1px solid #ccc; border-bottom:1px solid #ccc; padding: 8px; margin: 0 0 0 30%; -moz-box-sizing: border-box; box-sizing: border-box;»>$from</div>
<div style=»width:30%; border:1px solid #ccc; border-top:none; float:left; padding: 8px; -moz-box-sizing: border-box; box-sizing: border-box;»>’.__( ‘Subject’, ‘twentyten’ ). ‘:</div>
<div style=»border-right:1px solid #ccc; border-bottom:1px solid #ccc; padding: 8px; margin: 0 0 0 30%; -moz-box-sizing: border-box; box-sizing: border-box;»>$subject</div>
<div style=»width:30%; border:1px solid #ccc; border-top:none; float:left; padding: 8px; -moz-box-sizing: border-box; box-sizing: border-box;»>’.__( ‘Additional information’, ‘twentyten’ ). ‘</div>
<div style=»border-right:1px solid #ccc; border-bottom:1px solid #ccc; padding: 8px; margin: 0 0 0 30%; -moz-box-sizing: border-box; box-sizing: border-box;»>$comments</div>
<div style=»clear:both»></div>
</div>
‘;
$headers .= «MIME-Version: 1.0\r\n»;
$headers .= «Content-Type: text/html; charset=utf-8\r\n»;
wp_mail($to, $subject, $body, $headers);
?>
<script type=»text/javascript»>document.location.href=»<?php echo get_permalink(); ?>»;</script>
<?php
exit;
}
}
?>`