Очень много вопросов, которые можно заменить одним - "Сможете написать код за меня?".
Немного помогу, натолкнув на варианты решения. Это не панацея, но я бы решал задачу этими методами.
1. Этот код я бы заменил на такой формат:bot.reply_to(message, "Привет Что хочешь поесть? \n\n Мануал ", reply_markup=markup_menu )
на такой:
bor.send_message(message.chat.id, "Привет Что хочешь поесть? \n\n Мануал ", reply_markup=markup_menu )
Будет выглядеть как просто сообщение, а не ответ с постоянным цитированием предыдущего сообщения.
2. Можно сделать отдельную функцию генерации клавиатуры. Например:def generate_keyboard (*answer):
keyboard = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
for item in answer:
keyboard.add(item)
return keyboard
Тогда генерация любой клавиатуры с последующим отправлением её пользователю выглядит так:
msg = 'Тут будет твое сообщение.' # Сообщение, которое будем отправлять
keyboard = generate_keyboard('Кнопка 1', 'Кнопка 2', 'Кнопка 3') #Генерируем клавиатуру
bot.send_message(message.chat.id, msg, reply_markup=keyboard) #Отправляем сообщение и клавиатуру
3. Для того, чтобы собрать информацию от пользователя и отправить сотруднику можно использовать словарь. Например, словарь может выглядеть следующим образом:users_orders = {user_chat_id:{eating:breakfast, question:"Что тут происходит вообще?"}}
И тогда запись информации будет происходить при получении ответа. Пример:
if message.text == "Хочу позавтракать":
users_orders[message.chat.id][eating] = breakfast
keyboard = generate_keyboard('Вариант 1', 'Вариант 2', 'Вариант 3')
bot.send_message(message.chat.id, 'Выберите завтрак', reply_markup=keyboard )
4. Когда всю информацию получил - отправляем сотруднику ответ на основании сформированного словаря и удалим клавиатуру:if message.text == "Завершить":
hide_keyboard = types.ReplyKeyboardRemove()
bot.send_message(message.chat.id, 'Ваш запрос принят, обработка займет не более 5 мин', reply_markup=hide_keyboard)
msg = " От клиента {} поступил заказ:\n{}.\nИ вопрос:\n" \
"{}".format(message.chat.id, users_orders[message.chat.id][eating], users_orders[message.chat.id][question])
bot.send_message('841260346', msg)
Данные
необходимо дополнительно сохранять в БД. Иначе после рестарта вся информация будет удалена.