6ответ(ов) в теме
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
1
13:33

Доброго времени суток.

Я понимаю, что вопрос не относится к базовому функционалу плагина, но хотелось бы услышать мудрые наставления гуру по решению задачи. А то заказчик уже всю плеш проел... ➡

Итак задача :
В приватный чат каждому из ролей юзеров (2-ве роли) необходимо добавить следующий функционал:
1-я роль - кнопка "закончить чат", после нажадия на которую опонент не сможет уже присылать какие либо сообщение. Нажатие возможно в любой момент диалога.
2-я роль - кнопка "закончить чат", после нажатия на которую диалог скрывается из кабинета и может быть восстановлен только если придет сообщение от опонента. Нажатие возможно только если в чате последнее сообщение пренадлежит нажимающему.
2-я роль - кнопка ручного переключения статуса "в сети / не в сети".

Буд благодарен за любые идеи 🙂

0
Вова (Otshelnik-Fm)
не в сети 5 дней
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
13:38

Здравствуйте.
Нормально так - у вас есть задача от заказчика - мы ее вам решай.

Есть на сайте задания - публикуйте т.з. кто заинтересован и свободен сделает за вас

Вы не можете просматривать опубликованные ссылки

p.s. тему переношу

0
Андрей CS
не в сети 19 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
3
14:36

очевидно, что для первой и второй роли сохраняете их действия в БД, допустим в user_meta, далее для 1-ой роли при добавлении собеседником сообщения через фильтр rcl_pre_insert_chat_message получаете массив данных сообщения и получаете текущий статус 1-й роли, не закончил ли он чат. Если чат закончен, то вместо полученного массива созвращаете пустой, тогда сообщение не будет добавлено в БД и собеседнику будет показана ошибка об этом.
Если 2-я роль нажала на "Закончить чат", то также добавляем статус в БД и при выводе вкладки чата проверяем этот статус и не выводим содержимое вкладки, если он закончил чат.
В общих чертах как то так.
Со статусом в сети/не в сети не думал, что делать, там вроде как фильтров нет

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
4
15:16

Otshelnik-Fm.

Злой, вы, Отшельник...
Не прошу решить, прошу подсказать как можно решить в рамка плагина не ламая основной его логики.

Андрей CS.

Благодарю за подсказку. Буду "думать" в этом направлении.

По результатам реализации отпишусь.

0
Вова (Otshelnik-Fm)
не в сети 5 дней
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
5
15:21

Всегда добрый, теперь "злой"
Предвидел что не ограничится одним вопросом и алгоритмом, а будем "решать" вашему заказчику вместе

Открыв бд и посмотрев как устроены таблицы чата и таблица активности - вопрос отпал бы. Вы же видимо этого не делали.

Поэтому да - предложил вам переложить задание в местную фриланс-биржу

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
6
15:37

Проблема не в БД. Проблема в недостаточном знании WP-Recall.
Я никогда не исключаю, что какой-то функционал любого плагина просто может быть недостаточно раскрыт в мануалах. И вместо того, что-б его дублировать всегда проще спросить у разработчика о его наличии/отсутствии.
Вот и в данном случае получилось, что нет смысла все писать "с нуля", а проще (и правильнее) будет использовать фильтр плагина.

Ну да ладно, суть понятна, тему можно закрывать. Будет решение - выложу.

0
Тема закрыта. Публикация новых сообщений запрещена.