Discourse 与 Ko-fi 集成

:information_source: 摘要 Ko-fi 的捐赠/小费系统集成到 Discourse 中。通过徽章或群组成员资格奖励捐赠者。
:hammer_and_wrench: 仓库链接 https://github.com/magicball-network/discourse-kofi.git
:open_book: 安装指南 如何在 Discourse 中安装插件

功能

此插件允许您将 Ko-fi 账户 与您的 Discourse 社区关联。用户可以通过 Ko-fi 进行捐赠,从而获得徽章或群组成员资格等奖励。它还支持将 Ko-fi 的订阅层级与群组成员资格进行绑定。

该插件依赖于 Ko-fi Webhook,当收到付款时,Webhook 会向 Discourse 发送通知。

您可以配置两种类型的奖励:

  1. 一次性奖励,如徽章和群组成员资格。这些奖励基于用户累计支付的总金额。
  2. 基于订阅层级的月度群组成员资格。只要用户持续支付该订阅层级,他们就会保持群组成员身份。群组成员资格每月重新评估一次。

除了这些奖励外,您还可以展示基于最近收到的付款的仪表板。


不同的仪表板部分可以根据您的需求启用和配置。

您可以导入 Ko-fi 的 CSV 导出文件,以注册在此插件安装之前已完成的付款。

当收到付款时,插件会根据用户用于 Ko-fi 付款的电子邮件地址与其 Discourse 电子邮件地址进行匹配。如果这两个地址不一致,用户可以通过用户偏好设置中的专用 Ko-fi 页面认领已完成的付款。此外,用户还可以选择隐藏其交易记录,使其不对公众显示。

配置

您需要拥有一个正常工作的 Ko-fi 账户。以常规方式安装插件后,您需要在插件设置中配置 Ko-fi Webhook 令牌,并将 Webhook URL 配置为您的 Discourse 安装地址:https://example.org/ko-fi/webhook

完成上述步骤后,您可以从 Ko-fi 发送测试消息,并在插件的状态页面检查一切是否正常。

您可能希望在启用 Webhook 或导入 CSV 之前先配置奖励。否则,您需要重新处理奖励,以便它们能应用到现有的付款上。

设置

以下是设置项及其描述的表格:

名称 描述
kofi_webhook_token Webhook 验证令牌。您可以在 Ko-fi 账户 中找到它。
kofi_account 您的 Ko-fi 账户名称。如果启用了仪表板描述和 Ko-fi 小部件,将使用此名称。
kofi_dashboard_enabled https://example.org/ko-fi 启用 Discourse 中的捐赠仪表板。
kofi_dashboard_in_menu 定义是否应在菜单中添加指向仪表板的“捐赠”菜单项。如果您希望自定义此菜单项,请禁用此选项。
kofi_dashboard_topic_id 包含仪表板描述的主题 ID。启用插件时,会在“工作人员”类别中创建一个包含默认消息的主题。
kofi_dashboard_widget_enabled 在仪表板上启用 Ko-fi 捐赠小部件。这需要已配置 kofi_account
kofi_dashboard_count 如果大于 0,则显示该数量的最近付款。
kofi_dashboard_types 要包含在最近付款中的 Ko-fi 付款类型。
kofi_dashboard_anonymous_view 为未认证的访客在仪表板上显示的付款详情。
kofi_dashboard_authenticated_view 已认证成员访问仪表板时显示的详情。
kofi_goal_amount 如果大于 0,则在仪表板上启用“目标”小部件。这可用于显示达到目标金额的进度。
kofi_goal_period 用于计算目标的周期。
kofi_goal_since 如果您选择“自”周期,这将是计算目标进度的起始时间戳。
kofi_goal_show_amount 如果启用,还将在目标小部件上显示目标金额。否则,您只会看到百分比。
kofi_goal_types 计入目标的 Discourse 付款类型。
kofi_goal_progress_bar_integration 启用与 进度条主题组件 的集成。计算目标进度时,将更新该组件的当前值和最大值设置。
kofi_leaderboard_count 如果大于 0,则在仪表板上显示排行榜小部件。
kofi_leaderboard_days 根据过去几天的付款计算排行榜。
kofi_leaderboard_types 用于排行榜计算的 Ko-fi 付款类型。

奖励配置

除了上述设置外,Ko-fi 插件设置中还有一个“奖励”选项卡,您可以在其中配置一次性奖励和订阅奖励。

对于订阅奖励,您必须输入在 Ko-fi 上配置的层级名称。如果您在 Ko-fi 上更改了层级名称,也需要在此处更新,因为 Ko-fi 仅发送显示名称,而不是某种唯一 ID。

在创建或修改奖励时,您可以请求重新处理付款,以便将这些奖励授予现有的付款。

管理

除了设置、状态和奖励选项卡外,Ko-fi 插件管理页面还包括以下选项卡:

  • 付款 – 已收到的 Ko-fi 付款列表。
  • 账户 – Ko-fi 付款与用户之间的链接。
  • 导入 – 导入 Ko-fi 付款的 CSV 导出文件。使用此功能导入已收到的付款。
  • 匿名化 – 允许您完全匿名化由特定电子邮件地址进行的付款。
3 个赞

请注意,Ko-fi 仅支持接收单一货币的付款。本插件在计算时仅考虑收款信息中的金额,而不考虑货币种类。未来更改货币将导致各种计算出错。本插件不支持货币转换。

我目前依赖一个自托管的 PHP 脚本来在我的网站上处理此事。

使用您的插件后,我不再需要这样做了。希望我的问题不会让您感到不悦,但我觉得询问关于非官方插件的情况是合理的:您是否会长期维护这个插件?您自己是否在使用它?

理论上,您是否反对通过拉取请求(PR)来集成一个公共进度条(类似于我的主题组件)?

据我了解,仪表盘可以被注册会员访问,但似乎没有可以添加到其他位置的部件?

1 个赞

我在自己的 Discourse 站点上使用了此插件(但并未使用其全部功能)。我计划同时支持 ESR 版本(我正在运行该版本)和最新版的 Discourse。这两个版本都在项目设置中进行了测试。如果这些版本发生变化,这些测试至少每周运行一次。

目前,只有插件的 Ruby 端进行了自动测试(几乎涵盖了其每个小部分)。我还需要制定 JavaScript 端的测试用例,我计划最终完成这项工作。

image

对此没有任何问题。我也非常欢迎任何关于添加扩展点(例如供主题组件使用的插件出口,或供插件使用的事件)的建议。

仪表板对所有访问者开放。

我特意没有创建将 Ko-fi 小部件添加到任意位置的功能。我认为这可以通过主题组件实现,就像您的进度条组件一样。kofi_account 账户设置对客户端可用,这足以支持任何类型的小部件。

1 个赞