Поддержка Проблемы и решения не приходят письма из Contact Form 7

  • Всем доброго времени суток. Скорее всего с такой проблемой сталкивались многие, но не нашел ответ. Установил данный плагин, шорткод вставил в текстовой виджет, тестирую, пишет Ваше письмо отправлено. Но никаких писем не приходит. Установил для пробы WP-Mail-SMTP, письма тестовые на другие почты отправляется. Подскажите что не так?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Вот решение без использование плагинов. Работает.
    Создай новый файл на рабочем столе например с названием 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.

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