Jump to content

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


Recommended Posts

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
  • 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

Очень радует то, что на СМС.ру смски на номер указанный при регистрации - бесплатные!

Небольшой облом... бесплатно, если:

а) до 60 в день

б) зармер отправления не должен привышать 1 смс (до 70 символов кирилицей или до 160 латиницей)

Но это тоже не плохо, о том как экономить мой пост ниже

 

Спосибо большое, все сделал, немного доработал и получилось так:

 

post-1241-0-15775900-1372588064_thumb.jpg

Link to post
Share on other sites

А еще можно сэкономить на отправке сообщения для себя любимого (тобишь администратору сайту, менеджеру, в общем тому, кто следит за заказами). Делаем так:

 

$sms_msg = 'Заказ на сумму '.$order->total_price.' р. от '.$order->name;
if (mb_strlen($sms_msg, 'UTF-8') > 70) $sms_msg = mb_substr($sms_msg, 0, 67, 'UTF-8').'...';
$this->smssend->send($this->settings->notify_from_sms, $sms_msg);	

Естественно это из CartView.php

SMS.ru позволяет слать на свой номер (указанный при регистрации) смски бесплатно, НО бесплатно до 60 шт. в день и размер смс не должен привышать 1-ну смску. Следовательно мы:

1. Формируем текст СМС

2. Проверяем его длинну, и если она больше 70 символов (ограничение для смс кириллицей) то урезаем его до 67 символов и добавляем "..." для понимания того, что смс была урезана.

3. Далее шлем это смс

Я подобрал, по моему мнению, самый оптимальный текст. Мы имеем информацию о факте нового заказа, о сумме и что останется - это инфа о клиенте.

 

Если вам необходимо смс уведомление только для себя, то смс.ру можно юзать почти бесплатно :) (ну если у вас заказов менее 60 в день, ну а если уж больше, то можно и не читать этот пост - экономия это низко для вас =))))

Link to post
Share on other sites

Gloobus

дак это же бесплатно для одного номера вроде?? или как:?? можно слать до 60 смс на любые номера?))

Для одного! Для того, на который вы зарегистрировались! Актуально для мелкого магазина, где ты сам себе директор и продавец и менеджер и разработчик :) У смс.ру сейчас есть группы, рассылка по группам вроде как бесплатная, попробуйти их заюзать, если получится.

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

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

Добрый день. Вопрос таков. Как сделать например поле и отправку смс на номер который внесут в это поле. Текст {$product->name|escape}. Пробывал через onclick - не получается  .

<input type="button" value="Отправить" name="ss" onclick="<?php $simpla->smssend->send(телефон,'сообщение'); ?>"></input><br>
Link to post
Share on other sites
  • 3 weeks later...

Спасибо Sheeft!

Отличная наводка!

 

Помогите с усовершенствованием - как сделать, чтобы через 1 час если заказ ещё не оплачен, высылалось бы новое СМС (типа "Ждём оплаты")

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

Сделал, работает! +1 реф

 

Помогите в админке на странице OrdersAdmin рядом с полем примечание сделать еще одно поле. После ввода информации и нажатия СОХРАНИТЬ происходила отправка смс сообщения этому клиенту с этой введеной информацией. 

 

Спасибо!

Link to post
Share on other sites

js обработку клика на эту кнопку повесь - и через ajax отправь sms

 

$('.your_button').click(function(){

message = $('.your_field').val();

phone = ...

$.ajax(

url: your_script.php,

data: {phone: phone, text: message},

...

});

 

а в скрипте собственно и сообщение отправите (на всякий пожарный можете еще токен какой запихать)

Link to post
Share on other sites

js обработку клика на эту кнопку повесь - и через ajax отправь sms

 

$('.your_button').click(function(){

message = $('.your_field').val();

phone = ...

$.ajax(

url: your_script.php,

data: {phone: phone, text: message},

...

});

 

а в скрипте собственно и сообщение отправите (на всякий пожарный можете еще токен какой запихать)

 

Ниче не понял... :(

Link to post
Share on other sites

Ниче не понял... :(

Посмотри как реализована AJAX корзина и сделай по аналогии.

Смотри в файлах: ajax/cart.php, design/default/js/ajax_cart.js, design/default/html/main.tpl.

Link to post
Share on other sites

Noxter, спасибо!

Но мне кажется тут другая реализация нужна. Попробую подробно описать что нужно..

Нужно в админке на странице заказа рядом с полем "Примечание" добавить новое поле "Идентификатор почтового отправления (трекномер)" Или же использовать поле примечание с этой целью. Добавленная информация, а именно код почтового отправления должен сохраняться и храниться в этом поле всегда. После того как поле заполнено и нажатии кнопки "Сохранить" происходила отправка СМС сообщения на номер клиента с информацией из этого поля.

Link to post
Share on other sites
  • 2 weeks 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

Вот та же самая фигня... Надо сказать, что в версии симплы 2.2.1 этот модуль работал прекрасно, но после обновления до 2.2.3 перестал. Кто-нить решил проблему?

Link to post
Share on other sites

В сообщении об ошибке четко видно, что причина в smssend.php в начальной строке. Если кодировка правильная, то, видимо, в содержании файла...

 

Как ни странно, всё было правильно... NOTE++ показал, что кодировка была UTF-8 без BOM... Переконвертировал в 1251, потом обратно и заработало. Мистика. Или руки не из того места...

Link to post
Share on other sites

>В сообщении об ошибке четко видно, что причина в smssend.php в начальной строке. Если кодировка правильная, то, видимо, в содержании файла...

Кодировка  UTF-8 без BOM 

Какая то фигня.

?вот файл. 

 

 

<?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,
        "text"        =>    iconv("windows-1251","utf-8",$sms)
));
$body = curl_exec($ch);
curl_close($ch); 


return false;


    }
}
 

 

Link to post
Share on other sites

Все, разобрался! 

 

В фйле Simpla.php добавил строку 'smssend'    => 'smssend', - smssend было с маленькой буквы. Надо с большой. 

Вот так  'smssend'    => 'Smssend'

 

Ура Ура Ура

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

Все работает, только остается один вопрос, возмлжно ли сделать так чтобы отправитель sms был указан не мой номер, а например название магазина. Заранее благодарен за любую помощь.

Link to post
Share on other sites

Все работает, только остается один вопрос, возмлжно ли сделать так чтобы отправитель sms был указан не мой номер, а например название магазина. Заранее благодарен за любую помощь.

 

Пользуюсь сервисом bytehand.com, там в личном кабинете есть нечто вроде "Подписи отправителя" где можно задать название от кого будет рассылка.

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...