π Software keys sent via WhatsApp or E-mail within 24 hours (1 Day) ! β³ If not received, Contact us! ! π¬![]()
Add value to your membership, foster community, and build connections through member directories and listings. This Add On allows you to create a customizable Member Directory and individual Member Profile pages.
- Member Directory Page:Β Dynamically lists members, presents essential profile information, avatars, and direct links to the individual Member Profile pages.
- Member Profile Page:Β Highlights a specific memberβs information. Customize the profile display with no-codeΒ User FieldsΒ to create a useful resource for each member that encourages exploration, interaction, and even generates business opportunities.
- Customization Options:Β Build your Member Directory to fit your unique vision and set up specific visibility and access rules. Use the built-in WordPress blocks or shortcodes to arrange and display the directory, member profiles, and included user profile data based on membership level.
Installation
You must have the Paid Memberships Pro plugin installed and activated with a valid license type to use this Add On.
- Navigate to Memberships > Add Ons in the WordPress admin.
- Locate the Add On and click βInstall Nowβ.
- To install this plugin manually, download the .zip file above, then upload the compressed directory via the Plugins > Add New > Upload Plugin screen in the WordPress admin.
- Activate the plugin through the Plugins screen in the WordPress admin.
Β Try a Demo:Β View the PMPro demo siteΒ orΒ launch a free private demo now.
Initial Directory and Profile Page Setup
- Navigate toΒ Memberships > Settings > PagesΒ in the WordPress admin.
- Locate theΒ Additional Page SettingsΒ section.
- Click theΒ Generate PageΒ button to create a new page for your Member Directory and Member Profile.
- Note that these pages can also be created manually and then assigned to these Page Settings after they are published.
- Save Settings.
Video Demo: Member Directory and Profile
Edit Your Member Directory
β
A directory can be inserted in any page or post via theΒ Members Directory BlockΒ orΒ ShortcodeΒ ([pmpro_member_directory]).
- Navigate toΒ Memberships > Settings > PagesΒ in the WordPress admin.
- Locate theΒ Additional Page SettingsΒ section.
- In the Member Directory page setting row, clickΒ EditΒ to edit your directory.
- The generated Member Directory page should have automatically inserted the following shortcode:Β
[pmpro_member_directory] - You can swap this shortcode for a moreΒ user-friendly block option with visual settings. To do this, use the Block inserter to locate theΒ Members DirectoryΒ block.
- Remove the shortcode if you choose to use the block option.

Block Settings and Attributes
The Members Directory Block options appear in Settings side panel when you select the block.
- avatar_size: The square pixel dimensions of the avatar to display. Requires the βshow_avatarβ attribute to be set to βtrueβ. default: β128β (accepts any numerical value).
- fields:Β Display additional user meta fields. default: none (accepts a list of label names and field IDs, i.e.Β
fields="Company,company;Website,user_url"). You can also display user fields captured at checkout, such as the memberβs billing information. See aΒ list of payment fields stored in usermeta here. - layout: The format of the directory. default: div (accepts βtableβ, βdivβ, β2colβ, β3colβ, and β4colβ).
- levels: The level ID or a comma-separated list of level IDs to include in the directory. default: all levels (accepts a single level ID or a comma-separated list of IDs).
- limit: the number of members to display per page
- link: Optionally link the member directory item to the single member profile page. default: true (accepts βtrueβ or βfalseβ).
- order: Sort the results based on the order_by attribute in ascending or descending order. default: ASC (accepts βDESCβ or βASCβ).
- order_by: The sort order for the results. default: βu.display_nameβ (accepts βu.user_emailβ, βu.display_nameβ, βu.user_loginβ, βu.user_registeredβ, βmu.membership_idβ, βmu.startdateβ, βjoindateβ)
- show_avatar: Display the userβs avatar generated viaΒ GravatarΒ or user-submitted using a plugin likeΒ Basic User Avatars; default: true (accepts βtrueβ or βfalseβ).
- show_email: Display the userβs email address; default: true (accepts βtrueβ or βfalseβ).
- show_level: Display the userβs membership level; default: true (accepts βtrueβ or βfalseβ).
- show_search: Display a search form (searches on member display name or email address); default: true (accepts βtrueβ or βfalseβ).
- show_startdate: Display the userβs membership start date for their current level; default: true (accepts βtrueβ or βfalseβ).
We have aΒ list of shortcode examples at the bottom of this documentation pageΒ if you are using the shortcode method instead of the block.
Edit Your Individual Member Profile
A profile can be inserted in any page or post via theΒ Member Profile BlockΒ orΒ ShortcodeΒ ([pmpro_member_profile]).
- Navigate toΒ Memberships > Settings > PagesΒ in the WordPress admin.
- Locate theΒ Additional Page SettingsΒ section.
- In the Member Profile page setting row, clickΒ EditΒ to edit the individual profile.
- The generated Member Profile page should have automatically inserted the following shortcode:Β
[[pmpro_member_profile]] - You can swap this shortcode for a moreΒ user-friendly block option with visual settings. To do this, use the Block inserter to locate theΒ Member ProfileΒ block.
- Remove the shortcode if you choose to use the block option.

