Поддержка → Проблемы и решения → не приходят письма из Contact Form 7
не приходят письма из Contact Form 7
-
Всем доброго времени суток. Скорее всего с такой проблемой сталкивались многие, но не нашел ответ. Установил данный плагин, шорткод вставил в текстовой виджет, тестирую, пишет Ваше письмо отправлено. Но никаких писем не приходит. Установил для пробы WP-Mail-SMTP, письма тестовые на другие почты отправляется. Подскажите что не так?
-
Вот решение без использование плагинов. Работает.
Создай новый файл на рабочем столе например с названием contact.php
В самом начале файла вставь это:<?php /* Template Name: Форма обратной связи */ ?>
Далее открой файл single.php который находиться у тебя в теме Вордпресса и скопируй весь код с single.php в contact.php
Далее в contact.php удали всё что находиться от
<?php while ( have_posts() ) : the_post(); ?>
до
<?php endwhile; ?>
включая эти строчки.Теперь к делу.
На место того что мы удалили вставь это:<?php if(isset($_POST['submitted'])) { if(trim($_POST['contact_name']) === '') { $nameError = 'Введите ваше имя'; $hasError = true; } else { $name = trim($_POST['contact_name']); } if(trim($_POST['contact_email']) === '') { $emailError = 'Введите e-mail'; $hasError = true; } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['contact_email']))) { $emailError = 'Не верный адрес.'; $hasError = true; } else { $email = trim($_POST['contact_email']); } if(trim($_POST['contact_theme']) === '') { $themeError = 'Введите тему '; $hasError = true; } else { $theme = trim($_POST['contact_theme']); } if(trim($_POST['contact_comments']) === '') { $commentError = 'Введите сообщение'; $hasError = true; } else { if(function_exists('stripslashes')) { $comments = stripslashes(trim($_POST['contact_comments'])); } else { $comments = trim($_POST['contact_comments']); } } if(!isset($hasError)) { $emailTo = get_option('tz_email'); if (!isset($emailTo) || ($emailTo == '') ){ $emailTo = get_option('admin_email'); } $subject = 'Сообщение с сайта от '.$name; $body = "Имя: $name \n\nE-mail: $email \n\nТема: $theme \n\nСообщение: $comments"; $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email; wp_mail($emailTo, $subject, $body, $headers); $emailSent = true; } } ?> <div id="contact_form"> <?php if(isset($emailSent) && $emailSent == true) { ?> <div class="contact_message">Ваше сообщение успешно отправлено!</div> <?php } else { ?> <?php if(isset($hasError) || isset($captchaError)) { ?> <?php } ?> <form action="<?php the_permalink(); ?>" id="contactForm" method="post"> <div class="contact_left"> <div class="contact_name"> <input type="text" placeholder="Ваше имя" name="contact_name" id="contact_name" value="<?php if(isset($_POST['contact_name'])) echo $_POST['contact_name'];?>" class="required requiredField" /> <?php if($nameError != '') { ?> <div class="errors"><?=$nameError;?></div> <?php } ?> </div> <div class="contact_email"> <input type="text" placeholder="Ваш email" name="contact_email" id="contact_email" value="<?php if(isset($_POST['contact_email'])) echo $_POST['contact_email'];?>" class="required requiredField email" /> <?php if($emailError != '') { ?> <div class="errors"><?=$emailError;?></div> <?php } ?> </div> <div class="contact_theme"> <input type="text" placeholder="Тема" name="contact_theme" id="contact_theme" value="<?php if(isset($_POST['contact_theme'])) echo $_POST['contact_theme'];?>" class="required requiredField" /> <?php if($themeError != '') { ?> <div class="errors"><?=$themeError;?></div> <?php } ?> </div> </div> <div class="contact_right"> <div class="contact_textarea"> <textarea placeholder="Сообщение" name="contact_comments" id="commentsText" rows="12" cols="56" class="required requiredField"><?php if(isset($_POST['contact_comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['contact_comments']); } else { echo $_POST['contact_comments']; } } ?></textarea> <?php if($commentError != '') { ?> <div class="errors"><?=$commentError;?></div> <?php } ?> </div> <button type="contsubmit" class="contact_submit">Отправить</button> <input type="hidden" name="submitted" id="submitted" value="true" /> </div> </form> <?php } ?> </div>
Теперь сохрани файл contact.php и залей его на сервер с темой.
Далее в админке вордпресса создай новую страницу например с названием Связь с администрацией, на этой же странице есть колонка Атрибуты страницы там тебе надо выбрать шаблон страницы с названием Форма обратной связи и сохрани страницу. Теперь можешь перейти на эту страницу и проверить работает ли форма, кстати не забудь в настройках вордпресса указать емаил куда должны доходить письма. А со стиля думаю сам разберешься=)Успехов!
что угодно может быть.
например, на nic.ru при превышении сайтом определенного количества потребляемой памяти функция mail начинает глючить (у них про это даже в FAQ написано). помогает установка WP-SMTP.
- Тема «не приходят письма из Contact Form 7» закрыта для новых ответов.