Creating custom reports in Paid Memberships Pro allows you to monitor the data that matters most to your operations. Paid Memberships Pro includes four reports in the Memberships > Reports screen of the WordPress admin. These reports highlight Sales and Revenue, Signups and Cancellations, Active Members Per Level, as well as data for Member Visits, Views, and Logins.
This guide shows you how to add a new custom report tab in the Memberships > Reports admin area. Your custom report, like this one that shows membership order refund rate, appears like any other built-in report in the Memberships admin.

Understanding Widget vs. Detailed View
When you add a custom report using this recipe, you’re creating two parts of a reporting interface in the WordPress admin: a summary widget, and a detailed report view.
The summary widget appears alongside other reports on the main Memberships > Reports screen. This is a compact view designed to show quick stats or high-level trends. When someone clicks on that widget, it opens a dedicated detail page.
The detail view is where you can display more in-depth reporting. It displays charts, tables, filters, or any other data visualization that fits your use case. The code in this recipe sets up the structure for both areas.
About the Code Recipe
The recipe adds a blank custom report entry to the Memberships > Reports admin page, which you can use as a foundation to build advanced reporting tools tailored to your membership site, such as tracking refund rates, engagement trends, or custom user activity.

The Code Recipe
Adding the Recipe to Your Website
You can add this recipe to your site by creating a custom plugin or using the Code Snippets plugin available for free in the WordPress repository. Read this companion article for step-by-step directions on either method.
How to Customize This Code Recipe
You can keep things organized by using a PMPro Customizations Plugin. Here is how you can extend this functionality:
- You can save your customized report code in a separate
.php
file and then require it within the Customizations plugin by doing this:
require_once(dirname(__FILE__) . "/reports/pmpro-reports-extras.php");
You can also see this recipe, which shows you how to query active members based on usermeta, useful for creating custom member reports.
Related: Custom Reports
We have a few articles in our blog on how to create and display custom reports. Check the links below to explore the guides: