375(33)640-98-68
375(29)935-83-38

Оповещение о заказе в Telegram [OkayCMS]

25.01.2019
Оповещение о заказе в Telegram [OkayCMS]

1) Создадим бота через Bot Father, подробно описано в Telegram Bot API. Запишем токен созданного бота.
2) Создадим публичный канал и установим для него username (название канала).
3) Добавим в канал созданного бота. Добавлять не как пользователя, а как администратора, иначе будет ошибка!
4) Перейдём по ссылке

https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[USERNAME_КАНАЛА]&text=тест 

5) После перехода по ссылке будет выведен id канала, сохраним его.

В настройках канала сделаем его приватным.

6) Заходим в папку API и заливаем туда файл TgNotify.php (во вложении архив TgNotify.7z)

7) Открываем файл API/Okay.php 
после строки

'notify' => 'Notify',

добавим

'tgnotify' => 'TgNotify',

8) Открываем View/CartView.php

      // Отправляем письмо пользователю
                $this->notify->email_order_user($order->id);
                // Отправляем письмо администратору
                $this->notify->email_order_admin($order->id);

Перед ним вставляем:

//Уведомим в Telegram
if($this->settings->tg_notify==1)
$this->tgnotify->message($order->id);
 

9) В субд выполняем следующий код

INSERT INTO ok_settings (name, value) VALUES ('tg_notify', 1);
INSERT INTO ok_settings (name, value) VALUES('tg_token', 'ВАШ ТОКЕН');
INSERT INTO ok_settings (name, value) VALUES ('tg_apiurl', 'https://api.telegram.org/bot');
INSERT INTO ok_settings (name, value) VALUES ('tg_channel', 'ВАШ ID КАНАЛА');

10) Открываем файл /backend/core/SettingsNotifyAdmin.php
ищем строчки

    $this->settings->order_email = $this->request->post('order_email');
            $this->settings->comment_email = $this->request->post('comment_email');
            $this->settings->notify_from_email = $this->request->post('notify_from_email');

добавляем

$this->settings->tg_notify= ($this->request->post('tg_notify')==NULL) ? '0' : '1';
$this->settings->tg_token = $this->request->post('tg_token');
$this->settings->tg_apiurl = $this->request->post('tg_apiurl');
$this->settings->tg_channel = $this->request->post('tg_channel');

Вот и всё. Когда заказали на сайте, сразу письмо в телегу залетает.

СКАЧАТЬ

Рейтинг: 5/5 - 2 голосов

Комментарии (0)




Разрешённые теги: <b><i><br>Добавить новый комментарий:


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