Я подправил название топика, теперь просто — Отправка SMS
Раскроем данную тему.
Для начала нам потребуется зарегистрироваться на
sms.ru (ссылка реферальная, буду рад если зарегистрируетесь по ней, за наводку на сервис спасибо artbe)
Данный сервис позволит отправлять нам смс по приемлемым ценам, а смс на свой номер будут бесплатными (не более 60 одиночных смс в сутки, 153-160 латинских символов или 67-70 русских в одной смске).
Для отправки смс создадим пользовательский тег (UDT) с названием —
send_sms:
Code: Select all
/* ниже переменная, ожидающая ключ апи, если не указано, то использует ключ, который стоит по-умолчанию. Сам ключ смотрите у себя в личном кабинете раздел «Программистам» —> «sms/send» */
$apikey = isset($params['apikey']) ? $params['apikey'] : 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
/* далее переменная, ожидающая номер телефон, по-умолчанию указываем свой номер (также можно указывать несколько номеров через запятую) */
$phone = isset($params['phone']) ? $params['phone'] : '79210000000';
/* ниже переменная, ожидающая текст смс, по-умолчанию будет отправлено Hello */
$text = isset($params['text']) ? $params['text'] : 'Hello';
/* далее идет отправка смс с использование введенных переменных */
$body=file_get_contents("http://sms.ru/sms/send?api_id=".$apikey."&to=".$phone."&text=".urlencode($text));
/* следующая строка закомментирована, но ее можно использовать для отладки и выводить ответ сервера на запрос отправки смс */
#print $body;
Теперь можем использовать наш тег для отправки смс, например, можем использовать его для форм заказа.
Для чего идем в конструктор форм (FormBuilder), открываем требуемую форму и переходи во вкладку «Шаблон отправки формы». Предположи, что у нас в форме есть поля «Номер заказа», «Телефон» и «Имя заказчика», и мы дали этим полям соответствующие алиасы при добавлении их в форму: {$ordernum}, {$phone} и {$name}
И чтобы отправить смс нужно в шаблон вставить следующее:
Code: Select all
{* ниже создаем переменную, куда помещаем данные для отправки админу, \n — это символ перевода строки *}
{$foradmin = "`$ordernum`\n`$phone`\n`$name`"}
{* а затем данные для пользователя *}
{$foruser = "Ваш заказ №`$ordernum`\nСпасибо!"}
{* отправляем смс админу и при этом обрезаем ее до 67 символов, чтобы смска на свой номер была бесплатной *}
{send_sms text="`$foradmin|truncate:67:""`"}
{* теперь отправляем смс пользователю, не забудьте, что номер должен быть в международном формате и только цифрами, поэтому заранее предусмотрите корректный ввод данных пользователем в форму *}
{send_sms phone="`$phone`" text="`$foruser`"}
Все! Теперь в случае удачного заполнения формы и отправки ее данных будут отправлены и смски.
Дополню, что ваш сайт должен быть в кодировке utf-8, если это не так, то в теге пользователя нужно будет сделать перекодирование текста сообщения, например, с windows-1251 на utf-8 это будет так:
Code: Select all
$body=file_get_contents("http://sms.ru/sms/send?api_id=".$apikey."&to=".$phone."&text=".urlencode(iconv("windows-1251","utf-8",$text)));