我推荐Ubercart 和Nodeaccess。
根据您的每个要求,您可以通过以下方式进行设置:
- 允许管理员创建课程,课程包含 5 个插槽,每个插槽时长为一个月
为您的 5 个插槽中的每一个创建用户角色,并相应地授予对视频内容(或您拥有的任何其他内容)的访问权限。因此,您将拥有 5 个不同的用户角色(除了经过身份验证的用户角色)每个用户角色都可以访问自己的插槽。
- 需要集成支付网关
启用 uc_payment、uc_credit、uc_paypal 和任何其他 Ubercart 支付子模块。在 admin/store/settings/payment 下配置您的支付网关
- 假设如果学生支付了第一批课程费用,系统允许该学生观看视频,一个月后时隙过期
在 admin/store/settings/products 上配置产品设置:
- 选中之前创建的 5 个用户角色作为产品角色,并将 DEFAULT ROLE EXPIRATION 设置为 30 天。
- 在 node/add/product 上添加代表您的 5 个插槽的产品 5 个产品(安装 Ubercart 时会创建 Product 内容类型)。设置“售价”并勾选“产品可发货”选项。保存。
- 对于每个创建的产品,转到编辑表单并单击“功能”选项卡(节点/%/编辑/功能)。在“添加新功能”下拉列表中选择“角色分配”,然后单击“添加”。选择您要分配的角色并保存。
因此,您将有 5 种产品可供购买。支付成功后,用户将被添加到相应的用户角色中,从而可以访问相应的槽。
- 如果学生支付了 2md 时段的费用,系统应允许该学生观看时段 1 和时段 2 的视频
现在,这可以通过为每个后续产品添加更多用户角色(如第 3 项中所述)来实现。
所以你最终会:
- 在购买“产品 1”时,用户将被分配“角色 1”。
- 在购买“产品 2”时,将为用户分配“角色 1,角色 2”。
- 在购买“产品 3”时,将为用户分配“角色 1、角色 2、角色 3”。
- 等等..
- 假设如果他未能支付第三个插槽,系统不应允许他查看任何插槽,
您可以使用nodeaccess 来限制对后续插槽的访问。说:
- 具有角色 1 的用户将有权购买产品 2;
- 具有角色 2 的用户将有权购买产品 3;
- 等等……