We’re trying to create a drip-campaign style experience, where a new user sees only one category when they join and then every few days another category is unlocked.
We currently use category security to hide future lessons from students by setting those categories to admin-only access, and then, as the days pass, manually changing the security setting to allow everyone access on the day of the lesson/discussion. But this only works for everyone in our Discourse at the same time.
One thing that would save us time and ensure quality is if there was some sort of chron job we could associate with changing the status of a category. Allowing us to set up and create a drip.
But what we really want to do, and what we think might have somewhat broad appeal without creating technical debt, is to create the following:
Ue the time delta/difference between now and an individual user’s “created date” (created_at or created_at_age) to determine which categories they can and can’t view (e.g. If it’s been 7 days since they joined, then show category X).
There are two ways I can envision this working:
- A setting in the admin for a category that says, “open this category for users that have been enrolled more than X days.”
- Using the existing user level structure (guest, basic, moderator, admin, owner) which already can be used to determine category access, we could create basic1 through basic999 and ratchet users through the levels using created_at_age as the variable.
So, to recap: a way to algorithmically determine when the any category opens for user interaction, either by calendar date or by user experience age.
I think it opens Discourse to a host of really powerful uses, because keeping the community in sync (or cohorts within in sync) is an essential element.
Thanks for considering this!