[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 704
+18

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

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
          Спасибо большое
        Rodion
        21 октября 2019, 12:47
        0
        Добрый день! Все настроил по инструкции. Но при заказе отправка в телегу не идет.
        Как можно отладить? и проверить?
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12