Чтобы настроить обратную связь между заказчиком и администратором при нажатии на инлайн-кнопку с `callback_data` "writezakaz", вам нужно создать функцию-обработчик, которая будет отвечать на этот запрос. При этом необходимо обработать информацию о том, кто нажал на кнопку (администратор или пользователь) и предоставить возможность администраторам отправлять сообщения пользователям.
Вот пример кода, который расширяет ваш текущий функционал:
```python
from aiogram import Router, types
from aiogram.dispatcher import filters
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.types import CallbackQuery, Bot
router = Router() # Создаем экземпляр Router
@router.callback_query(filters.Text(startswith='accept'))
async def accept_order(callback: CallbackQuery, bot: Bot):
_, user_id, amount = callback.data.split("_")
user_id = int(user_id)
amount = int(amount)
admin_id = callback.from_user.id
writezakaz = InlineKeyboardMarkup(inline_keyboard=[
[
InlineKeyboardButton(text='Написать заказчику', callback_data=f'writezakaz_{user_id}')
]
])
await callback.answer(f'Вы приняли заказ от пользователя {user_id}, сумма заказа: {amount} рублей.')
await bot.send_message(user_id, f'Ваш заказ на сумму {amount} рублей был принят и находится в обработке. В скором времени с вами свяжется Администратор для уточнения деталей.')
await callback.message.edit_text(f'Администратор {admin_id} принял заказ от пользователя {user_id}! \nСумма заказа: {amount} рублей \nЗаказ: Discord Nitro Full на 1 Месяц',
reply_markup=kb.empty)
await bot.send_message(admin_id, 'Напишите заказчику', reply_markup=writezakaz)
@router.callback_query(filters.Text(startswith='writezakaz_'))
async def write_to_customer(callback: CallbackQuery, bot: Bot):
_, user_id = callback.data.split("_")
user_id = int(user_id)
# Получаем текст сообщения от администратора (требуется дополнительная обработка)
# Например, можете отправить сообщение, и ждать ответа от администратора.
# Пожалуйста, уточните, как администраторам отправлять сообщения (например, полю ввода сообщение).
await callback.answer() # Подтверждаем нажатие кнопки.
# Пример отправки сообщения заказчику от администратора с некоторым текстом
# Это нужно будет активировать после получения текста от администратора
message_from_admin = "Здравствуйте! У вас есть вопросы по вашему заказу?"
await bot.send_message(user_id, message_from_admin)
# Здесь вы можете добавлять логику для обработки последующих сообщений от администратора.
```
### Несколько моментов, на которые стоит обратить внимание:
1. **Дальнейшее взаимодействие**: В примере выше предполагается, что администратор сможет отправить текст сообщения. Для этого вам, возможно, потребуется использовать хендлеры для обработки текстовых сообщений, чтобы получить их текст после нажатия на кнопку.
2. **Переключение между пользователями**: Вам потребуется какой-то способ отслеживания сессий между пользователями и администраторами, чтобы убедиться, что сообщения отправляются правильным образом.
3. **Сообщения в обе стороны**: Если вы хотите, чтобы и администраторы могли писать заказчику, и заказчики могли отвечать, потребуется более сложная логика обработки сообщений.
Попробуйте интегрировать предложенный код в вашу программу, и если будут сложности, не стесняйтесь задавать вопросы!