I originally launched The WP Butler back in December 2012 and the subscription part of the service was powered by the excellent Restrict Content Pro by Pippin Williamson, using the Stripe add-on to avoid having to use PayPal at all.
Recently however, in preparation for the relaunch of the service with the build-your-own-plan option, I needed to change things up. Restrict Content Pro relies on pre-defined subscription plans to determine how long a user should be signed up for, and for how much, which was fine based on my old model. With the new service though, I need to be able to build plans dynamically based on the needs of the user, so pricing was very much variable and the new subscription system needed to account for that.
That’s where (More) Stripe comes in. (More) Stripe is the premium version of the Gravity Forms + Stripe plugin which is available for free in the WordPress repository. Both are maintained by the talented and very helpful Naomi Bush.
The free version is excellent for people looking to perform simple transactions with Gravity Forms and Stripe (for the uninitiated, Stripe is the payment gateway you should be using – not PayPal). You can make one-off transactions (such as invoice payments, or donations) and it works with international Stripe accounts.
Where things get really useful is when you buy (More) Stripe, which only costs $49 by the way. Now, you can create recurring transactions (subscriptions), use coupons, save credit cards to charge to them later, charge one-off setup fees (on subscriptions) and you can trigger events when subscriptions are changed or cancelled, like changing a user’s role.
The new feature which will be released soon is the final piece of the puzzle which helped me to build The WP Butler in the way I needed it to run: you can create plans dynamically based on the form total in Gravity Forms.
As such, I was able to build a form with a product (maintenance plan) with as many configurable options as I wanted (updates, backups, access to training videos etc.), which allowed the user to select which services they wanted and which they didn’t and come up with their custom plan, with a custom price and a custom set of services. I simply told (More) Stripe how long each subscription period should last and created a feed to Stripe, and (More) Stripe now does the heavy lifting in the background.
In conjunction with the Gravity Forms User Registration add-on to add user meta for all of the services they selected and create their user account, I now had a fully functioning way to allow users to sign up for their custom plan.
Beyond that, I really wanted users to be able to update their plan at any time. Using a slightly modified version of the signup form, they can select which options they want to add or remove from their service (with their existing plan pre-filled by the User Registration Add-on). They click submit and their access and billing is updated with immediate effect. Users can also change their billing information and cancel their service just as easily, all because of (More) Stripe.
With all of that in place, I had the powerful subscription system that I had longed for. And it’s being put to good use on the new WP Butler.
(More) Stripe really is an underrated plugin and not enough people know about it, which is part of the reason that I’m writing about it: I want you to know just how much you can do with a mixture of Gravity Forms, their add-ons and (More) Stripe. I highly encourage you to check it out.