Задать вопрос
@soul323

Как в телеграмм сделать кнопку оставить заявку, чтобы приходило менеджеру?

import telebot
import logging
from telebot import types

# Токен вашего бота
TOKEN = ''
my_chat_id = 

bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start'])

def start(message):

    keyboard = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True )
    btn1 = types.KeyboardButton('Каталог услуг')
    btn2 = types.KeyboardButton('✉️Оставить заявку')
    btn3 = types.KeyboardButton('Получить консультацию')
    btn4 = types.KeyboardButton('Рассчитать стоимость ремонта')
    btn5 = types.KeyboardButton('Посмотреть портфолио')
    
    keyboard.add(btn1, btn2, btn3, btn4, btn5)
    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}, чем я могу вам помочь?', reply_markup=keyboard)


def send_portfolio(message):
    keyboard = types.InlineKeyboardMarkup()
    url_button = types.InlineKeyboardButton (text = "Посмотреть", url = "https://xn--80aaouh0abejfv.xn--p1ai/portfolio/realizovannye-proekty/")
    keyboard.add(url_button)
    bot.send_message(message.chat.id, "Больше работ вы можете посмотреть на нашем сайте", reply_markup=keyboard)


def send_requestr(messege):
    mes = f'Новая заявка: {messege.text}'
    bot.send_message(my_chat_id,mes)
    bot.send_message(messege.chat.id, 'Спасибо за заявку! Наши специалисты скоро свами свяжутся')


def send_servive(message):
    bot.send_message(message.chat.id, f'Ремонт помещений:' 
                     f'\n1.Реомнт кварртир'
                     f'\n2.Ремонт коттеджей'
                     f'\n3.Ремонт коммерческих помещений'
                     f'\n\nРазработка дизайн-проекта:'
                     f'\n1.Дизайн квартиры'
                     f'\n2.Дизайн коттеджа'
                     f'\n3.Дизайн коммерческого помещения')



def send_calculation(message):
    mes = f'Рассчет стоимости: {message.text}'
    bot.send_message(my_chat_id,mes)
    bot.send_message(message.chat.id, 'Спасибо! Наши специалисты скоро свами свяжется для уточнеия деталей')



@bot.message_handler(content_types=['text'])
def repeat_all_messages(message):
    text = message.text
    chat_id = message.chat.id
    if text == 'Каталог услуг':
        send_servive(message)

    elif text == '✉️Оставить заявку':
        bot.register_next_step_handler(message, send_requestr)
        bot.send_message(message.chat.id, 'Будем рады вас обслужить! Оставьте свои контактные данные')

    elif text == 'Получить консультацию':
        bot.send_message(message.chat.id, "Получите консультацию от наших менеджеров")

    elif text == 'Рассчитать стоимость ремонта':
        bot.register_next_step_handler(message, send_requestr)
        bot.send_message(message.chat.id, f'Ответьте на вопросы для уточнения стоимости:' 
                     f'\n\n1.Тип помещения:'
                     f'\nКвартира'
                     f'\nКоттедж'
                     f'\nОфис'
                     f'\nМагазин'
                     f'\n\n2.Напишите площадь вашего объекта:'
                     f'\n\n3.На каком этапе сейчас помещение')

    elif text == 'Посмотреть портфолио':
        bot.send_media_group(message.chat.id, [telebot.types.InputMediaPhoto(open('p1.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p2.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p4.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p5.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p6.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p7.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p8.jpg', 'rb')), telebot.types.InputMediaPhoto(open('p9.jpg', 'rb'))])
        send_portfolio(message)



if __name__ == "__main__":
    bot.polling()


кнопка работает, но если нажали на кнопку отправить заявку, а следом нажали на кнопку каталог например, то , действие кнопки каталог он считывает как новая заявка
  • Вопрос задан
  • 71 просмотр
Подписаться Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
Бот ожидает ввод данных после нажатия кнопки "Оставить заявку". Если нажать другую кнопку, бот обрабатывает это как продолжение ввода заявки.
Ответ написан
@soul323 Автор вопроса
Мне надо сделать дополнительную проверку? Или мне надо логику бота поменять?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы