[msTelegram] Уведомления о заказе в telegram

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

Сделано на основе гайда от Михаила.
Как получить токен, узнать айди чата и тд так же отлично расписано в гайде.




Плагин вешается на событие msOnCreateOrder.

if($modx->event->name != 'msOnCreateOrder') return;

$token = '<token>';
$contacts = $modx->getObject('msOrderAddress', array('id'=> $msOrder->address));
$_products = $msOrder->getMany('Products');

// Список получателей, у меня их много, если будет один можно обойтись одной переменной и убрать foreach
$recipients = array(
    '<chat id>'
);

// Список товаров в заказе
$i = 0;
$products = '';
foreach ($_products as $product) {
    $i++;
    $products .= "{$i}. {$product->name} ({$product->count} шт.)";
}

// Текст сообщения
$message = "
Новый заказ #{$msOrder->num}
на сумму {$msOrder->cost} р.
-----
{$products}
-----
Телефон: {$contacts->phone}";

$message = urlencode($message);
foreach($recipients as $id){
    $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$id}&text={$message}";
    $ch = curl_init();
    curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true));
    $result = curl_exec($ch);
    curl_close($ch);
}
p.s. fopen заменил на curl т.к. на некоторых устройствах получал сообщение в виде urlencode().
but1head
18 сентября 2016, 23:26
modx.pro
17
3 467
+18

Комментарии: 11

but1head
20 сентября 2016, 19:08
+5
Опубликовали в modstore
Александр
26 сентября 2016, 14:12
0
Добрый день.
Помогите настроить плагин на работу с Shopkeeper 3? Кто нибудь знает как это сделать?
Константин
02 июля 2017, 12:44
0
День добрый.
Подскажите почему может не отображаться почта в сообщении, которую указывает клиент?
// Текст сообщения
$message = "
Новый заказ #{$msOrder->num}
на сумму {$msOrder->cost} р.
-----
{$products}
-----
Клиент: {$contacts->receiver}
-----
Телефон: {$contacts->phone}
-----
Почта: {$contacts->email}
-----
Комментарий: {$contacts->comment}";
Александр
19 июня 2018, 08:05
0
Приветствую! Плагин работает отлично! Не подскажете, как добавить адрес доставки?
    Александр
    23 июля 2018, 12:25
    0
    Вопрос про добавление адреса доставки решен.
Sergey
10 сентября 2019, 09:39
0
Как изменить текст сообщения? Создал сниппет, хотел изменить текст сообщения, сохраняю, но в телеграмму приходит старый
    Ishvan
    11 сентября 2019, 11:17
    +1
      Sergey
      11 сентября 2019, 11:21
      0
      Спасибо большое
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
11