Смс уведомления при получении формы Formit на Modx Revo
Всем привет. Недавно я рассказывал как создать форму обратной связи на сайте под системой Modx Revolution на основе дополнений Formit и Ajaxform. В этой статье я расскажу как отсылать смс уведомления при успешной отправке формы. Для этого нам понадобится создать хук для Formit в виде сниппета и зарегистрироваться в сервисе sms.ru
1. Регистрируемся в сервисе sms.ru
После регистрации зайдите в раздел API
В правом сайтбаре у вас будет Ваш api_id
Скопируйте его и вставьте в сниппет, который мы создадим в следующем шаге
2. Создаём сниппет sms:
<?php
// эмуляция скрытого поля переданного в Formit (для примера)
$hook->setValue('date_to', date('U'));
// получение значения из поля формы
$name = $hook->getValue('name');
$phone = $hook->getValue('phone');
$email = $hook->getValue('email');
$pagetitle = $hook->getValue('order-title');
$text = 'Заявка с '.$pagetitle.' от '.$name.', '.$phone.', '.$email;
$phoneManager = '79999999999'; // телефон куда нужно отправить смс
$body=file_get_contents('http://sms.ru/sms/send?api_id=вашайпиайди&to='.$phoneManager.'&text='.urlencode($text));
return true;
где
phoneManager - номер телефона, на который нужно отсылать
name, phone, email - это переменные из формы
а вместо вашайпиайди вставьте сюда ваш api_id из сервиса sms.ru
3. Добавляем невидимый инпут с переменной заголовка страницы
А pagetitle - это переменная из невидимого input в форме Ajaxform, которая нужна для передачи заголовка в тело смс-письма. Мне она нужна была для того, чтобы тот, кто получает смс знал с какой страницы пришла заявка. Чтобы эта переменная передавалась вам нужно создать невидимый input в форме
<input type="hidden" id="order-title" name="order-title" value="[[*pagetitle]]" />
Вот и всё! можете проверять. Но имейте ввиду: бесплатными смс отправляются только до 20 или 30 символов, всё что больше - платно в размере около 4 рублей за смс, поэтому на всякий закиньте на баланс рублей 100, чтобы отладить процесс.
Комментарии ()