Чат-Бот-Магазин закрытие заказа

← К списку тем

Здраствуйте есть небольшой вопрос по вашему боту
как админ может закрыть заказ после его доставки ?
https://imakebots.ru/article/sozdanie-chat-bot-magazin-v-telegram-s-nulya-chast-tretya
Буду очень благодарен за помощь ?
🅸🅶🅽🅾️🆁 𝔾𝕋𝕆 - 𝕋𝔼𝔸𝕄 26.12.2020 в 07:57

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Вопрос решил небольшим костылём
    
                $orderCount = $this->pdo->prepare("SELECT * FROM bot_shop_order " . $dop_user_id);
                $orderCount->execute($dop_user_arr);
                $count = $orderCount->rowCount();
                // проверяем на количество
                if ($count >= 0) {
                    $prev = ($begin == 0) ? $count - 1 : $begin - 1;
                    $next = ($count == $begin   1) ? 0 : $begin   1;
                    // выводим навигацию
                    $buttons[] = [
                        $this->buildInlineKeyBoardButton('>', 'orderGo_' . $next . '_' . $user_id),
                    ];
                }
            } else {
                $text = "Нет заказов для отображения /start";
                $buttons = "";
            }
            // возвращаем данные
            return [
                'text' => $text,
                'buttons' => $buttons,
            ];
        }
        private function orderDel($data)
        {
            $param = explode("_", $data['data']);
            if (!$param[2]) {
                $user_id = $this->admin;
            } else {
                $user_id = $this->getChatId($data);
            }
            $id = $param[1];
            $rt = "DELETE FROM 'bot_shop_order' WHERE 'bot_shop_order'.'id' = '$id'";
            $re = $this->pdo->prepare($rt);
            if($re->execute()){
                $mess =  "Заказ № $id удален";
            }else{
                $mess = "Произошла ошибка при удалении";
            }
    
            $array = $this->drawOrder($param[2], $param[1]);
            // готовим для отправки
            $data_send = [
                'chat_id' => $user_id,
                'message_id' => $data['message']['message_id'],
                'text' => $mess,
                'parse_mode' => 'html',
            ];
            // если есть кнопки то добавляем
            if (is_array($array['buttons'])) {
                $data_send['reply_markup'] = $this->buildInlineKeyBoard($array['buttons']);
            }
            // отправляем данные
            $this->botApiQuery("editMessageText", $data_send);
            $this->notice($data['id']);
        }
    
    🅸🅶🅽🅾️🆁 𝔾𝕋𝕆 - 𝕋𝔼𝔸𝕄 26.12.2020 в 18:47
    • Осталась только проблема с тем что картинка не выводится
      🅸🅶🅽🅾️🆁 𝔾𝕋𝕆 - 𝕋𝔼𝔸𝕄 26.12.2020 в 18:48
      • Вопрос решён
        [code]
        private function prepareProduct($id, $type = "")
        {
        $product = $this->pdo->prepare("SELECT * FROM bot_shop_product" . $type . " WHERE id = :id");
        $product->execute(['id' => $id]);
        if ($product->rowCount() === 0) {
        return false;
        } else {
        $item = $product->fetch();
        // создаем переменную для складирования текста
        $text = "";
        // данные картикни
        if (empty($item['image'])) {
        $image = "Не загружена";
        } else {
        // получаем путь относительно домена
        $path = $_SERVER['PHP_SELF'];
        // получаем вхождение последнего слеша
        $path_len = mb_strripos($_SERVER['PHP_SELF'], "/");
        // отрезаем имя файла - получаем путь до текущей директории
        $path_new = mb_strcut($path, 0, $path_len 1);
        if(!$path){
        $path_new = '/'.mb_strcut($path, 0, $path_len 1);
        }

        $image = "";
        $text .= "
        🅸🅶🅽🅾️🆁 𝔾𝕋𝕆 - 𝕋𝔼𝔸𝕄 28.12.2020 в 17:24