Paid Memberships Pro works great with Stripe and it is our most recommended gateway when the option is available. In the Stripe dashboard, you will notice that they have a way to create “Products” and “Coupons” that can be applied to customers and customer subscriptions. These are really useful features, but PMPro doesn’t use them how you might expect.
Continue reading to understand more about how we integrate with Stripe Products, Trials, and Coupons.
First, we don’t integrate with Stripe coupons at all.
The “Discount Codes” that you can create in your PMPro site under Memberships > Settings are only managed in the WP/PMPro side of things. We do not mirror the discount codes in Stripe. Instead, when a user checks out on your site using a discount code, we adjust the pricing before sending the charge or subscription request to Stripe. Refer to this documentation for more help setting up a discount code in PMPro.
How We Integrate with Stripe Products
Every time someone checks out on your site, we create a brand new product (formerly called a “plan” in Stripe). We adjust the pricing of the plan based on the price the member should pay at checkout. This includes any price adjustments for discount codes, other Add Ons, or custom code. We pass the custom product (plan) to the Stripe API to set up a subscription.
Once that is done, we delete the plan we created. This doesn’t delete the subscription for the customer, but it does keep all of these custom one-time-use plans from littering up your Stripe dashboard. We used to delete the plan after it was created but as of version 2.1 of PMPro we are no longer deleting the plan.
Why does PMPro create custom “Products” in Stripe?
Creating the product through the API gives us greater flexibility over the price and other settings of a subscription. This method also allows our Add Ons and custom code to adjust the subscription pricing at checkout, which many membership sites need to do.
This approach also makes the code more similar to how we handle subscriptions in other gateways, which allows us to avoid a certain amount of custom code just to support the Stripe API.
The downside to this approach is that you cannot take advantage of some of the advanced reporting Stripe has for Products and Coupons. You can’t glance in Stripe and see how many people signed up for your “Gold Level” product because to Stripe it looks like everyone gets their own plan. Hopefully the PMPro reports make up for this.
About “Trials” in Stripe
For each subscription, you may see that customer is labeled as “trialing” until their next payment date. The “trial” status in Stripe just means that their first subscription payment has not been billed yet.
When your Paid Memberships Pro checkout processes a payment through Stripe for a recurring membership, you will see a one-time payment and a new subscription. The subscription will be labeled “trialing” until the next (first) date the subscription process. This allows you to charge a specific amount at checkout and also create the recurring payment.
For more information about our Stripe integration, please read the gateway documentation page here.