Всем привет! Прошу помощи: на сайте создал всплывающее окно, открывающееся по кнопке, с заказом обратного звонка, всё как обычно, реализовано с помощью ajaxform, вот код вывода сниппета: [[AjaxForm?
&snippet=FormIt
&form=tpl.AjaxForm
&emailTpl=sentEmailTpl
&emailSubject=Тестовое сообщение
&emailTo=mm@yandex.ru
&successMessage=Сообщение успешно отправлено
&validate=name:required,email:required
&validationErrorMessage=В форме содержатся ошибки!
]] вот чанк tpl.AjaxForm: <h2>ЗАКАЗАТЬ ЗВОНОК</h2>
<form id="contact" name="contact" action="" method="post" class="ajax_form">
<label class="control-label" for="af_name">[[%af_label_name]]</label>
<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="" class="span4" /><br />
<span class="error_name">[[+fi.error.name]]</span>
<label class="control-label" for="af_email">[[%af_label_email]]</label>
<input type="email" id="af_email" name="email" value="[[+fi.email]]" placeholder="" class="span4" /><br />
<span class="error_email">[[+fi.error.email]]</span>
<button type="submit" class="btn btn-primary">[[%af_submit]]</button>
[[+fi.success:is=`1`:then=`
<div class="alert alert-success">[[+fi.successMessage]]</div>
`]]
[[+fi.validation_error:is=`1`:then=`
<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
`]]
</form> вот чанк sentEmailTpl: [[+name]] <br />
[[+email]] <br /> [[+message]] Всё валидируется, пишет, что письмо отправлено, но на почту ничего не приходит! Друзья, проверьте, пожалуйста, код, возможно у меня уже глаз замылился и я не вижу простейшей ошибки? Подскажите, в какую сторону можно копать? Ещё момент: на сайте реализован отдельный php-скрипт отправки почты — он работает без проблем… возможно, необходимо покопаться в настройках formIt или ajaxForm, просто я не смог найти нужных параметров… разумеется, почту забил правильно — тысячу раз проверил!))) Подскажите, пожалуйста, буду очень признателен!
Может все-таки не кешируемым сниппет прописать? [[!AjaxForm… А так подобные вещи уже обсуждались не раз здесь, мы AjaxForm не используем, а используем form-процессор.
Судя по тому, что страница выводит «Внимание! Телефон может содержать только цифры.», все-таки сам сниппет отрабатывает. Скорее всего просто с сайта почта на отправляется. Поставьте Console и проверьте в принципе отправку почты, выполнив два отдельных кода:
Не за что!
Если еще актуально. Нахожу вашу проблему похожей на мое приключение
В вызове сниппета добавьте добавьте хук «email». &hooks=email
Не знаю, ответит ли кто-то нибудь мне здесь или нет. Выполнил в консоли 2 команды, вернули 1, только после второй не пришло письмо (интересно, на какой адрес оно отправилось?) У меня стоит в ajaxform &hooks=email
, но письмо всё равно не приходит. Пробовал отдельно formit делать, письмо приходит, но хотелось бы без перезагрузки страницы через ajaxform запустить. У меня на другом сайте письма отправляются нормально через ajaxform, при том, что оба сайта на одном сервере находятся.
vladim-filip, дайте хоть на код взглянуть))) Какой вызов сниппета, какой чанк? И что значит: "вернули один"?
Николай выше писал: " Поставьте Console и проверьте в принципе отправку почты, выполнив два отдельных кода: 1. Просто через функцию mail() print (int)mail('test@some.host', 'subject', 'message'); 2. Через MODX: print (int)$modx->user->sendEmail('message'); Желательно, чтобы оба варианта вернули 1." Вот тут у меня возвращается 1 в обоих вариантах. Вот код вызова сниппета: [[!AjaxForm?
&snippet=FormIt
&form=vogelCallbackFormTpl
&hooks=spam,FormItSaveForm,email
&formName=Обратный звонок
&formFields=name,phone
&fieldNames=name==Имя,phone==Телефон
&emailSubject=Заявка на обратный звонок с сайта VogelAndNootCenter
&emailTo=vfilippov@engne.ru
&emailBCC=vladim-filip@yandex.ru
&emailFrom=info@vogelnootcenter.ru
&emailFromName=VogelAndNootCenter
&emailTpl=vogelCallbackMailTpl
&customValidators=isCaptchaValid
&validate=name:required:minLength=^1^:maxLength=^30^,phone:required:minLength=^7^:maxLength=^20^,pers_data:required,captcha1:isCaptchaValid
&validationErrorMessage=Пожалуйста, исправьте ошибки!
]] Вот код формы vogelCallbackFormTpl:
Ё-моё. Разобрался. У меня в &validate идёт поле captcha1, а в форме captcha просто называется. Теперь всё работает.