Learn how to configure a Customer portal page where customers can manage their subscriptions (upgrade/downgrade, cancellation), update their credit card, and download invoices.
The Customer portal is a self-service page on your website for your customers where they can manage their subscriptions (review, upgrade/downgrade, cancel), update their default card, and download invoices.
You can turn any page or post into the Customer portal by inserting a shortcode into the page.
How the customer portal works, described in the linked sections:
Use this authentication scheme if your website doesn’t have Wordpress users for customers.
WP Full Stripe doesn’t create Wordpress users by default. If you’re using WP Full Stripe Members then Wordpress users are created as part of the subscription process.
1) Customer enters her email address
After submitting the email address, the plugin sends an email to the customer which contains a one-time login code.
2) Customer enters login code
3) Customer portal page is opened
Use this authentication scheme if there is a Wordpress user for every customer. In this case the plugin uses the logged-in user’s email address to find the customer in Stripe.
[fullstripe_customer_portal authentication="Wordpress"] shortcode.
No Wordpress user is logged in
The plugin displays: “You are not logged in”
Logged in Wordpress user doesn’t have a subscription
The plugin displays: “You haven’t made any payments yet”
Logged in Wordpress user has active subscription(s)
The customer portal recognizes and handles the case when multiple Stripe customers exist with the email address of the customer.
In that case an account selector page is displayed, and the customer can pick the Stripe customer to manage:
On the customer portal page, the customer can switch between Stripe customers by clicking on the “Select account” link:
The customer portal works also for Stripe customers that don’t have data in the Wordpress database at all.
During the login process, the customer portal matches the entered email address against the email address of Stripe customers.
Email address matching rules differ based on where data is available about the Stripe customer:
You can configure the customer portal on the “Full Stripe / Settings / Customer portal” page:
There are several options to customize the behavior of the customer portal:
What these options do:
|Show subscriptions to customers?||Displays the list of non-canceled subscriptions of the customer and the possible actions.|
|Let customers cancel subscriptions?||Enables canceling subscriptions one by one or in bulk.|
|When to cancel subscriptions||Controls the cancellation behavior:
Immediately or At period end.
|Let customers upgrade/downgrade subscriptions||Enables upgrading/downgrading subscriptions.|
|Show invoices to customers?||Displays all non-zero invoices.|
|Scroll pane into view?||Enables scrolling the customer portal pane into view when the page is opened or reloaded.|
When the Customer portal page is used in SaaS authentication mode, the plugin sends a one-time login code to the customer.
You can configure the contents of the email on the “Full Stripe / Settings / Email notifications / Templates” page in WP admin:
The following placeholder tokens can be used in the email template:
There are certain aspects of the customer portal that can be changed programmatically by using Wordpress filters.
The following sections introduce these filters and contain references to implementation details.
Customers can upgrade/downgrade subscriptions on the customer portal (if enabled).
By default, the customer portal offers the subscriptions plans of the form that the initial purchase of the subscription was made on. However, if you’re using a pricing table then the subscription plans are spread across several subscription forms, so this approach doesn’t work.
You can tell the customer portal which plans to offer for upgrade/downgrade by implementing the fullstripe_get_upgrade_downgrade_plans filter.
You can use Wordpress filters to add new sections to the customer portal.
The filters receive the email address and the Stripe customer id of the logged in customer as parameters. Based on these data, your filter can fetch data from the database or from external sources, and display data to the customer.
This means that your website is cached.
Please exclude the Customer portal page from caching.
Our support team is happy to help you.Contact support
Feature requests are always welcome!
We consider each feature request carefully, and examine how it fits the roadmap for the plugin.