В моем форуме я установил политику в теме ниже, чтобы она применялась только к пользователям TL0. Однако пользователь TL4 пожаловался, что политика постоянно напоминает ему о необходимости её принять, что странно?
Я предполагаю, что это связано с тем, что его имя пользователя/учетная запись все еще находится в группе TL0?
TL0 включает всех участников вашего форума. Вы не переходите между группами уровней доверия — они накопительные, поэтому все участники TL4 также входят в группы TL3, TL2, TL1 и TL0.
Разве эта политика не применяется ко всем участникам? Что-то мешает вашим участникам TL4 принять её?
Дело не в том, что они не хотят это принять; просто они уже приняли, но им всё ещё приходят еженедельные напоминания, что довольно странно, хотя я установил день Обновления на 365 и оставил поле Начало обновления пустым.
К сожалению, удалить их из группы TL0 невозможно (без удаления их аккаунтов ), так как это по сути группа «все участники».
Судя по этой настройке, напоминание должно приходить им раз в неделю, если они еще не приняли политику. Перейдя по ссылке выше, я вижу, что на данный момент её приняли только 12 человек — входят ли те, кого напоминают, в это число?
Нет, но другой участник @bionel принял это, и ему по-прежнему приходят еженедельные напоминания. Насчёт остальных я не уверен, так как они не так активны в обсуждениях изменений и улучшений форума.
Помогло бы, если я увеличу значение в поле Продление до 720 дней (2 лет)?
Напоминания должны срабатывать только для тех, кто ещё не принял политику. Как только пользователь принимает политику, он больше не должен получать напоминания о её принятии, пока не наступит период продления (будь то 365 или 730 дней, или меньше/больше).
Непонятно, почему @bionel получает напоминания после того, как уже принял политику. Мы довольно часто используем этот плагин внутри компании, и я не замечал никаких проблем. Вы тоже получаете лишние напоминания?
Возможно, можно создать запрос в Data Explorer, чтобы быстро проверить соответствие между принятием политики и отправкой уведомлений-напоминаний. Давайте посмотрим…
Только как небольшое промежуточное уточнение: я немного поигрался с этим, но мой запрос сейчас выглядит как клубок ниток, так что пока не готов поделиться.
Для тех, кто только присоединился: я определил тип уведомления для напоминания о политике как 18, а таблицы политик в эксплорере — это post_policies, policy_users и policy_groups (хотя, думаю, последняя здесь не нужна).
Также, кажется, в коде есть какая-то магия, которая очищает предыдущие напоминания об уведомлениях:
Вопрос к @albert_vu: поскольку политика применима к TL0, вы не против, чтобы каждому из 20 000+ пользователей отправлялось еженедельное напоминание о политике до тех пор, пока они её не примут?
Это нормально! Правила существуют для того, чтобы пользователи знали, как правильно оформлять свои темы перед публикацией, если вопрос касается продукта (у нас было немало случаев с плохим оформлением и/или недостаточным количеством информации на нашем форуме).
Просто хочу публично уточнить это для будущих путешественников.
Думаю, что такой запрос позволит вам проверить соответствующую информацию и увидеть, было ли отправлено уведомление после принятия политики:
-- [params]
-- topic_id :topic_id
SELECT pp.id AS "ID политики",
pp.created_at AS "Дата создания политики",
n.user_id,
n.created_at AS "Последнее полученное уведомление",
pu.accepted_at AS "Пользователь принял политику",
pu.revoked_at AS "Пользователь отозвал политику",
pu.expired_at AS "Политика истекла"
FROM notifications n
JOIN posts p ON p.topic_id = n.topic_id
JOIN post_policies pp ON pp.post_id = p.id
LEFT JOIN policy_users pu ON pu.post_policy_id = pp.id AND pu.user_id = n.user_id
WHERE n.topic_id = :topic_id
AND n.user_id > 0
ORDER BY n.user_id, pu.accepted_at