Block Settings and Attributes
The Member Profile Block options appear in Settings side panel when you select the block.
- avatar_size: The square pixel dimensions of the avatar to display. Requires the βshow_avatarβ attribute to be set to βtrueβ. default: β128β (accepts any numerical value).
- fields:Β Display additional user meta fields. default: none (accepts a list of label names and field IDs, i.e.Β
fields="Company,company;Website,user_url"). You can also display user fields captured at checkout, such as the memberβs billing information. See aΒ list of payment fields stored in usermeta here. - levels: The level ID or a comma-separated list of level IDs that allow profiles. default: all levels (accepts a single level ID or a comma-separated list of IDs).
- show_avatar: Display the userβs avatar generated viaΒ GravatarΒ or user-submitted using a plugin likeΒ Basic User Avatars; default: true (accepts βtrueβ or βfalseβ).
- show_bio: Display the userβs bio (if available); default: true (accepts βtrueβ or βfalseβ).
- show_billing: Display the userβs billing address (if available); default: true (accepts βtrueβ or βfalseβ).
- show_email: Display the userβs email address; default: true (accepts βtrueβ or βfalseβ).
- show_name: Display the userβs display name; default: true (accepts βtrueβ or βfalseβ). Use ourΒ Force First Last pluginΒ to batch update display names.
- show_level: Display the userβs membership level; default: true (accepts βtrueβ or βfalseβ).
- show_phone: Display the userβs billing phone (if available); default: true (accepts βtrueβ or βfalseβ).
- show_search: Display a search form (searches on member display name or email address); default: true (accepts βtrueβ or βfalseβ).
- show_startdate: Display the userβs membership start date for their current level; default: true (accepts βtrueβ or βfalseβ).
- user_id: Show a specific memberβs profile; default: none (accepts any numeric uesr id, i.e. user_id=β125β³).
Members can opt out of the member directory by checking the βHide from Directory?β field on theΒ βEdit Profileβ page.
We have aΒ list of shortcode examples at the bottom of this documentation pageΒ if you are using this method.
Video Demo: Member Directories and Profile Pages
Customizations, Theme Compatibility, and Styling
File-Type Profile Fields
If you are displaying a field that is a file type (audio, video, image, document), the shortcode will attempt to embed or display the file based on the mime type (about WordPress filetypes).
- Audio files will embed using the WordPressΒ shortcode
- Document files will display the appropriateΒ wp_mime_type_iconΒ and a link to view or download the file
- Image files will display as a standard image on the page at full size
- Video files will embed using the WordPressΒ shortcode
Third-Party Embeddable Links
If your members have a profile field that links to a third-party embeddable platform like YouTube, Vimeo, and others, the field will also display as an embed. See aΒ list of supported oembed sites here.
Custom Directory and Profile Template Files For Your Theme
The screenshots in these docs use theΒ Memberlite Theme, which provides full integration and additional styling for the Member Directory and Profile Pages Add On.
Theme authors and developers can create a custom template for the Directory and Profile via two methods: a template in the active theme folder or a template loaded via a customization plugin.
Theme authors should use theΒ theme method as outlined in this document. The filesΒ directory.phpΒ andΒ profile.phpΒ should copied out of the Add On plugin files and placed in a newΒ /paid-memberships-pro/pmpro-member-directory/Β folder in your theme.
If you are not a theme author looking to build support for this Add On, we recommendΒ using a customizations pluginΒ and creating a new shortcode (rename the directory or profile shortcode in the Add On to something unique for your site) and require that template file in your customizations plugin main file.
Member Directory and Profile Search
By default, the search fields in this Add On will search the following profile values:Β user_login,Β user_email,Β display_name, and allΒ usermetaΒ fields.
Some servers may not allow the large queries needed to execute a directory and profiles search. You will know this is the case if you are using the search form and no results are returned when you know results should be returned.
The recipe below can be used to allow your hosting environment to process the large JOIN operations needed for this Add On.
Shortcode Examples
DisplayΒ only level IDs 1 and 4, hide avatars and email address:
[pmpro_member_directory levels="1,4" show_avatar="false" show_email="false"]
Show all level IDs, hide level name and start date:
[pmpro_member_directory show_level="false" show_startdate="false"]
Display custom user meta fields using the βfieldsβ attribute in the format Label,key;Label,key:
[pmpro_member_directory fields="Company,company;Website,user_url"]
Show a unique member directory by level. Level 1 Members can only see other Level 1 Members:
[membership level="1"]
[pmpro_member_directory levels="1"]
[/membership]
[membership level="2"]
[pmpro_member_directory levels="2"]
[/membership]
[membership level="3"]
[pmpro_member_directory levels="3"]
[/membership]
Show unique member profiles based on level β hide user phone number and email address.
[membership level="1"]
[pmpro_member_profile show_email="false" show_phone="false"]
[/membership]
[membership level="2"]
[pmpro_member_profile show_email="true" show_phone="true"]
[/membership]
Action and Filter Hooks
The following actions and filters are available in this Add On:
do_action( 'pmpro_member_directory_before', $sqlQuery, $shortcode_atts );
Allows content to be inserted before the member directory table.
apply_filters( 'pmpro_member_profile_fields', array $fields_array, user $pu );
Change which fields are displayed on a userβs profile.
apply_filters( 'pmpro_member_directory_sql_parts', array $sql_parts, string $levels, string $s, int $pn, int $limit, int $start, int $end, string $order_by, string $order );
TheΒ $levelsΒ parameter is a single level ID or a comma-separate list of IDs (not an array of level IDs).
TheΒ $sql_partsΒ parameter is an array of each section of the SQL query for building your list of members to include in the directory. The sections of the array you can modify include:
$sql_parts['SELECT']$sql_parts['JOIN']$sql_parts['WHERE']$sql_parts['GROUP']$sql_parts['ORDER']$sql_parts['LIMIT']
Screenshots
4 Column Layout

Table Layout

Member Profile


