Setting up a subscription section of the website
gobubbles - December 30, 2008 - 22:20
Hi,
I'm building a site which has a timed subscription section. Essentially, users must pay using Paypal to gain access to a 10-week long training course. After the ten weeks expire, the subscription expires and users need to re-subscribe if they wish to gain the same access again.
How do I go about setting this up? I've looked at some modules, such as lm_paypal, but I suspect that to control user permissions I need something else on top of that?
Many thanks for your help!

It depends . . .
As a matter of fact, we've created a site similar to this. Basically, it involved using two key modules: Content Access to restrict nodes to one or more roles (eg subscribers), and Ubercart to sell the subscriber role.
It's easy enough if you want to give subscribers access to the same content at the same time -- see the Ubercart documentation for details on how to sell roles.
However, I notice you mentioned the word "timed" and, depending on what you mean exactly, that could lead to complications. For example, for our site, our client/friend wanted new subscribers to only access node #1 initially, then after two weeks gain access to node #2, then after another two weeks gain access to node #3, and so on.
The only way we could find to do this was to a create a role for each node: "subscriber #1" (giving access to node #1), "subscriber #2" (giving access to node #2), etc. With Content Access, it's easy to restrict an individual node to a certain role. However, we currently have to manually upgrade subscribers' roles every two weeks so that they gain access to the new nodes. We've looked long and hard but there's no way to do this automatically using existing modules.
Being a small, low-budget site, manually upgrading the roles is not too difficult. However, it would be unworkable on a large site -- you'd need to find a solution to automate the process. Apparently, the Rules module can automate the role upgrade process, but it's for Drupal 6 only and we were stuck with Drupal 5 because Ubercart didn't have a stable D6 version (it's only recently in beta). However, the best solution would be a custom module to automate the process of giving subscribers access to new nodes at a timed interval -- preferably without the need for having so many roles.
On the other hand, if you don't need a timed sequence like this, setting up your training site should be fairly straightfoward.
Thanks, Glenn. Very
Thanks, Glenn. Very helpful.
My site, like yours, would need users to access nodes sequentially. Can't face manually updating user access, though! For the time being it's much easier if I don't worry too much about users accessing content ahead of time. Can't punish eagerness!
So as a workaround, I'll allow access to everything from the moment of subscription and provide details of what the training sequence must be. I'll then implement a workflow that establishes a suggested timeline on subscription, with reminders to move on to the next node sent out at specific points in the timeline, say weekly. Which workflow module - Rules or Workflow.ng? - is better suited to establishing the timeline based on the subscription date?
Also wondering how long before Ubercart for D6 goes in rc status, as I'd like to stick with D6. Happy to wait for a month or two, as the plan is for my site to go live with the full functionality in March.
I'd wait for Ubercart D6
I would wait for Ubercart D6. No guarantees of course, but at the rate the developers are going, I'd be surprised if it isn't ready by March.
One reason for going with Drupal 6 is Rules, which is the D6 version of Workflow-ng with extra features including a new scheduling feature.
Like you, we weren't fussy about subscribers technically having access to nodes ahead of time, but we tried many D5 modules and solutions (eg Views with Views Scheduler and others) and in the end, our manual technique was the only realistic way we offer subscribers a sequence of nodes. The main problem is you've got a whole lot of sequences happening at the same time, with each one starting from when a user subscribes.
Thankfully, we've found manually upgrading the roles is not too time-consuming. Nevertheless, I wish we could start again now and try D6 with Rules. I can't say for sure if Rules will do what you want, but it seems to have the most potential. You should check other modules yourself too, of course. There might be a D6-only module that I missed, or a brand new one, that will do the job.
Can you let me know how you go? I'd be very interested to hear how you get it working. Alternatively, if you decide to go for a custom module, there might be some way we can co-operate. Just contact me via my drupal.org contact form.
Thanks and good luck!
In the same boat...
Hi All,
Thought I would jump in here as we're needing to offer a website subscription services with different access levels too.
It would have to support a payment model like this, and auto expire access should payment lapse:
£x.xx - 10 Day Trial
£x.xx - Monthly Subscription
£x.xx - Full Year Subscription
I have found the following paid for software that integrates with the drupal database - http://www.omni-secure.com/feature.php
What do you guys think of it?
Cheers,
Matt
Another...
Further to my last, i have found another paid for module here - http://www.westernstudios.net/subscription-install-drupal.html
Try Ubercart and Content Access first
Hi Matt,
I don't know about those commercial apps, but in your case I would definitely try Ubercart and Content Access first. Check out the Ubercart documentation: it can sell any number of roles to customers, with varying expiry dates.
The problem I had (and gobubbles faces now) is that we wanted to sell a sequence of pages, with subscribers gaining access to new content at a timed interval. However, from what you've described, it sounds like Ubercart and Content Access might handle all your needs.
Possible good news
There's a module that might offer a timed sequence in the future: http://drupal.org/node/299974.