Обработка полей перед отправкой AjaxForm+FormIt
Добрый день!
На сайте есть форма такого типа:
Данные отправляются средствами AjaxForm
Форма работает. Все отлично.
Теперь на сайте необходимо сделать синхронизацию форм со сторонним сервисов.
Вот что прислала поддержка сервиса:
Если сделать отправку данных с такой обработкой средствами PHP отдельным сниппетом, то думаю проблем не будет, тут не сложно.
Но менеджеры кто админят сайт, пользуются для статистики отображением писем в админке сайта в меню FormIt, где их можно отсортировать по видам форм и дат.
И будет перезагружаться страница сайта при отправке писем, что не хотелось бы.
Реально ли сделать дополнительные обработки с полями, перед отправкой письма средствами AjaxForm?
Необходимо чтобы письма с формы отправлялись на почту, сохранялись в админке сайта, синхронизировались по правилам со сторонним сервисом.
Помогите! В какую сторону копать? Либо возьмите в работу, готов обсудить цену.
На сайте есть форма такого типа:
<form action="#" class="test-visit-form ajax_form">
<input class="input" type="text" name="name" placeholder="Ваше имя *">
<input class="input" type="text" name="phone" placeholder="Номер телефона *">
<select class="select-stroke" name="addressTo" data-placeholder="Выбрать филиал">
<option></option>
<option value="email1@mail.ru" >Филиал 1</option>
<option value="email2@mail.ru" >Филиал 2</option>
</select>
<input class="button default-fill big" type="submit" value="Отправить">
</form>
Данные отправляются средствами AjaxForm
[[!AjaxForm?
&snippet=`FormIt`
&hooks=`spam,email,FormItSaveForm`
&formName=`Заявка с сайта `
&formFields=`name,phone`
&fieldNames=`name==Имя,phone==Номер телефона`
&form=`tpl.ajaxform.club`
&emailTpl=`tpl.message.form`
&emailSubject=`Заявка с сайта`
&emailFrom=`robot@mail.ru`
&emailTo=`[[+addressTo]]`
&validate=`phone:required,addressTo:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено!`
]]
Форма работает. Все отлично.
Теперь на сайте необходимо сделать синхронизацию форм со сторонним сервисов.
Вот что прислала поддержка сервиса:
ссылку мы дадим вам чуть позже — пока попробуйте подготовить верно параметры, чтобы получалась верная подпись.
когда подпись настроите — скажите.
пост или гет — безразницы
с параметрами определились:
host=www.fitness.ru&name=Иванов Иван Иванович&phone=79160413045&email=w@mail.ru×tamp=63680656072&signature=c20ad4d76fe97759aa27a0c99bff6710
фио можно разбить:
fname=Иван&lname=Иванов&pname=Иванович
в utf8 все
urlencoded
в запрос вставляется timestamp — времся в секундах… есть вроде в пхп
оно нужно для придания уникальности
все это пдписывается подписью
т.е. — signature- это md5 от конкатенации всех параметров
+ secret
для проверки md5:
name=Ivanov×tamp=63680656065&phone=71111111112
secret=r8Sdk#4kfpfekf913
signature=md5(Ivanov.63680656065.71111111112.r8Sdk#4kfpfekf913)
15a0379c74e94f47fd6ad1de2b9c6f2d
как проверите получение подписи- сообщите
если что непонятно — говорите
host- это имя сайта с которого ты постиш
парамтеры по факту и по пост и по гет можно посылать
время ставь реально сервака
?name=Ivan×tamp=63680656065&phone=71111111112&signature=86adf70905ae2c1c9ee645c1c5a5ff21
еще одна строка для проверки
{«return»:[{«desc»:"\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e",«code»:0}]}
ответ в формате Json
code=0 — нет ошибок…
в другом случае будет не 0 и в desc — описание
Если сделать отправку данных с такой обработкой средствами PHP отдельным сниппетом, то думаю проблем не будет, тут не сложно.
Но менеджеры кто админят сайт, пользуются для статистики отображением писем в админке сайта в меню FormIt, где их можно отсортировать по видам форм и дат.
И будет перезагружаться страница сайта при отправке писем, что не хотелось бы.
Реально ли сделать дополнительные обработки с полями, перед отправкой письма средствами AjaxForm?
Необходимо чтобы письма с формы отправлялись на почту, сохранялись в админке сайта, синхронизировались по правилам со сторонним сервисом.
Помогите! В какую сторону копать? Либо возьмите в работу, готов обсудить цену.
Поблагодарить автора
Отправить деньги
Комментарии: 1
Можно написать свой хук — https://docs.modx.com/extras/revo/formit/formit.hooks#FormIt.Hooks-CustomHooks, в котором будет обрабатываться то что вам нужно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.