Решение проблем с отправкой данных формы в Cforms

В процессе работы с плагином Cforms можно столкнуться со следующей проблемой. Допустим, вы настроили свою форму и вывели ее на экран. Она отлично выглядит, однако как только вы заполняете ее и щелкаете по кнопке «Отправить», данные не передаются на почту. Вместо этого на экран выдается стандартное сообщение «One moment please», и ничего не происходит.

Сразу стоит сделать небольшое примечание: если вы хотите протестировать отправку писем через WAMP Server, то в таком случае вам необходимо корректно настроить ваш локальный сервер. Решение проблем с отправкой писем через WAMP.

Общее решение этой проблемы состоит в отключении режима Ajax для вашей формы. Даже если форма нормально работает в Firefox, она может не работать в IE. Нужно обязательно протестировать вывод формы в разных браузерах.

Если же форма все равно не хочет отправляться (даже с отключенным Ajax), значит имеются проблемы либо с правами доступа к файлам/папкам, либо с путем в конфигурационных файлах.

Первое, что необходимо сделать, чтобы решить проблему – это убедиться в том, что у вас установлены корректные права доступа к директории cforms, которая может быть найдена по адресу:

/wp-content/plugins/cforms/

Права доступа к каталогу (и ко всем остальным папкам) должны быть 0755.

Теперь вы можете деактивировать и снова активировать плагин.

Протестируйте работу формы, предварительно очистив кэш браузера и перезапустив сам браузер.

Сработало?

Если проблема была решена деактивацией и повторной активацией плагина – прекрасно. Если же данное действие не помогло, давайте посмотрим на другие пути решения проблемы.

Зачастую все сложности возникают при переносе форм с одного сервера на другой – это может приводить к появлению в конфигурационных файлах путей, указывающих на некорректные/несуществующие директории.

Конфигурационные файлы

Откройте файл:

/wp-content/plugins/cforms/abspath.php

Проверьте данный файл и убедитесь в том, что путь задан корректно. Если вы не знаете, какой путь нужно указывать к вашему веб-сайту, обратитесь в службу поддержки своего провайдера.

Этот путь часто заканчивается наклонной чертой вправо «/».

Вы можете легко проверить корректность данного пути: просто введите соответствующий URL-адрес в строку браузера. Если путь задан верно, вы должны получить пустую страницу.

http://yoursite.com/wp-content/plugins/cforms/lib_ajax.php

Если же вы получили сообщение об ошибке в php, значит ваш путь в abspath.php задан некорректно. Вам нужно либо полностью изменить его, либо добавить в его конец наклонную черту.

Если вы получили пустую страницу, можно двигаться дальше.

Следующий файл для проверки путей:

/wp-content/plugins/cforms/js/cforms.js

Этот файл должен изменяться автоматически после деактивации и повторной активации плагина. В любом случае вам нужно проверить его значения. В первой строке (после всех комментариев) должен содержаться абсолютный путь. Относительный путь тоже может работать, однако зачастую абсолютный путь позволяет решить проблему.

var sajax_uri = 'http://yoursite.com/wp-content/plugins/cforms/lib_ajax.php';

Не забывайте всегда чистить кэш браузера и перезапускать браузер после внесенных изменений.

Источник: edgethreesixty.com

