mojoCMS Premium Add-Ons & Services

Site Membership Pro

Site Membership Pro

Features & Description

Site Membership Pro provides additional functionality on top of mojoPortal to make it easy to monetize access to your premium site content.

mojoPortal already provides role-based security so that you can use roles to protect your premium content. For example, you could create a role named "Members Only" and you could set that role as the only allowed View Role on pages in your site that contain premium content. However, managing the roles assigned to a user is a manual process in mojoPortal that can be done by Administrators, Role Administrators or Roles That Can Manage Users. So one would have to go to each user who should be given access to premium content and add the user to the "Members Only" role.

Site Membership Pro provides the missing pieces to make it easy to sell membership subscriptions and automatically grant the user the role or roles that provide access to the premium content on your site when they complete a subscription purchase.

You define Membership Levels which have a name and one or more roles that are provided with this level of membership. You could keep it simple and just have one level for "Members Only", or you could have multiple tiers of access like Gold, Silver and Bronze each providing different roles that protect sections of your site content.

Then you define Membership Product(s) which grant the user one of the Membership Levels (and the associated roles) for a specified number of days for a specified price. Products can be enabled or disabled and they can have begin and end dates that determine when they are on sale. A grace period can also be specified on the product such that users are not removed from the granted role(s) until after a certain number days after the actual expiration date.

When a user purchases a membership product they are immediately granted the roles provided by the membership level when the payment has cleared. The begin and end dates of the membership are set at the time of purchase and a background task handles removing roles from the user when the membership expires or the grace period is over (if the user has not renewed).

You can also configure notifications on the products so that users can receive reminders when their membership is coming up for renewal. Reminders can be configured as a specific number of days before or after either the end date of a membership or the end of the grace period. You can create multiple reminders per product so that you have a series of them to encourage renewal.

You can also define reminder templates for plain text email messages. Templates support some token replacement and you must assign a template to a reminder in order to save it. So the reminder will send a plain text email replacing the tokens from the template at the scheduled time if the user has not renewed.

The same background task that manages removal of users from roles if their membership expires also handles sending the reminder messages.

Note that the reminders are intended to provide a link back to your site so the user can renew his membership before it expires. To renew, users have to go through the checkout process. Site Membership Pro does not retain any credit card information and does not automatically charge cards to renew subscriptions. Possibly in the future, we will look into available APIs from PayPal and others for recurring payments but we have no plans to retain credit card information in the future. The risks and liability potential involved with retaining credit card information without proper infrastructure and staff to secure the data far outweigh the fact that it would be nice to be able to do that.

Since users probably don't want to go through the checkout process every month it is recommended to structure your membership products with fairly long durations like 6 months or one year as opposed to a month at a time. Free products are also supported so you could have one product that provides a free trial of Premium Access for a limited number of days and a One Year Subscription for $120 for example. You can also mark a product as available only for new members so that existing members can't get the free trial offer.

Supports Authorize.NET, WorldPay, PlugNPay, PayPal, Google Checkout - ie the same payment systems supported in all mojoPortal eCommerce products (WebStore, Event Calendar Pro, Web Invoice Pro). We are also investigating adding support for WorldPay for all our eCommerce products in the near future.

We've created a demo site to show the public facing side of the feature at  You can also try out the back end administration of the feature on our main demo site where you can log in as the administrator, but you'll need to add it to a page manually and then you will see the "Settings" and "Manage" links.

What Site Membership Pro Does Not Do

Site Membership Pro is NOT a replacement for the site registration system. Users must register or sign in to purchase a premium membership, so they need to go through the normal registration process first to get a free account, then once they complete the membership purchase they are immediately granted the roles provided by the membership.

Site Membership Pro is not involved in protecting your premium content, that is done by configuring roles that can view pages on your site and is built in functionality of mojoPortal.

Site Membership Pro does not retain any credit card information and cannot automatically charge cards when membership renewal is due.

Site Membership Pro does not prevent an Administrator, Role Administrator or Roles That Can Manage Users from adding or removing users from roles.

System Requirements & Installation

Site Membership Pro requires mojoPortal version or higher hosted with ASP.NET 4.5 or higher using either MS SQL or MySql for the database. We may add support for other database platforms in the future if there is sufficient demand. If you need an older version contact us.

Version History

  • Version Initial Release 2012-04-19
  • Version Released 2012-05-01 fixed a bug where free orders could not be completed if only PayPal and/or Google Checkout were enabled. Fixed a bug where MS SQL data layer parameters had typos that caused debug assert exceptions when used with debug builds of mojoPortal. Fixed a typo in the resource file
  • Version Released 2012-06-02 fix bug where management link was only visible to Admins and Role Admins
  • Version Released 2012-09-09 fixed bug where site currency was not being used in product list.
  • Version Released 2012-10-12 added support for WorldPay payment gateway
  • Version Released 2012-10-27 fixed a bug where the order total shown in the confirmation email and order detail page was formatted incorrectly when using EUR currency
  • Version Released 2012-11-02, fixed a bug where checkout for free orders did not work when not using a direct card processing payment gateway, ie when only using PayPal or Google Checkout
  • Version Released 2013-07-29, compatibility update for mojoPortal
  • Version Released 2013-12-11 compatibility update for mojoPortal, newback-endd order entry page for creating orders manually
  • Version Released 2014-01-08 added support for PayPal Express Checkout
  • Version Released 2014-01-08 added support for alternate price for renewals vs new memberships
  • Version Released 2014-02-16 fixed bug where if both paypal and were enabled the secondary paypal button on the checkout page did not work.
  • Version Released 2014-04-14 fixed bug in order entry section where state list dropdown did not update for countries other than US. Requires mojoPortal or higher
  • Version Released 2014-07-18 compatibility for mojoPortal and .NET 4.5
  • Version Released 2014-12-02 compatibility for mojoPortal
  • Version Released 2015-04-29 compatibility for mojoPortal
  • Version Released 2016-04-10 compatibility for mojoPortal
  • Version Released 2018-10-20 compatibility for mojoPortal 2.7, includes MySQL 8 support.