Jump to content

Модуль SMS оповещения


Recommended Posts

Предлагаю вашему вниманию бесплатный модуль SMS оповещения от провайдера sms.ru (ссылка реферальная, за переход буду благодарен)

 

Для установки вам понадобиться:

 

Шаг 1

 

Создать файл smssend.php в папке api cледующего содержания:

<?php
 
require_once('Simpla.php');

class smssend extends Simpla
{
	public function send($phone,$sms)
	{
	
		$ch = curl_init("http://sms.ru/sms/send");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_POSTFIELDS, array(

		"api_id"		=>	"вводим сюда свой секретный код",
		"to"			=>	$phone,
                "partner_id"            =>    "6583",
		"text"		        =>	$sms
));
$body = curl_exec($ch);
curl_close($ch); 

return false;

	}
}

 

Не забываем заменить 

 

"api_id"        =>    "вводим сюда свой секретный код",

 

на строку со страницы смс.ру, ковычки оставляем, например:

"api_id"        =>    "55553331b-4cdd-de24-b54b-a71e5555555",

Если после отправки смс к вам приходит неразбериха меняем строку

"text"        =>    $sms

на

"text"        =>     iconv("windows-1251","utf-8",$sms)

 

 

Шаг 2
 

В файле api/simpla.php вписываем строку

  'smssend'        => 'smssend'

Примерно это выглядит так

class Simpla
{
	private $classes = array(
		'config'     => 'Config',
		'request'    => 'Request',
		'db'         => 'Database',
...
		'notify'     => 'Notify',
		'managers'   => 'Managers',
                'smssend'    => 'smssend'
	);

Не забываем про запятые. В самом конце её нет как видите.

 

Шаг 3

 

Теперь мы можем в любом месте отправить смс-ку выполнив команду

$this->smssend->send(телефон,'сообщение');

Например для уведомления администратора о поступлении нового заказа мы в файле View/CartView.php добавляем следующий код

// Отправка смс уведомления пользователю если он этого запросил
$this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят. На сумму '.$order->total_price.' руб. Спасибо за покупку!');
// Отправка смс уведомления администратору о поступившем заказе 
$this->smssend->send('+79150000000', 'На сайт поступил заказ №'.$order->id.' на сумму '.$order->total_price.' руб.');

Если вы хотите сделать уведомление клиенту о изменении статуса заказа вам в файл

simpla/orderadmin.php

 

Примеры всех вышеуказанных файлов есть в аттаче, смотрите, разбирайтесь, пользуйтесь. Просто скопировать файлы нельзя - работать не будет.

 

Если будут вопросы - пишите в тему или в личку.

 

Кому пригодилось - ставим лайки, говорим спасибо  ;)

Smssend.php

CartView.php

OrderAdmin.php

Link to post
Share on other sites
  • Replies 238
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Предлагаю вашему вниманию бесплатный модуль SMS оповещения от провайдера sms.ru (ссылка реферальная, за переход буду благодарен)   Для установки вам понадобиться:   Шаг 1   Создать файл smssend.php в

Posted Images

Супер!

 

Подскажите, а как реализовать, чтобы SMS отправлялся из админки со страницы заказа при нажатии на кнопку?

 

Текст SMS сообщения какой? Или поле для ввода? Нужно обработчик в файл OrderAdmin.php вносить на POST запрос и добавить форму

Link to post
Share on other sites

Другие сервисы прикручиваються подобным образом, только с другим API, чаще всего за денюжку

Link to post
Share on other sites

Здравствуйте, а не подскажите, что значит: // Отправка смс уведомления пользователю если он этого запросил ? В каком случае считается, что пользователь запросил уведомление?

Заранее спасибо!

 

Link to post
Share on other sites

сделал, как описано,  но не приходит уведомление.. но если пишу в коде:

"text"        =>    iconv("windows-1251","utf-8","Привет!")
 

то сам текст "Привет" приходит после заказа на сайте.
не подскажите в чем тут загвоздка?

Link to post
Share on other sites

Здравствуйте, а не подскажите, что значит: // Отправка смс уведомления пользователю если он этого запросил ? В каком случае считается, что пользователь запросил уведомление?

Заранее спасибо!

 

В примере файлов которые прикреплены есть условие "notice_user_sms" которое передаёться из шаблона по галочке, можно поиграться и на правильность набора номера, и прочие условия

Link to post
Share on other sites

наконец нашел ))) прикрепил.

Sheeft, посмотри пожалуйста.

формат телефона + код страны код города номер телефона

+79011111111

у вас

992936008855

приведите в международный вид и попробуйте ещё раз

Link to post
Share on other sites

я пробовал и с + , т.е. +992936008855, но ничего не идет. а вот когда ставлю:

"text"        =>    iconv("windows-1251","utf-8","Привет!")

то приходит сам текст "Привет". А если редактирую текст, то уже не идет.

Link to post
Share on other sites

Ничего ли не упустил? Чтобы добавить чекбокс в корзину, активизирующий функцию отправки оповещений об обновлении статуса заказа по смс, необходимо внести изменения в:

 

1. Шаблон корзины (добавить чекбокс)

2. Шаблон страницы заказа в админке (добавить чекбокс)

2. api/oders.php

3. CartView.php

4. OderAdmin.php

5. БД (добавить поле булевского типа в таблицу s_orders)

Link to post
Share on other sites
  • 2 weeks later...

И с этой галкой и без нее не приходит смс

 

 

Уведомить покупателя о состоянии заказа
 
 
 
Судя по архиву сообщений sms.ru то сообщения 
 
Ваш заказ №'.$order->id.' обработан, ожидается поступление товара на склад. Вам придет оповещение.'
 
даже на сервер смсру не упало..
Link to post
Share on other sites

HOT HOT HOT!! Спасибо Sheeft 

один момент, при изменении статуса заказа, смска клиенту не приходит.

сам не разобрался, есть идеи?

 

 

Если вы хотите сделать уведомление клиенту о изменении статуса заказа вам в файл

simpla/orderadmin.php

 

смотрите пример в прикрепленном файле (там есть условие для галочки принцип работы которой тут не описан, можете убрать это условие)

Link to post
Share on other sites

 

И с этой галкой и без нее не приходит смс

 

 
 
 
Судя по архиву сообщений sms.ru то сообщения 
 
Ваш заказ №'.$order->id.' обработан, ожидается поступление товара на склад. Вам придет оповещение.'
 
даже на сервер смсру не упало..

Прикрепляйте файлы, посмотрим где косяк (файл шаблона из админки, файл ордерадмин)

Link to post
Share on other sites
  • 1 month later...

Подключил, смс администратору приходит. Но перестал направлять на страницу заказа /ordrer

Ни каких изменений кроме предложенных не вносил

Что это может быть?

 

Происходит сразу после действия отправки сообщения администратору. убираю эту строку с кодом отправки - и все нормально.

Хотя сообщение отправляется нормально..

 

Warning: Cannot modify header information - headers already sent by (output started at /home/u17214/simpla.iloveprinter.ru/www/api/smssend.php:1) in /home/u17214/simpla.iloveprinter.ru/www/view/CartView.php on line 127

Warning: Cannot modify header information - headers already sent by (output started at /home/u17214/simpla.iloveprinter.ru/www/api/smssend.php:1) in /home/u17214/simpla.iloveprinter.ru/www/index.php on line 33

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...