Give your members their own 10-digit membership number, different from the “User ID” they automatically get when signing up on your site. This approach is particularly beneficial for associations, clubs, fitness websites, and more.
Having a unique membership number is great for keeping things private and secure, since it separates a member’s public identity from the behind-the-scenes database stuff. Plus, it makes managing memberships a breeze when you need to link up with other systems for things like in-person membership validation, event sign-ups, and special member perks.
In this guide, we’ll show you how to set up these unique numbers when members register. Then, we’ll cover various ways you can display the member’s number in different parts of your site’s frontend and admin area.

Table of contents
- Generating the Member Number: Custom Function
- Displaying on Member Account Page
- Show Member Number on Member Invoice
- Displaying on Confirmation Email
- Show Member Number on Members List and Members CSV Export
- Displaying the Membership Number on the Member Directory and Profile Pages
- Displaying the Membership Number on the Membership Card
- Using a Shortcode to Display the Member Number
Generating the Member Number: Custom Function
With Paid Memberships Pro’s customizability, it’s pretty simply to generate a member number and then display it on the frontend of your site. Plus, this same member number can be used in the backend or admin area, giving site owners and administrators new ways to reference each member.
Below is the primary recipe that creates a unique membership number. With this recipe in place, all members will have their number generated afercheckout.
Then, we continue the guide with various places to display that number: on the Members List, in the Confirmation Email, Membership Account or Invoice pages, on a Membership Card and even for other members to see as part of a public or members-only Directory and Profile Page.
If you’re building a custom recipe or template and want to access the member number in PHP, you can do so by using the WordPress get_user_meta function. The generated number is stored in user meta with the key member_number
.
Generate a 10-digit member number
/** * Generate a Unique Member Number for each user. * * Change the generate_member_number function if your member number needs to be in a certain format. * * Member numbers are generated when users are registered or when the membership account page is * accessed for the first time. This code will only generate one member number per user (not per membership). * * title: Generate a Unique Member Number for Each User * layout: snippet * collection: misc * category: membership-number * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ function generate_member_number( $user_id ) { // Get member number. $member_number = get_user_meta( $user_id, 'member_number', true ); // If no member number, create one. if ( empty( $member_number ) ) { global $wpdb; // This code generates a string that's 10 characters long of numbers and letters. while ( empty( $member_number ) ) { $scramble = md5( AUTH_KEY . current_time('timestamp') . $user_id . SECURE_AUTH_KEY) ; $member_number = substr( $scramble, 0, 10 ); $check = $wpdb->get_var( "SELECT meta_value FROM $wpdb->usermeta WHERE meta_value = '" . esc_sql( $member_number ) . "' LIMIT 1" ); if ( $check || is_numeric( $member_number ) ) { $member_number = NULL; } } // Save to user meta. update_user_meta( $user_id, 'member_number', $member_number ); return $member_number; } } add_action( 'user_register', 'generate_member_number' ); // Generate member number on the Membership Account page if the user doesn't have one. function my_pmpro_generate_member_number_if_empty() { global $pmpro_pages; // Only run on the account page. if ( ! is_page( $pmpro_pages['account'] ) ) { return; } // Only run for logged in users. if ( ! is_user_logged_in() ) { return; } // If the generate number function doesn't exist, return. if ( ! function_exists( 'generate_member_number' ) ) { return; } // Get member number. global $current_user; $member_number = get_user_meta( $current_user->ID, 'member_number', true ); // If no number, generate one. if ( empty( $member_number ) ) { $member_number = generate_member_number( $current_user->ID ); } } add_action( 'template_redirect', 'my_pmpro_generate_member_number_if_empty' );
Displaying on Member Account Page
You can use the recipe below to display each member’s unique 10-digit number on their account page. This gives them quick access to their identifier for memberships benefits and inquiries.
Member Number on Member Account Page
/** * Show the user's Membership Number on the Membership Account page. * * Member numbers must be generated using the generate_member_number snippet in this companion code: * https://github.com/strangerstudios/pmpro-snippets-library/tree/dev/misc/generate-unique-membership-number.php * * title: Display the Member's Unique Membership Number on the Membership Account * layout: snippet * collection: frontend-pages * category: membership-number * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ function my_pmpro_member_number_account_bullets() { // If the generate number function doesn't exist, return. if ( ! function_exists( 'generate_member_number' ) ) { return; } // Only run for logged in users. if ( ! is_user_logged_in() ) { return; } // Get member number. global $current_user; $member_number = get_user_meta( $current_user->ID, 'member_number', true ); // If no member number, create one. if ( empty( $member_number ) ) $member_number = generate_member_number( $current_user->ID ); // Show the member number. if ( ! empty( $member_number ) ) { <li><strong>'Member Number', 'paid-memberships-pro' ); :</strong> echo $member_number; </li> esc_html_e( } } add_action( 'pmpro_account_bullets_bottom', 'my_pmpro_member_number_account_bullets' );

Show Member Number on Member Invoice
Including the unique 10-digit membership number on member invoices enhances clarity and record-keeping. This code recipe allows members to easily reference their membership details for payments and queries.
Display on Member Invoice
/** * Show the user's Membership Number on the Membership Invoice page. * * Member numbers must be generated using the generate_member_number snippet in this companion code: * https://github.com/strangerstudios/pmpro-snippets-library/tree/dev/misc/generate-unique-membership-number.php * * title: Display the Member's Unique Membership Number on the Membership Invoice * layout: snippet * collection: frontend-pages * category: membership-number * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ function my_pmpro_member_number_invoice_bullets( $pmpro_invoice ) { // If the generate number function doesn't exist, return. if ( ! function_exists( 'generate_member_number' ) ) { return; } // Get member number. $member_number = get_user_meta( $pmpro_invoice->user->ID, 'member_number', true ); // If no member number, create one. if ( empty( $member_number ) ) $member_number = generate_member_number( $pmpro_invoice->user->ID ); // Show the member number. if ( ! empty( $member_number ) ) { <li><strong>'Member Number', 'paid-memberships-pro' ); :</strong> echo $member_number; </li> esc_html_e( } } add_action( 'pmpro_invoice_bullets_bottom', 'my_pmpro_member_number_invoice_bullets' );

Displaying on Confirmation Email
Adding the unique 10-digit membership number in the confirmation email provides members with an immediate and personal acknowledgment of their registration.
Member Number on Checkout Confirmation Email
/** * Show the user's Membership Number in their membership confirmation email. * * Member numbers must be generated using the generate_member_number snippet in this companion code: * https://github.com/strangerstudios/pmpro-snippets-library/tree/dev/misc/generate-unique-membership-number.php * * title: Show the Member's Unique Membership Number in the Membership Confirmation Email * layout: snippet * collection: frontend-pages * category: membership-number * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ function my_pmpro_member_number_email_filter ( $email ) { global $wpdb; // Only update membership checkout confirmation emails. if ( strpos( $email->template, "checkout" ) !== false ) { if ( ! empty( $email->data ) && ! empty( $email->data['user_login'] ) ) { $user = get_user_by( 'login', $email->data['user_login'] ); if ( ! empty( $user ) && ! empty( $user->ID ) ) { $member_number = get_user_meta( $user->ID, 'member_number', true ); if ( ! empty( $member_number ) ) { $email->body = str_replace( '<p>Membership Level', '<p>Member Number: ' . $member_number . '</p><p>Membership Level', $email->body); } } } } return $email; } add_filter( 'pmpro_email_filter', 'my_pmpro_member_number_email_filter', 30, 2 );

Show Member Number on Members List and Members CSV Export
To display the unique member number to admin, this code recipe will add “Member Number” as a column on the Members List. The number will be located at Memberships > Members in the WordPress admin.
A member’s number is also then included in a CSV export of your Members List from this same screen.
Display Member Number on Members List and CSV Export
/** * Add the "Member Number" column to the members list and CSV export. * * Member numbers must be generated using the generate_member_number snippet in this companion code: * https://github.com/strangerstudios/pmpro-snippets-library/tree/dev/misc/generate-unique-membership-number.php * * title: Add Member Number to Members List and CSV Export * layout: snippet * collection: admin-pages * category: admin * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ /** * Add a "Member Number" column to the Members List. * * @param array $columns The columns to display in the Members List. * @return array The updated columns to display in the Members List. */ function my_pmpro_manage_memberslist_columns_member_number( $columns ) { $columns['member_number'] = 'Member Number'; return $columns; } add_filter( 'pmpro_manage_memberslist_columns', 'my_pmpro_manage_memberslist_columns_member_number' ); /** * Display the Member Number in the Members List. * * @param string $column_name The name of the column to display. * @param int $user_id The ID of the user to display the column for. * @param array|null $item The membership information being shown or null. */ function my_pmpro_manage_memberslist_column_member_number( $column_name, $user_id, $item = null ) { if ( 'member_number' === $column_name ) { // Get member number. $member_number = get_user_meta( $user_id, 'member_number', true ); // If this column is completely empty, set $member_number to a dash. if ( empty( $member_number ) ) { $member_number = '—'; } // Echo the data for this column. echo $member_number; } } /** * Hooks the my_pmpro_manage_memberslist_column_member_number() function * with 2 parameters if using PMPro v2.x or 3 parameters if using PMPro v3.0+. */ function my_pmpro_hook_my_pmpro_manage_memberslist_column_member_number() { if ( class_exists( 'PMPro_Subscription' ) ) { add_action( 'pmpro_manage_memberslist_custom_column', 'my_pmpro_manage_memberslist_column_member_number', 10, 3 ); } else { add_action( 'pmpro_manage_memberslist_custom_column', 'my_pmpro_manage_memberslist_column_member_number', 10, 2 ); } } add_action( 'admin_init', 'my_pmpro_hook_my_pmpro_manage_memberslist_column_member_number' ); /** * Add "member_number" columns to CSV export * * @param array $columns The columns to be exported with their callbacks. * @return array */ function my_pmpro_members_list_csv_extra_columns_member_number( $columns ) { $new_columns = array( 'member_number' => 'my_pmpro_members_list_csv_extra_columns_member_number_callback', ); $columns = array_merge($columns, $new_columns); return $columns; } add_filter('pmpro_members_list_csv_extra_columns', 'my_pmpro_members_list_csv_extra_columns_member_number'); /** * Callback for "member_number" column in CSV export * * @param object $user The user object for the row with some additional membership data. * @return string */ function my_pmpro_members_list_csv_extra_columns_member_number_callback($user) { return get_user_meta($user->ID, 'member_number', true); }

Displaying the Membership Number on the Member Directory and Profile Pages
The Member Directory and Profile Pages Add On has built-in functionality to retrieve information stored in the wp_usermeta
table. Follow the steps below using the meta key member_number
.
Steps to Display the Membership Number
- Install, activate and set up the Member Directory and Profile Pages Add On.
- Edit your site’s Membership Directory or Profile Page. You can locate these assigned pages from the Memberships > Settings > Pages screen in the WordPress admin.
- Edit the page and use the
fields
attribute to add the Member Number to your directory or profile.

Example of the Membership Directory shortcode
[pmpro_member_directory fields="Member Number,member_number"]
Example of the Membership Profile shortcode
[pmpro_member_profile fields="Member Number,member_number"]
Displaying the Membership Number on the Membership Card
You might find yourself wanting to display the unique membership number on membership cards for identification. This code recipe places it on the membership card and automatically creates a membership number if the user does not already have one.
Display Member Number on Membership Card
/* * Show a member number on the membership card for Paid Memberships Pro. * * This is an extension of the Membership Number snippet here: * https://github.com/strangerstudios/pmpro-snippets-library/blob/1b7724c13775d45574fd0f9772b41100193f7f91/frontend-pages/generate-unique-membership-number.php * * title: Show a member number on the membership card for Paid Memberships Pro. * layout: snippet * collection: add-ons, pmpro-membership-card * category: membership-number * link: https://www.paidmembershipspro.com/customize-membership-card-wordpress/ * * 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. * https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/ */ function my_show_member_number_on_card( $user ) { if ( ! pmpro_hasMembershipLevel() || ! function_exists( 'generate_member_number' )) { return; } $member_id = get_user_meta( $user->ID, 'member_number', true ); if ( empty( $member_id ) ) { // lets generate it on the fly. $member_id = generate_member_number( $user->ID ); } echo '<p><strong>Membership Number:</strong> ' . esc_html( $member_id ) . '</p>'; } add_action( 'pmpro_membership_card_after_card', 'my_show_member_number_on_card' );

Using a Shortcode to Display the Member Number
Insert the Member Number in another location on your site, the following shortcode will output the number for a logged in user.
[pmpro_member field="member_number"]
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.
If you need support generating membership numbers for existing users or customizing to only generate and display membership numbers for a specific level, reach out to our support team.