This project will create a plugin that drips content to website members based on their sign-up date. The plugin will leverage data that will be pulled from [url removed, login to view] via their API to confirm that a user has a valid subscription. (See: <[url removed, login to view]>) Subscription information must be saved so that if a user cancels their membership for a period of time, and then re-activates it, they will continue to get content from sequentially without having to start the whole content delivery process over again. The administrator also needs to order content delivery with drag and drop widgets.
# Functional Description
## Answering Two Questions
The plugin is designed to answer two questions:
1. Does this member have a valid subscription to our service?
2. What content has this member earned?
First, the plugin has to check to make sure a member has a valid subscription to the service. It does this with two mechanisms:
1. When a user logs in using the WordPress system, it will check with [url removed, login to view] via their API to make sure that the user has a valid subscription.
2. Secondly, once a month (via a cron job) the system will check all users to make sure the most recent credit card transactions were approved and money was transferred. (This is also done via the API for 1ShoppingCart).
Secondly, the plugin logs points. Each week the subscriber has been a paying member of the site, they receive one (1) point. These points dictate how many of the videos in the sequence of videos we have for them are revealed for them to watch. The points are calculated every day (executed via a cron job), and are measured based on the anniversary of the membership. (This is further and more carefully explained in the Use Case: Drips Content on page 11). Simply put: each week, on the weekly anniversary of the membership, the plugin will query 1ShoppingCart to ensure the membership is still valid, and if it is, record a point for that month.
The total amount of points for a user is the sum total of all these records.
As a membership continues, the member will continue to unlock videos by being a paid subscriber.
## Managing Subscriptions
The 1ShoppingCart system will handle all the transaction for the subscriptions including security and customer cancellations. However, the plugin must provide a simple and easy way to view transactions and subscriptions that have been cancelled or failed.
To do that, it will create a submenu called "Membership Manager" in the Relationship HQ Admin panel in the dashboard (See: Figure 2: Membership Manager on page 7).
This membership manager will provide the following functionality:
1. It will show all memberships that are marked as "failed" and also NOT marked as processed.
2. It will allow the administrator to mark those failed memberships as processed with a link button that says "Mark as Processed," which appears when you mouse over an entry, or by clicking the checkboxes and selecting "Mark as Processed" from the bulk actions drop down at the bottom of the entry.
## Working with User Profiles
Members of the site will have several pieces of information that need to be saved about the member and manageable through their Profile in the Users menu ([url removed, login to view]):
1. Billing Failed Status.
2. Display Membership History
** **READ THE ENTIRE ATTACHED RFP BEFORE BIDDING.**