A few months ago I launched a website where visitors can subscribe to plans.
Visitors register via Gravity Forms + User Registration. Then they’ll choose a subscription, this will go via a form too. This form is extended with payment gateways as Paypal and iDeal.
Both gateways/plugins have hooks we can listen too. For iDeal this is ‘gform_ideal_fulfillment’. For Paypal it’s gform_post_payment_status. These hooks come with some parameters we can use to check if a payment succeeded.
When a payment succeeds, we create a new posts based on the submission of a user. A new Post is created in the Custom Post Type. The author will be the user himself, so it’s linked to him.
In this case I’ve hooked some actions into form submission and post creation. Attach a coach to the user, e-mail the coach that a post needs to be configured. When the post is configured, e-mail the subscriber that his post is now active.
There’s a daily check for all active posts that mail the user or admin when he needs to complete a form before a specific date/time.
In this projects case all posts were challenges. Challenges have periods (monthly, weekly) that the subscriber needs to fill in. If he/she didn’t update his challenge before a date, an e-mail will be sent.
Subscribers can fill in their fat percentage, weight, upload photos and ask questions.
I’ve used Gravity Forms, Advanced Custom Fields, Pronamic iDeal and Gravity Forms PayPal Standard Add-On to get a base which will be extended with own functionality to get this result.