ГлавнаяБлог Все про создание сайтовНе работает contact form 7 не отправляет письма? Решение есть!
Лого yanakhodkina.com
Сontact form 7 не работает на IOS
time22.07.2018

Не работает contact form 7 не отправляет письма? Решение есть!

Недавно возникла проблема, преимущественно на сайтах WordPress. Не работает Contact form 7 не отправляет письма. Мы с моим коллегой, верстальщиком смогли решить данную проблему.

Началось все с того, что мне написали несколько человек, сказав, что не могут отправить письмо через форму обратной связи. При нажатии на кнопку «Отправить» просто крутится иконка отправки и ничего не происходит.

Не работает contact form 7 не отправляет письма. Решение

Оказалось, что плагин Contact form 7 действительно не отправляет письма. Мы стали искать причину. Все наши пострадавшие, были пользователями «яблочной» продукции. То есть, они отправляли сообщения, пользуясь Сафари браузером.

Мы выяснили, что письма не отправляются только с операционных систем MacOS и IOS. А точнее из браузера Safari версии 11.1 и выше (на iOS начиная с версии 11.3). И при условии, если в форме обратной связи предусмотрено прикрепление файла.

Если пользователь не прикрепил никакого файла к сообщению, то браузер блокирует ajax запрос, который используется во всех новых версиях Contact form 7 для отправки.

Ajax  – аббревиатура значит Asynchronous Javascript and XML. Простыми словами – это технология, благодаря которой страница полностью не обновляется, а обновляется лишь ее часть.

В Contact form 7, благодаря запросу Ajax, сообщения отправляются без перезагрузки страницы. Но, в последних версиях браузера Safari появился баг, который выдает ошибку и не дает отправить письмо без прикрепления к нему файла.

Мы потратили несколько часов, чтобы во всем разобраться. Если и у вас, Contact form 7 не отправляет письма, вот вам готовая инструкция.

Решение

Первый способ (быстрый)

Самый банальный, но подойдет тем, кому важно чтобы contact form 7 заработал, но копаться в коде своего сайта вы боитесь.

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

Не работает contact form 7 не отправляет письма

Не работает contact form Решение есть

Именно так мы и поступили сразу, как узнали. Разбираться в проблеме днем, было некогда… Да и решение мы нашли не сразу…  А люди днем активно пишут и надо чтобы письма отправлялись, хоть и без прикрепления дополнительных файлов.

А вот уже ночью, когда рабочий день закончился, мы во всем разобрались и все исправили. И делимся этим с вами.

Это полноценное решение, берите и пользуйтесь )

Второй способ (правильный)

Чтобы  плагин Contact form 7 снова заработал у пользователей  Safari, вам нужно отключить использование технологии Ajax.

Делается это не сложно.

Надо просто добавить в файл function.php вашей темы WordPress вот этот код:

function wpcf7_load_js_not_safari11() {
global $is_safari;
if($is_safari) {
return false;
} else {
return true;
}
}
add_filter( ‘wpcf7_load_js’, ‘wpcf7_load_js_not_safari11’ );

После добавления этой модификации в ваш шаблон WordPress, Contact form 7 снова будет отправлять сообщения обычным способом, с перезагрузкой страницы, без использования Ajax.

Надеюсь, с выходом нового обновления, в браузере Сафари пофиксят этот баг. А пока правим сами.

P.S. Если у ваших коллег, Contact form 7 тоже не отправляет письма, не жмотьтесь, дайте им ссылку на эту статью ;-)

С уважением, Яна Ходкина и ее коллега веб-мастер, который не захотел писать свое имя :)

Нашли ошибку? Выделите фрагмент текста и нажмите CTRL+ENTER

UX/UI Веб-дизайнер. Занимаюсь дизайном и разработкой сайтов для бизнеса более 10 лет. Связаться со мной можно через страницу Контакты

Яна Ходкина

Комментарий: 1
  1. Сафари при прикреплении jpg файла пишет 0 фото вместо названия файла. На мобильниках так по крайней мере. Может есть какое решение по этой теме? Буду благодарен.

Оставить свой комментарий:

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*Отправляя комментарий, вы даёте согласие на обработку персональных данных.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: