The Simple Membership plugin works alongside the standard WordPress user system. In a normal setup, each Simple Membership member has a corresponding WordPress user account.
This documentation explains how that connection works, why it is useful, how to identify missing or mismatched user records, and how to correct common synchronization problems.
Table of Contents
- Simple Membership Members and WordPress Users
- Why the WordPress User Connection Is Useful
- Membership Levels and WordPress User Roles Are Different
- What Normally Happens When a Member Is Created
- What Happens When the Member Logs In
- How to Check Whether the Records Are Connected Correctly
- Using the Debug Log to Confirm What is Happening
- Correct Import Order When Migrating from Another Plugin
- Connecting a WordPress Administrator to Simple Membership
- Repairing an Individual Member with a Missing WordPress User
- Common Reasons the WordPress User Entry Is Missing
- 1. You migrated from another membership plugin
- 2. The CSV bulk import skipped some entries
- 3. The username or email was already in use by another WordPress user
- 4. The username or email belongs to an administrator account
- 5. The WordPress user was deleted from the Users menu
- 6. Member records were created outside the normal flow
- 7. Another plugin blocked the user creation
- Cleaning Up Old or Unused WordPress User Entries
- The Force WP User Synchronization Option
- Best Practices to Keep Records in Sync
- Information to Include When Requesting Support
- Related Documentation
Simple Membership Members and WordPress Users
Simple Membership maintains its own member records so it can manage information such as:
- Membership access level
- Account status
- Membership start date
- Account expiry
- Member profile information
- Access to protected content
WordPress also maintains its own user records. These records are used for:
- WordPress authentication
- WordPress user roles and capabilities
- WooCommerce customer accounts
- bbPress forum accounts
- Other plugins that use the standard WordPress user system
Although the Simple Membership member record and WordPress user record serve different purposes, they work together.
Why the WordPress User Connection Is Useful
Many WordPress plugins rely on the standard WordPress user system.
For example:
- bbPress uses WordPress users for forum participation.
- WooCommerce uses WordPress users for customer accounts and order information.
- Learning management plugins may use WordPress users and roles.
- Community and profile plugins generally use WordPress users.
- Other plugins may display features based on whether the visitor is logged into WordPress.
When a member logs in through the Simple Membership login form, the corresponding WordPress login allows these other plugins to recognize that person as a logged-in user.
Depending on the other plugin and your intended setup, additional configuration or an integration addon may still be required.
Membership Levels and WordPress User Roles Are Different
A Simple Membership access level and a WordPress user role are not the same thing.
A Simple Membership access level controls:
- Which protected posts and pages the member can access
- The member’s account status
- The duration of the membership
- Other Simple Membership features
A WordPress user role controls:
- WordPress capabilities and permissions
- Access provided by other WordPress plugins
- Whether the user is a subscriber, contributor, author, editor, administrator, or another custom role
Logging a member into the corresponding WordPress user account does not mean that the member’s Simple Membership level automatically becomes a particular WordPress role.
If another plugin requires a particular WordPress role, that role may need to be configured separately.
What Normally Happens When a Member Is Created
When a new member account is created through Simple Membership, the plugin normally creates two connected records:
- A member record under WP Membership → Members
- A corresponding user record under WordPress Dashboard → Users
This happens when a member is created through:
- The Simple Membership registration form
- The registration process following a membership payment
- The WP Membership → Members → Add New interface
- Other supported Simple Membership registration processes
The corresponding WordPress user account is created using the same username and email address as the Simple Membership member account.
Therefore, seeing your Simple Membership members listed under the standard WordPress Users menu is normal and expected.
Which WordPress Role Does the New User Get?
The role is taken from the Default WordPress Role field of the membership level that the member is assigned to. You can view or change this in Simple Membership > Membership Levels, then edit the level.
Note: For most membership sites, Subscriber is the correct role. Only assign a higher role if the members genuinely need those extra capabilities. When a member’s level changes, the plugin updates the WordPress role of the linked user account to match the new level’s role.
How the Two Records Are Linked
This is the most important concept on this page.
There is no ID mapping field that stores a permanent link between the two records. The plugin matches them by the shared values in the two records:
| Direction | Matched on |
|---|---|
| Membership account to WordPress user | The username (swpm_members_tbl.user_name matched against wp_users.user_login) |
| WordPress user to membership account | The email address (wp_users.user_email matched against swpm_members_tbl.email) |
In other words, the records are considered connected when the username and email address values are identical in both places. If either value gets changed in one system but not the other, the link is effectively broken even though both records still exist.
Note: The username of a member account cannot be changed after the account is created. This is intentional and it protects the link described above. Email addresses can be changed, and when a member’s email is updated through the plugin (either from the front-end profile edit form or from the admin dashboard), the plugin updates the linked WordPress user record at the same time.
What Happens When the Member Logs In
When a member logs in through the Simple Membership login form, the member is authenticated by Simple Membership.
The plugin also logs the member into the corresponding WordPress user account in the background. The member does not need to log in separately through the standard WordPress login page.
This allows the member to be recognized as both:
- A logged-in Simple Membership member
- A logged-in WordPress user
How to Check Whether the Records Are Connected Correctly
If a member can log into Simple Membership but is not being logged into WordPress, check the affected account in both locations.
Step 1: Check the Simple Membership Member Record
Go to:
WP Membership → Members
Search for the affected member and note the following information:
- Username
- Email address
- Membership level
- Account status
Make sure the member’s account status is Active.
Step 2: Check the WordPress User Record
Go to:
WordPress Dashboard → Users
Search for the same username and email address.
A corresponding WordPress user record should exist.
Step 3: Compare the Username and Email Address
Compare the Simple Membership member record with the WordPress user record.
The username and email address should match correctly. Pay particular attention to:
- Typographical errors
- Leading or trailing spaces
- Invisible characters introduced during an import
- A different email address
- A different username
- An email address assigned to another WordPress user
- A username assigned to another WordPress user
Data imported from a spreadsheet or another plugin can sometimes contain invisible whitespace or other hidden characters. The values may look identical on the screen but may not match correctly internally.
Using the Debug Log to Confirm What is Happening
Go to Simple Membership > Settings > Advanced Settings and enable the Enable Debug option. Ask the member to log in again, then open the authentication log file (log-auth-*.txt in the plugin’s folder, accessible via the link in the debug settings section).
The log records the background WordPress login attempt and states clearly if it failed for the given username. This is the fastest way to confirm the diagnosis rather than guessing.
Note: Turn debug logging back off once you have finished troubleshooting.
Correct Import Order When Migrating from Another Plugin
If you are migrating users from another plugin or membership system, the order in which you import the records is important.
Use the following process.
Step 1: Create a Backup
Create a complete backup of the WordPress database before deleting, modifying, or importing user records.
Step 2: Import Existing WordPress Users First
Use the WP User Import addon to import the existing WordPress users into Simple Membership:
Import Existing WordPress Users into Simple Membership Plugin
This should be done before using the CSV member importer.
Step 3: Review the Imported Records
After the import, compare the records under:
- WP Membership → Members
- WordPress Dashboard → Users
Check that the usernames, email addresses, membership levels, and account statuses look correct.
Also review the importer’s success and failure messages. Do not assume that every record was imported successfully.
Step 4: Import the Remaining Members from a CSV File
If you have additional member records that do not already have corresponding WordPress users, you can import those remaining members using the CSV importer:
Bulk Import Member Data from a CSV File
The CSV importer should not be your first choice for users who already exist in the WordPress Users menu. Importing those records from a CSV file may fail because the username or email address already exists.
This is particularly important when working with WordPress administrator accounts or other accounts with elevated permissions.
Step 5: Test a Selection of Imported Accounts
After completing the imports, test several regular member accounts.
For each test account:
- Confirm that the Simple Membership member record exists.
- Confirm that the corresponding WordPress user exists.
- Confirm that the username and email address match.
- Log in through the Simple Membership login form.
- Confirm that the member can access the correct protected content.
- Confirm that another plugin, such as bbPress or WooCommerce, recognizes the user as logged in.
Connecting a WordPress Administrator to Simple Membership
A WordPress administrator account requires special handling.
Do not attempt to create a new Simple Membership member using the same username or email address as an existing WordPress administrator. Do not delete and recreate your primary administrator account as a troubleshooting step.
If you want your WordPress administrator to have a corresponding Simple Membership member record and access protected content, use the WP User Import method described in the following documentation:
Giving a WordPress Admin User Access to Protected Content
This process allows you to:
- Create a special Simple Membership access level for the administrator.
- Import the existing WordPress administrator into Simple Membership.
- Assign the administrator’s member record to the required membership level.
- Give that level access to the protected content.
- Log out and log back in to apply the changes.
This preserves the original WordPress administrator account and its permissions.
Repairing an Individual Member with a Missing WordPress User
If only one or two members are affected, it may be easier to repair those accounts individually.
First, record the member’s:
- Username
- Email address
- Membership level
- Account status
- Membership start and expiry information
- Other important profile information
Then create a database backup.
If the Simple Membership member exists but the corresponding WordPress user does not, one clean approach is to remove the affected member record and recreate it through:
WP Membership → Members → Add New
When the member is recreated through the proper Simple Membership interface, the corresponding WordPress user should also be created.
The member should then use the password reset function to establish a new password.
If a WordPress user already exists but there is no corresponding Simple Membership member, import that WordPress user using the WP User Import addon instead of manually creating a duplicate member.
Be especially careful when working with administrator accounts. Use the dedicated administrator import documentation rather than deleting or recreating an administrator.
Common Reasons the WordPress User Entry Is Missing
1. You migrated from another membership plugin
This is the most common cause. Your site already had WordPress user accounts created by the previous plugin. Those accounts have no corresponding member records, so the two systems are running side by side without being connected.
2. The CSV bulk import skipped some entries
If you used the Bulk Import Member Data from a CSV File addon to bring members in, the import can fail for rows where the username or email address is already taken by an existing WordPress user. This is especially likely for entries that belong to WordPress users with the Administrator role, because the plugin deliberately refuses to bind those.
3. The username or email was already in use by another WordPress user
By default, a new registration is not allowed to attach itself to a pre-existing WordPress user account that the plugin did not create. This is a security measure. Without it, anyone could register with the email address of an existing user account and gain access to it.
When this happens, the registration is stopped and the visitor sees a message saying the email address or username is already associated with an existing account on the site.
If you have a genuine reason to allow this behavior (for example, you are intentionally connecting membership accounts to WordPress users created by another plugin), you can enable the Allow Existing WP User Registration option in Simple Membership > Settings > Advanced Settings.
Note: Leaving this option disabled is the recommended and safer configuration. Only enable it if you understand and accept the implication that a new registration can take over an existing WordPress user account.
4. The username or email belongs to an administrator account
The plugin will never allow a front-end registration to bind to a WordPress user with the Administrator role, and this cannot be overridden by a setting. If you are testing your own registration form using your own admin email address, this is why the registration stops. Use a different email address for testing.
Testing tip: Most email providers support plus addressing, so yourname+test1@example.com delivers to yourname@example.com while counting as a distinct address for registration purposes.
5. The WordPress user was deleted from the Users menu
Deleting a WordPress user from Users > All Users does not delete the membership record. The member record stays behind with no WordPress user account attached to it.
Note that the reverse is not true. Deleting a member from Simple Membership > Members also deletes the corresponding WordPress user account, so you do not need to delete it separately. The one exception is a linked account with the Administrator role, which the plugin will not delete for safety reasons.
6. Member records were created outside the normal flow
Member records created by a direct database edit, a custom script, or a third party import tool will not have WordPress user accounts unless that tool created them explicitly.
7. Another plugin blocked the user creation
Security plugins, registration restriction plugins, role management plugins, and some spam prevention plugins can interfere with WordPress user creation. If registrations are failing to produce WordPress users on a site that has no migration history, temporarily deactivate other plugins to isolate the conflict.
Cleaning Up Old or Unused WordPress User Entries
If your site has a small number of leftover WordPress user accounts that you no longer need, the simplest fix is to delete them.
- Go to Users > All Users.
- Select the accounts that are no longer needed.
- Choose Delete from the bulk actions dropdown and apply it.
Keeping the WordPress users list clean allows the plugin to create WordPress user accounts when it needs to, without running into the “this username or email already exists” situation.
Note: Before deleting, check whether those accounts own any content such as posts, comments, or WooCommerce orders. WordPress will ask you what to do with content belonging to a deleted user.
The Force WP User Synchronization Option
Simple Membership > Settings > Advanced Settings has an option called Force WP User Synchronization.
When this option is enabled, a membership login will not be allowed to proceed if the background WordPress user login fails. Instead of silently logging the member in with no WordPress session, the plugin stops and shows an error explaining that no WordPress user record could be found for that username.
This is useful in two ways:
- On sites that depend heavily on WP user roles (bbPress, WooCommerce and similar), it prevents members from ending up in a half logged in state where the membership session works but the plugin integrations do not.
- It surfaces broken links immediately instead of leaving them undetected.
If a member reports the error message about the site having the force WP user login feature enabled, that message is telling you exactly what this page describes: the member account has no matching WordPress user account. Work through the checks in the sections above to find and fix the missing record.
Note: Turning the option off makes the error message disappear, but it does not fix the underlying disconnect. Members will still be logged in without a WordPress session. Treat disabling it as a temporary measure, not as the fix.
Best Practices to Keep Records in Sync
- Manage members from the Simple Membership menu, not the Users menu. Adding and deleting from Simple Membership > Members keeps both records consistent automatically.
- Do not delete WordPress users individually to remove a member. Deleting the member record removes both.
- Do not change a member’s email address directly in the Users menu. Change it through the plugin so both records are updated.
- Handle migrations with the import addons in the correct order, as described above.
- Keep Force WP User Synchronization enabled if you use bbPress, WooCommerce, or any other plugin that depends on WP user roles, so any broken link is reported instead of hidden.
- Spot check after any bulk import or bulk operation. Verify a handful of records in both menus before assuming the job completed cleanly.
Information to Include When Requesting Support
If the issue continues after completing this checklist, provide the following information when requesting support:
- How the affected member was originally created
- Whether the account was imported
- Which import tool was used
- Whether the WordPress user exists
- Whether the usernames and email addresses match
- The exact login error message
- Whether Force WP User Synchronization is enabled
- Whether a newly created test member has the same problem
- The result of the plugin and theme conflict test
- The caching plugin, CDN, and server-level caching being used
- Any custom registration, login, or user-management code being used