I'm in the process of creating a website that will offer paid subscriptions to various types of content. The content will be classified using a Vocabulary within the Taxonomy system. Each category will be associated with a Term and users will be able to subscribe to one or more Terms.

The existing Premium module does exactly what I need except that it only allows for a single subscription type. Therefore, I would like to modify this module so that it allows for multiple subscriptions per user.

Here's what I envision:

  • In Premium settings, the admin would specify which Vocabulary to use to list the subscription types. Each Term within the Vocabulary would correspond to a subscription type.
  • Each user could subscribe to one or more Terms within the designated Vocabulary. I will probably handle the actual subscription process through a third party script such as aMember or using one of the Drupal PayPal frameworks. We would create a new Subscriptions table in the database and the third party script would add/delete records from this table. If you can do the subscription processing integration/development as well, that would be great.
  • Currently, when a user tries to view a premium Node, the Premium module checks to see if the user's role has permission to view premium content. This would have to be modified to instead check the Subscriptions table to see if the user is subscribed to the Term associated with the Node.
  • Currently, when a non-subscriber is denied access to a premium Node, the Premium module displays a message providing instructions on how to become a subscriber. I would need to be able to customize this message for each of the subscription types (Terms). I think the best way to do this would be to retain the existing "Premium Body Text" field in Premium settings, but allow the admin to enter variables in this box and replace the variables with the values relevant to the current Term when the message is rendered. The variables would be:
    • Term - automatically substituted with the name of the Term
    • Description - admin would specify a description for each Term in Premium settings
    • Link - admin would specify a URL for each Term in Premium settings. This would be used to link to the shopping cart

I am willing to fund the development of this module enhancement and the entire project may be contributed back to the Drupal Community.

Comments

Bryan76’s picture

This is exactly the enhancement I need. Well, it's more than I need. I simply need to be able to protect only nodes that have a particular term, and if it doesn't have that term, don't protect it.

henns20’s picture

thats all
henns20

bkonia’s picture

Tax Access and Tax Lite were not suitable for various reasons. I have hired a developer to enhance the Premium module and the enhanced module will be made available to the Drupal community.

subsidie’s picture

Many thanks that the Premium module and the enhanced module will be made available to the Drupal community.

Can you tell why the the Premium module and the enhanced module will be made available to the Drupal community?

iaminawe’s picture

Hi,

I am looking for some similar enhancements to the module and I was wondering if this work was ever completed for you and whether it was contributed back?

Thanks

bkonia’s picture

The module was completed and my agreement with the developer was that it would be contributed back to the community. I'm not sure if this has happened or not, but you could contact the developer directly to find out the status. The company is OSSCube and their website is http://www.osscube.com. The contact person is Vivek.

vineet.osscube’s picture

Hi All

The changes on the premium module have been completed. This required changes in couple of modules other than premium module. Here is the summary of the changes done by us:

Extending premium and couple of other modules for drupal 6.x-dev to capture the following requirements.
1. There will be a content type (for example Premium) over which default premuim access rules apply.
2. There is a vocabulary associated with ‘Premium’ content type.
3. Terms in this vocabulary will be added whenever a new subscription is added. The term name will be the same as subscription name. In the subscription table we will map/push the term id with the added subscription in im_paypal_subscriptions master table.
4. Whenever a user wish to access the premium content, premium module will look at the content type as well as the term/subscription associated with the user to find out all nodes mapped to user terms.
5. A custom error message is displayed if user does not have privileges for viewing the content. The message might contain the url to redirect user to a corresponding subscription page.
6. User can view all the subscriptions he has purchased along with a list of non-subscribed subscriptions. On clicking of unsubscribe link, user is redirected to paypal for canceling the subscription and after canceling, drupal database is updated and premium content related to that subscription is no longer available to the user. In case user cancels subscripion directly at paypal rather using our site, the cancel status is also updated in drupal database and user will no longer be able to view the content specific to cancelled subscription.
7. Premium content is excluded from the RSS feed published by Drupal.As RSS feed generation happens in the core “node” module of drupal and that is highly cohesive so we had to modify node_feed() function in modules/node/node.module to get the desired output. The node.module file is attached here with the updated code. The attached file is for drupal 6.x-dev.
8. The original Premium module only protects the Summary field, not CCK fields. Since the content might be in the form of CCK fields! Therefore, we made it so that all the CCK fields are hidden when a user views a protected node.
9. In teaser copy, user does not see subscription message. It will only display while accessing the actual node.

We will be shortly uploading these changes on Drupal.org. Meanwhile if you would like to receive the source code, please feel free to contact on drupal@osscube.com

Regards

Vineet

OSSCube
web: http://www.osscube.com/drupal
Ph.: +1-888-967 7282
email: drupal@osscube.com
blog: http://www.osscube.com/blog
______________
Acquia Partner | Drupal Organization Member