Contact form 7 защита от спама без капчи
Бывает так, что в разработке того или иного сайта мы сталкиваемся не с совсем стандартными проблемами. К примеру, нам нужно защитить Contact form 7 от спама, но сделать это так, чтобы по минимуму нагружать свой сайт или обращаться к сторонним скриптам. Здесь на помощь приходят не совсем стандартные решение коллег по цеху.
Суть метода заключается в следующем: мы создаем скрытое поле для Contact form 7 и делаем так, чтобы без него письмо не отправлялось. Значение этого нового поля задаем при помощи javascript.
Удобно в качестве поля использовать checkbox и 2 его возможных положения. В таком случае форма будет отправляться если галочка снята (по умолчанию она будет нажата). В большинстве случаев бот зайдя на наш сайт сделает 2 вещи:
- проигнорирует поле (так как не понимает его);
- поставит checkbox в положение checked.
В обоих случаях Contact form 7 не отправит данную форму.
Но если заходит браузер исполняющий JS, то галочка снимается через JS и форма отправляется.
Как это делается:
- Добавляем к Contact Form 7 новый checkbox. Выглядеть будет примерно так:
[acceptance agree class:agree default:on invert]
acceptance — это наш checkbox
default:on — по умолчанию checked
class:agree — class=»agree»
invert — отправлять форму только если checked снят - При помощи CSS стилей скрываем checkbox:
.agree {display:none}
- Снимаем галочку, используя jacascript:
jQuery('.agree').prop('checked', false);
</s cript>
можно и так:
var x = document.getElementsByClassName("agree");
var i;
for (i = 0; i < x.length; i++) {
x[i].checked = false;
}
</s cript>
Не забудьте код обернуть в теги <script language=«javascript»> и </script> соответственно.
Скрипт нужно поместить ниже чем checkbox, и лучше всего обернуть его document.ready.
Выбираете тип защиты. Да, сейчас есть супер модная версия 3 с автоматическим определением ботов, но мне больше нравится метод по старинке с ручным вводом «Я не робот». Внизу соглашаетесь с правилами использования и ставите галочку о получении уведомлений, если на сайте будут возникать какие-то проблемы (еще один плюс данной Contact Form 7 капчи).