How to create a Customer portal page

Learn how to configure a Customer portal page where customers can manage their subscriptions (upgrade/downgrade, cancellation), update their credit card, and download invoices.

Introduction

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.

How it works

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:

Customer portal with SaaS authentication

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.

Use the [fullstripe_customer_portal] shortcode.

Saas authentication login flow

1) Customer enters her email address Customer portal - Enter 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 Customer portal - Enter security code

3) Customer portal page is opened Customer portal page of WP Full Stripe using SaaS authentication

Customer portal with Wordpress authentication

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.

Use the [fullstripe_customer_portal authentication="Wordpress"] shortcode.

Wordpress authentication login flow

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) Customer portal page of WP Full Stripe using Wordpress authentication

Account selector for customers with multiple Stripe customers

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:

The customer portal displays an account selector when multiple Stripe customers exist with the same email address

On the customer portal page, the customer can switch between Stripe customers by clicking on the “Select account” link:

The customer can switch between Stripe customers by clicking on the 'Select account' link on the customer portal page

Stripe customers without data in Wordpress

The customer portal works also for Stripe customers that don’t have data in the Wordpress database at all.

Email address case (in)sensitivity

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:

  • For customers in the Wordpress database, email address matching is NOT case-sensitive
  • For customers only in Stripe, email address matching is case-sensitive

Configuration

Customer portal settings

You can configure the customer portal on the “Full Stripe / Settings / Customer portal” page:

The customer portal settings can be configured on the 'Full Stripe / Settings / Customer portal' page

There are several options to customize the behavior of the customer portal:

Options to customize the behavior of the customer portal

What these options do:

Setting Description
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.

Email template for the one-time login code

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 email template settings for the Customer portal login code

The following placeholder tokens can be used in the email template:

  • %CUSTOMERNAME%
  • %CUSTOMER_EMAIL%
  • %CARD_UPDATE_SECURITY_CODE%
  • %CARD_UPDATE_SESSION_HASH%
  • %NAME%
  • %DATE

Customize the customer portal with Wordpress filters

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.

Tell the customer portal the subscription plans offered for upgrade/downgrade

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.

Add new sections to the customer portal page

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.

You can add sections to the top and bottom of the customer portal. Please refer to the fullstripe_customer_portal_header and fullstripe_customer_portal_footer filters for more information.

Troubleshooting

Page is reloaded after submitting the customer’s email address

This means that your website is cached.

Please exclude the Customer portal page from caching.

Still not finding the solution?

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.