Enhanced level management for Paid Memberships Pro with advanced filtering, sorting, and search powered by DataTables. PMPro Level Explorer adds a powerful admin interface to manage membership levels efficiently, perfect for sites with many levels.
- DataTables Integration - Fast, responsive table with sorting, pagination and all level details at a glance
- Advanced Filtering - Filter by Group, Cycle, Trial Enabled, Expiration, and New Signups Disabled
- Live Search - Instantly search levels by name or any other information
- State Persistence - Automatically remembers your sort order, page length, filters, and search across sessions
- Active Member Counts - See real-time active member counts per level
- Order Counts - View total orders per level with direct links to filtered order pages
- Expandable Details - Click to expand rows and view descriptions, messages, and protected content
- PMPro Groups Support - Displays levels organized by PMPro Groups with IDs
- Quick Actions - Edit, Copy, and Delete levels directly from the table
- PMPro Design System - Matches PMPro's admin styling as much as possible
- Lightweight - Locally hosted DataTables 2.3.5, no CDN dependencies
- WordPress: 5.0 or higher
- PHP: 7.4 or higher
- Paid Memberships Pro: Latest version recommended
- Tested up to: WordPress 6.4
- Stable tag: 1.4.3
- Upload the
pmpro-level-explorerfolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu in WordPress
- Navigate to Memberships → Level Explorer to use it
This plugin supports automatic updates through Git Updater.
- Install and activate Git Updater
- Install this plugin using any method above
- Git Updater will automatically check for updates from the GitHub repository
- Update notifications will appear in your WordPress admin dashboard
Repository: raphaelsuzuki/pmpro-level-explorer
Branch: main
Go to Memberships → Level Explorer in your WordPress admin menu.
- ID - Level ID
- Name - Level name
- Group - PMPro Group(s) the level belongs to
- Members - Active member count
- Initial - Initial payment amount
- Billing - Recurring billing amount
- Cycle - Billing cycle (e.g., "1 Month")
- Billing Limit - Number of billing cycles
- Trial Enabled - Whether trial is enabled
- Trial - Trial amount
- Trial Limit - Trial billing limit
- Expiration - Membership expiration period
- New Signups - Whether new signups are allowed
- Actions - Edit, Copy, Delete
Use the dropdown filters to narrow down levels:
- Group - Filter by PMPro Group
- Cycle - Filter by billing cycle
- Trial Enabled - Show only enabled/disabled trials
- Expiration - Filter by expiration period
- New Signups - Filter by signup status
Click Reset Filters to clear all filters and reset the table to defaults.
The table automatically remembers your preferences across sessions:
- Current page number
- Page length (25, 50, 100, 500)
- Sort order and column
- Search term
- Filter selections
Your preferences are saved in your browser and persist until you click "Reset Filters" or clear your browser data.
Type in the search box to filter levels by name in real-time.
Choose to display 25, 50, 100, or 500 levels per page.
- Edit - Opens PMPro's edit page for the level
- Copy - Creates a copy of the level
- Delete - Deletes the level (with confirmation)
- Main Level Explorer Interface - Enhanced DataTables view with filtering, search, and expandable rows
- Expanded Row Details - View level descriptions, messages, and protected content
- Advanced Filtering - Multiple filter dropdowns for efficient level management
- State Persistence - Table remembers your preferences across sessions
The plugin provides several hooks for customization:
Change the default sort column and direction:
add_filter( 'pmpro_level_explorer_default_order', function( $order ) {
return array( 1, 'asc' ); // Sort by Name (column 1) ascending
// Column indices: 0=ID, 1=Name, 2=Group, 3=Members, etc.
} );Change the default number of levels per page:
add_filter( 'pmpro_level_explorer_page_length', function( $length ) {
return 50; // Show 50 levels per page
} );Change the available page length options:
add_filter( 'pmpro_level_explorer_length_menu', function( $menu ) {
return array( 10, 25, 50, 100 ); // Custom options
} );Disable table state persistence (sort order, filters, search, etc.):
add_filter( 'pmpro_level_explorer_state_save', '__return_false' );No, it creates a separate page. PMPro's original levels page remains unchanged.
Yes! Use whichever interface you prefer for different tasks.
Yes! Levels are automatically organized by their PMPro Groups.
No, it only reads from PMPro's existing tables.
See CHANGELOG.md for version history.
Code optimization release: Replaced custom DOM manipulation with native DataTables features. Improved performance and maintainability.
Simplified Custom Trials filter using native DataTables features. Added configurable state saving option. Significantly reduced code complexity.
Enhanced UI with better filter organization and expand/collapse functionality. Custom Trials filter repositioned for better UX.
Major update: Added table state persistence, expand/collapse all functionality, and improved filter management.
Added Orders column, checkout links, and enhanced child row details. Improved space utilization and user experience.
- Issues: GitHub Issues
- Documentation: This README and inline help
- Updates: Automatic via Git Updater
Contributions are welcome! Please submit pull requests or open issues on GitHub.
- Repository: https://github.com/raphaelsuzuki/pmpro-level-explorer
- Bug Reports: Use GitHub Issues for bug reports and feature requests
- Pull Requests: Follow WordPress Coding Standards
GPL v2 or later - https://www.gnu.org/licenses/gpl-2.0.html
This repository and its documentation were created with the assistance of AI. While efforts have been made to ensure accuracy and completeness, no guarantee is provided. Use at your own risk. Always test in a safe environment before deploying to production.