Discourse 欢迎模态框

:information_source: 摘要 一个欢迎模态框,旨在通过可操作的方式帮助新用户或回归社区成员开始探索/参与论坛
:eyeglasses: 预览 Theme Creator (需要登录)
:hammer_and_wrench: 代码仓库 GitHub - noahLovell/discourse-welcome-modal
:question: 安装指南 如何安装主题或主题组件
:open_book: 不熟悉 Discourse 主题? Discourse 主题使用入门指南

安装此主题组件

:rocket: 为什么要使用它?

许多社区的注册率很高,但在“第一天流失”方面却很挣扎。通过提供可操作的路径,可以减少新成员的认知负担,并引导他们采取有助于长期留存的高价值行为。


:camera_flash: 截图

桌面端


移动端


工作原理

该模态框使用基于逻辑的推出机制,因此您可以防止向已经熟悉您社区的常规成员打扰。

  1. 新用户:自动向在您的 feature_enabled_date 之后注册的所有用户显示。
  2. 宽限期:在可配置的时间窗口内,该组件会“静默地”将活跃用户标记为已查看过该模态框,以免打扰他们。
  3. 旧用户:在宽限期结束后,向返回论坛的现有用户显示,帮助他们重新入职。

注意: “已查看”状态存储在用户的浏览器本地,因此如果他们更换设备或清除缓存,该模态框可能会重新出现。


:gear: 设置

设置 类型 默认值 描述
enabled bool false 当您准备好对成员启用“Discourse 欢迎模态框”时,切换其状态。
feature_enabled_date string \"2026-01-01\" 以 YYYY-MM-DD 格式输入日期。
grace_period_months integer 3 从功能启用日期算起,静默标记现有用户已查看的月数。
card_layout enum \"grid\" 选择欢迎模态框中卡片的显示方式(gridlist)。
card_content objects [] 配置欢迎模态框中显示的卡片(需要 idtitlesubtitleimgUrlaltTextbtnLabelaction)。
title (翻译) text Join the conversation 在模态框顶部显示的标题。
close_btn (翻译) text Done 用于关闭模态框的按钮标签。

使用 ?show-welcome-modal=true 可以强制显示欢迎模态框,无论功能是否启用,或者它是否已被查看过——非常适合在向社区正式发布之前进行测试 :slight_smile:


这是我的第一个正式主题组件 :raised_hands: 我很乐意听取反馈、想法以及可以做得更好的地方 :smile:

20 个赞

您好 @noahl

测试此功能的最佳方法是什么?如何才能像您的演示图片中那样看到这些切片(tiles)?是否有特定的设置允许管理员在我们将此功能更广泛地在 PORD 环境中发布之前看到这些切片?

2 个赞

嘿,@marksalter!你是我收到的第一个“功能请求者” :raising_hands:

刚刚推送了一个 enable 设置,以及一个用于强制显示模态框的查询参数——?show-welcome-modal=true

如果你将两者结合使用,你就可以在启用该功能前以管理员身份进行测试 :slight_smile:

例如:将 enabled 设置为关闭(它不会向任何人显示),然后使用查询参数强制查看它。

6 个赞

太棒了!感谢您的查看。

3 个赞

只是为您的下一轮开发提供一个想法。如果我们可以规定哪些消息是向新用户显示的,哪些是向在宽限期内不活跃的现有用户显示的,那就太好了。

这样新用户会收到欢迎类型的信息(前往入门材料),而现有用户会收到“有什么新内容”类型的信息(查看这些新功能/类别/内容…)。

4 个赞

这真的很棒!干得好 :clap:

你觉得去掉页脚怎么样?既然已经有了行动号召(CTA)和关闭按钮,我觉得“完成”(Done)有点多余,但很好奇你的想法?

我喜欢这个主意!这是我在第一版中考虑过的事情,但我决定让初始发布保持简单。

无论如何,我刚刚推送了一个更新来实现这种细分!逻辑上有一个小的改动,用于区分不同的用户状态,这样你就可以在不打扰用户的情况下定制内容。

现在的工作原理:

1. 定义

  • 新用户: 在你的 feature_enabled_date 或之后注册的用户。
  • 现有用户: 在该日期之前注册的用户。
  • 活跃用户: 定期访问(在你的不活跃窗口内)的成员。
  • 回访用户: 之前活跃但离开时间过长,超过了不活跃阈值的成员。

2. 逻辑流程 为确保我们不打扰最活跃的成员,组件遵循特定的优先级:

  • 新注册: 他们会立即看到模态框(针对标记为 new_usersboth 的卡片进行定位)。
  • 宽限期: 如果“现有用户”在你的宽限期内访问,组件会静默地将他们标记为已查看,这样就不会打扰他们。
  • 不活跃间隔: 一旦用户被标记为“已查看”,组件会在本地跟踪访问情况。如果他们每天都访问,他们将保持活跃状态,并且永远不会再看到它。只有当他们两次访问之间的间隔超过你设置的 returning_user_inactivity_months 时(这是一个新设置 :slight_smile: ),他们才会作为回访用户看到它。

3. 定制内容 你现在可以在每张卡片上使用 displayFor 设置:

  • new_users:非常适合“如何发帖”或“自我介绍”。
  • returning_users:非常适合“看看你离开时发生了什么变化”。
  • both:基本链接,如指南或常见问题解答。

我还添加了预览参数,以便你可以轻松测试这些流程:?show-welcome-modal=true&user-type=new&user-type=returning

再次感谢提醒!

3 个赞

@noahl 太棒了!

我今天晚些时候或周一会试着看一下,然后告诉你进展如何。

1 个赞