Блог про WordPress
Комментарии: 39
  1. Евгения

    Добрый день!
    У меня проблема с Cforms такая: после заказа в интернет-магазине письмо уходит куда нужно, но не с ящика магазина (создан на базе гугл), а с моего личного, на котором создавался сайт. В основных настройках и сайта, и Cforms меняла личный адрес на корпоративный, не помогает. Чем это можно вылечить?
    Заранее спасибо!

  2. Дмитрий (автор)

    Если в плагине не устанавливается, то посмотрите, какой стоит в Консоли:

    Параметры — Общие — Адрес email.

  3. Евгения

    Поменяла давно, не помогает((

    1. Дмитрий (автор)

      В голову приходит только одно решение — попробовать его деактивировать и активировать снова. В крайнем случае еще можно попробовать отключить Ajax для формы, потому что порой из-за этого возникает много проблем. Если и это не поможет, тогда я пас.

  4. Евгения

    Спасибо))

  5. Наталья

    Добрый вечер! У меня сложилась проблема с плагином и совсем уже не знаю как ее решить может вы что посоветуете. На сайте установлен интернет магазин на основе плагина wp-shop , для корзины- отправки заказов в этом плагине устанавливается форма отправки с cforms, при заказе товара плагин отправляет с корзины заказ корректно, с перечислением товара суммы и всех полей формы. Тут мне понадобилось поставить еще одну форму на другую страницу, я создала в плагине cforms еще форму установила ее на страницу, а при отправки сообщений с нее мне на почту приходит заказ и с корзины пустой, и с той формы что отправляю но тоже поля пустые. Тоесть приходят сообщения сразу со всех форм размещеных на сайте((( И со второй созданной мною формы приходят сообщения пустые((( Может сталкивались с этой проблемой, буду очень признательна если есть ответ! Заранее блгодарю!

  6. Егор

    Страдал и бился с Cform2 целый день. Письма не отправляла форма хоть ты ей тресни! Это продолжалось до тех пор, пока не попал на Ваш сайт! Спасибо! Оказывается все просто — установить права для папки 755.
    Новых подписчиков Вам и побольше!

  7. Евгений

    Здравствуйте. Подскажите пожалуйста одну вещь? Сообщения отправляются нормально, только вместо «Спасибо за комментарий» пишет «РЎРїР°СЃРёР±Рѕ Р·Р° комментарий!». Подскажите что и где нужно дописать или исправить?

    1. Дмитрий (автор)

      Посмотрите, во-первых, вот это руководство: https://oddstyle.ru/veb-razrabotka/otpravka-pisem-cherez-localhostwamp-server-na-pochtu-gmail-s-pomoshhyu-sendmail.html

      Там в одном из примеров кода внизу указан charset. Возможно, его надо будет поменять, чтобы кодировка была правильной.

      Либо также смотрите разные конфигурационные файлы, которые содержат charset. Вам нужно будет его правильно задать, чтобы все отправлялось верно. Сейчас уже не помню, где именно надо искать конфиги.

  8. Александр

    Здравствуйте, подскажите возможно ли с данным плагином создание формы в 2 колонки?

    1. Дмитрий (автор)

      Лучше воспользоваться Contact Form 7.

      Вот даже руководства имеются для Contact Form 7:

      http://www.wpsnippet.com/creating-responsive-two-column-form-using-contact-form-7/

  9. Александр

    Здравствуйте, не подскажите по какой причине в данном плагине не открыватеся календарик в поле выбора даты? в настройках флажок стоит(он включен)

    1. Дмитрий (автор)

      Возможно, проблемы со скриптами. Попробуйте включить или отключить AJAX.

  10. Александр

    пробовал, все равно не работает

    1. Дмитрий (автор)

      Убедитесь в том, что у вас отключены кэширующие плагины (по типу W3 Total Cache), а также плагины, которые минифицируют CSS и JS. Минификация может как раз приводить к таким последствиям.

  11. Александр

    из плагинов у меня только Akismet, Hello Dolly, и cforms, то есть кроме него, все стандартные от wordpress и те отключены

    1. Дмитрий (автор)

      Тогда теряюсь в догадках. Как мне кажется, проблема все же связана с jQuery. Если версия WordPress свежая, то тогда попробуйте проверить работоспособность плагина в какой-нибудь базовой теме (Twenty Fifteen, к примеру). Может, причина скрывается в вашей теме. Обновите также плагин до последней версии.

      Еще из некоторых предположений: возможно, всплывающие окна блокирует ваш браузер или какие-нибудь расширения по типу adblock.

  12. Владимир

    Здравствуйте. У меня следующая проблема: на сайте уже установлена одна форма обратной связи для отправки сообщений contact form 7 и прекрасно работает. Добавил еще одну для обратного звонка на этот же почтовый ящик. Выдает ошибку: Ошибка при отправке сообщения: “Пожалуйста, попробуйте позже или обратитесь к администратору сайта.” Первая работает как часы. В чем причина, подскажите пожалуйста?

  13. Эдвард

    Ещё раз здравствуйте, Дмитрий! Пользуюсь CForms II.
    Иногда вместо одного сообщение приходит 4 его копии. Только что проверил. Потом включил Ajax и пришло одно письмо. Отключил — снова пришло одно письмо.

    У Вас была такая проблема и влияет ли режим Ajax на неё? Я пока связи не обнаружил. А сообщения всегда приходят с самого начала пользования этим плагином.

  14. Дмитрий (автор)

    Здравствуйте!
    Сталкивался с упоминанием подобного только в случае с Gravity Forms. Там было выяснено, что проблема вызывалась другим плагином, который тоже был установлен — Simple Facebook Connectivity. Из-за него передавалось несколько копий помимо основного письма. Как только плагин был отключен, проблема пропала. Проверьте, возможно имеются тоже виновники этого в виде других плагинов.

  15. Дмитрий (автор)

    Бывают еще конфликты с формой Jetpack. Также некоторым помогало добавить еще несколько полей в форму и это приводило к решению вопроса.

    1. Эдвард

      Странно, уже несколько раз отправлял — по одному письму приходит. Jetpack не пользовался и сейчас он тоже не установлен.
      Но я заметил ещё проблемы…

      1 — Вы не знаете где в настройках указать почту, с которой отправляется уведомление автоответчика, когда человек отправил сообщение через форму? У меня сначала адрес почты админа в настройках WordPress стоял от Яндекса. Сейчас я поменял на адрес доменной почты сайта, но никаких изменений нет. Автоответчик отправляет ответ от моей почты с Яндекса. Причём в mail.ru этот ответ не доходит, а в mail.yandex.ru приходит с красным замком — «Данные отправителя скорее всего подделаны». Вообще как Вы думаете — лучше доменную почту прописывать в основных настройках WordPress или mail.ru, yandex, google?

      2 — почтовая служба на сервере — roundcube. Я адрес добавил в Gravatar и назначил картинку, но она не отображается. Не сталкивались с таким? Хотя уведомления от Вашего сайта об ответе на комментарии приходят без иконки. Вот здесь https://topicdesk.com/faqs/roundcube-installer/roundcube-change-logo/ читал про настройки картинки на сервере, но не нашёл директорию по примерному адресу по ссылке.

      1. Дмитрий (автор)

        1. По-моему плагин сейчас использует wp_mail от WP, т.е. должен использоваться email вашего админа. Либо смотреть, где у плагина такая настройка, я навскидку уже не помню, давно с ним не работал.
        Лучше прописывать почту gmail, с ней обычно проблем не было. И еще можно пробовать дополнительно устанавливать плагин https://wordpress.org/plugins/wp-mail-smtp/, он позволяет сделать свой SMTP-сервер, чтобы письма не попадали в спам.

        2. C roundcube не работал, к сожалению. Тут подсказать не смогу. =(

        1. Эдвард

          Написал автору плагина. Он ответил, что нужно правильно заполнять admin email (FROM). Оказалось, я тупанул и в него вставил переменную field2 — она соответствует полю, куда посетитель вводит e-mail. У получалось, что пользователю приходит автоответ с его же e-mail. Да, глупее некуда. Думал, что всё решилось — куда уж там.

          Я поменял адрес автоответчика на правильный вида admin@site.ru, но в итоге вот такая ерунда: если с него письмо отправляет автоответчик, то почтовые серверы воспринимают его как спам. Но если я вручную отправляю с него письмо, то всё приходит. Не могу понять в чём дело. Я также написал автору об этом — посмотрим, что он скажет.

        2. Дмитрий (автор)

          Эту проблему с автоответчиком как раз можно исправить с помощью плагина WP SMTP, который я выше описывал. Проблема в том, что использование функции mail() в PHP ломает систему аутентификации DKIM/SPF. В итоге у вашего сервера/домена плохая репутация и письма попадают в спам. Чтобы DKIM/SPF аутентификация заработала, нужно настраивать SMTP.

  16. Эдвард

    Здравствуйте, Дмитрий! Хотел уточнение сделать по поводу проблему с CForms. Дело в том, что я использую VDS сервер в качестве SMTP. И на нём у меня служба поддержки OSTicket и служба рассылки на плагине Mailster на отдельных поддоменах. И как в службе поддержки автоответчик работает, так и в службе рассылки авторассылка — все попадает во входищие и отправитель подтверждён. Я понимаю, что OSTicket использует не php mail(), а у Mailster можно в настройках включить SPF и DKIM.

    Но что делать с CFroms? Разработчик мне ответил, что может быть в письме X-Mailer header, который вызывает подозрения. Ещё странно: в адрес отправителя указан не мой доменный ящик, а какой-то example.com. Здесь https://qna.habr.com/q/590917 про такую же проблему говорилось. Цитата: «отправитель брался из файла php.ini, где прописан sendmail_path = webmaster@example.com, после изменения этого почтового адреса на нужный, проблема ушла». У меня нескольо php файлов и во всех естьпрописано sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com. Ещё есть строка Add X-PHP-Originating-Script: that will include uid of the script followed by the filename — mail.add_x_header = On. Как думаете — нужно прописать адрес вместо webmaster@example.com и выключить add_x_header?

    1. Дмитрий (автор)

      Попробуйте прописать адрес во всех php.ini. Возможно, что решит проблему.

      1. Эдвард

        Да, дело было в этом. Достаточно было прописать правильный адрес почты в одном php.ini файле в той версии php, на которой работает мой домен. Так что всё проще, когда знаешь в чём именно проблема. За ещё благодарен Яндексу — он хотя бы письмо пропустил и отобразил неверный адрес example.com. А в mail.ru я бы сроду не узнал об этом. :)

        1. Дмитрий (автор)

          Супер)

  17. Иван

    Приветствую Дмитрий. Есть проблема при отправке форм cf7, которая существует на разных сайтах. Некоторые посетители не могут отправить форму, появляется долгое колесо загрузки рядом с кнопкой, но отправка формы не происходит. Я тестил отправку с разных браузеров, устройств итд — все работает, но почему у некоторых посетителей возникает такая проблема. Вот например на этом сайте myavon-one.ru. Не сталкивались с такой проблемой?

    1. Дмитрий (автор)

      Попробуйте обновить плагин до последней версии. Отключите плагин Autoptimize, если он у вас стоит (такая проблема бывает с ним).

      1. Иван

        Такая проблема возникает не на одном сайте. Плагины обновляю регулярно Кеширующий плагин WP Fastest Cache, попробовал отключить объединение js файлов в один, завтра посмотрю результаты. Но такое ощущение, что на стороне посетителя что то не проходит. Может скорость интернета, операционная система , блокировщики рекламы. Возможно скрипт какой то до конца не подгружается.

        1. Иван

          Еще грешил на плагин отложенной загрузки изображений, отключал, но это не помогло.

        2. Иван

          Еще грешил на плагин отложенной загрузки изображений, отключал, но это не помогло.

        3. Дмитрий (автор)

          Еще я встретил упоминания по такой проблеме, связанные с плагином Password Protected. Если он установлен, можно пробовать его отключать.

          Также видел подобные проблемы с Chrome 74. Там что-то было с обработкой Synchronous XMLHttpRequest.

        4. Дмитрий (автор)

          И попробуйте еще отключить кэширующий плагин на время. Проверьте, с ним ли проблема или нет.

        5. Дмитрий (автор)

          Также из виновников такого отмечались плагины Disable REST API, WP Mail SMTP, CF7 Customizer, WP Fastest Cache (как раз ваш симптом).

  18. Иван

    Благодарю за ответ. Скорее всего проблема в объединение скриптов js. А что конкретно с WP Mail SMTP не так? Я его тоже использую, но проблем не замечал, хотя вот возможно он их тоже вызывает. Надо кодом добавить.

    1. Дмитрий (автор)

      Некоторые пользователи писали, что с ним подобное бывает. Но не факт, что именно у вас появится.
      Тут уж метод проб и ошибок) Четко причин назвать не могут даже разработчики.

Добавить комментарий

Получать новые комментарии по электронной почте.