Managing users efficiently is crucial for any membership site. Whether you’re migrating from another platform, onboarding hundreds of students, or managing access across courses, BricksMembers provides powerful tools to handle users and content at scale.
What you’ll learn:
- Assign/remove levels for individual users
- View users by level
- Import users from CSV files with automatic level assignment
- Export user data for backups or migrations
- Batch assign levels to users, posts, courses, lessons, and terms from the User Levels page
- Best practices for user management
Prerequisites:
- BricksMembers installed and activated
- At least one user level created
- Administrator access to WordPress
Part 1: Managing Individual Users
Individual user management is handled through the standard WordPress Users page, with BricksMembers adding a “BricksMembers” section to the user edit screen.
Assigning Levels to a Single User
- Go to Users → All Users in WordPress
- Click Edit on the user
- Scroll to the BricksMembers section
- Check the levels you want to assign
- Click Update User
Result: The user now has access to all content requiring those levels.
Removing Levels from a User
Follow the same steps above, but uncheck the levels you want to remove.
Important: Removing a level immediately revokes access to all content requiring that level.
Viewing Users by Level
To see which users have a specific level:
- Go to BricksMembers → User Levels
- Click Edit on the level you want to check
- Expand the Users with this Level section
- You’ll see:
- User list with avatars, names, emails
- WordPress roles
- Level assignment dates
- Quick links to edit each user
Batch Updating Users on the User Levels Page
For day-to-day admin work, the fastest place to manage many users at once is BricksMembers → User Levels → Users.
- Go to BricksMembers → User Levels
- Open the Users tab
- Use the search field and filters to narrow the list
- For one user, click the + button in the Levels column to add a level instantly, or click the remove icon on a level pill to remove it
- For many users, select the checkboxes on the left
- Choose one or more levels in the Apply Levels picker
- Click Apply Levels
Result: The selected users are updated immediately without leaving the page.
Part 2: CSV Import and Export
CSV import/export is essential for migrations, backups, and integrations with external systems.
Exporting Users to CSV
Use cases:
- Backup user data
- Migrate to another platform
- Analyze user data in Excel/Google Sheets
- Share user lists with team members
Steps:
- Go to BricksMembers → Import / Export Users
- Scroll to the Export Users section
- Click Export Users CSV
What’s included in the export:
WordPress User Data:
- User ID, username, email
- Display name, first name, last name
- Registration date
- WordPress roles and capabilities
- All custom user meta fields
BricksMembers Data:
- User Levels (both names and IDs) – which levels the user has
- Completed Posts (
brm_completed_postsexport column) – lesson/content completion timestamps (requires Progress Tracking) - Level Assignment Dates (
brm_level_datesexport column) – when each level was assigned/removed (important for drip content with “level assigned” trigger) - Drip Unlocks (brm_unlocks) – preserved unlock timestamps (only exported when drip is in “Preserve Previously Unlocked Content” mode)
Note: BRM progress data (aggregated statistics) is not treated as the canonical export source. BricksMembers can rebuild aggregate progress from imported completion data when needed.
Result: A CSV file downloads with all user data.
File name format: bricksmembers-users-export-YYYY-MM-DD-HH-MM-SS.csv
Importing Users from CSV
Use cases:
- Migrate from another membership plugin
- Import existing users from a payment processor after setting up BricksMembers
- Bulk create users from a spreadsheet
- Restore users from a backup
Go to BricksMembers → Import / Export Users. The page has Import and Export tabs. In the Import tab, upload a CSV, let BricksMembers detect the headers, map those headers to user fields and level values, then run a dry run or start the import.
Step 1: Configure CSV Columns
Tell BricksMembers which columns in your CSV correspond to which user fields:
- Email Column (required): The column containing user email addresses
- Username Column: The column containing usernames (if empty, username is auto-generated from email)
- First Name Column: User’s first name
- Last Name Column: User’s last name
- User Level Trigger Column: The column that contains membership level information
Example CSV structure:
email,first_name,last_name,membership_level
john@example.com,John,Doe,Premium
jane@example.com,Jane,Smith,Free
Configuration for this CSV:
- Email Column: email
- First Name Column: first_name
- Last Name Column: last_name
- User Level Trigger Column: membership_level
Step 2: Configure Level Mapping
Map CSV values to BricksMembers levels. For each level, specify what CSV value should trigger that level assignment.
Example:
| BricksMembers Level | CSV Trigger Value |
| Premium Member | Premium or 123 |
| Free Member | Free or 124 |
| Course XZY | Course XZY or 125 |
How it works:
- If a CSV row has “Premium” in the membership_level column, the user gets the “Premium Member” level
- If a CSV row has “124”, the user gets the “Free Member” level
- Multiple levels can be assigned if the CSV value contains multiple comma-separated values
Step 3: Configure Import Options
- Default User Role: Select the WordPress role for imported users (usually “Subscriber” or “Student”)
- Name Split Field: If your CSV has a single “name” column instead of separate first/last names, specify it here to automatically split “John Doe” into first_name=”John”, last_name=”Doe”
- Custom Field Mappings: Map additional CSV columns to WordPress user meta fields (e.g., “phone_number” → “billing_phone”)
Step 4: Save Configuration
- Click Save Settings at the top of the page
- Your configuration is saved for future imports
Step 5: Import the CSV File
- Open the Import tab
- Click Choose File and select your CSV
- Important: Check Perform Dry Run to test without actually importing
- Click Start Import
What happens during import:
- For each CSV row:
- Checks if a user with that email exists
- If exists: Updates the user’s levels and meta fields
- If doesn’t exist: Creates a new user with a random password
- Assigns levels based on your trigger mappings
- Updates custom meta fields if configured
- Shows a summary: “Created: 50, Updated: 10, Skipped: 2”
Dry Run Mode: Always test with dry run first! It processes the CSV and shows what would happen without actually creating/updating users.
Step 6: Review Results
After import, you’ll see a summary:
- Created: New users added
- Updated: Existing users modified
- Skipped: Rows with invalid data (missing email, invalid format)
Verify the import by going to BricksMembers → User Levels, editing a level, and checking the “Users with this Level” section.
Understanding BRM-Specific Data in CSV
When you export users from BricksMembers, the CSV includes special BRM data columns that preserve user progress and unlock history. These columns are compatibility export fields backed by BricksMembers’ normalized storage, and they are automatically imported when present.
BRM Data Columns
- brm_completed_posts – JSON object mapping post IDs to completion timestamps
- brm_level_dates – JSON object tracking when each level was assigned/removed (important for drip content calculations)
- brm_unlocks – JSON object mapping post IDs to unlock timestamps (only when drip is in “Preserve” mode)
How it works: BricksMembers automatically detects these columns during import. No configuration is needed. Internally, the plugin restores the normalized assignment, completion, and unlock data from these CSV fields. If importing from a non-BricksMembers source, these columns will not exist, and users start with a fresh slate.
Part 3: Batch Assign Levels to Content
The standalone Bulk Assign page has been retired. Batch content assignment now happens directly on the BricksMembers → User Levels page, inside the Posts and Terms tabs.
Option 1: Batch Assign on the Posts Tab
Scenario: Assign “Premium Member” to all lessons within a specific course.
Steps:
- Go to BricksMembers → User Levels
- Open the Posts tab
- Use Post Type to narrow the list if needed
- If you work with a structure, choose the Structure filter and then use the Parents filter to focus on the correct parent posts
- Use search, term, relationship, or related taxonomy filters if needed
- Select the posts you want to update with the row checkboxes
- Choose one or more levels in the Apply Levels picker
- Click Apply Levels
Result: All selected lessons now require “Premium Member” access.
Note: This is an alternative to using the Content Structure UI’s Quick Edit feature with “Apply level changes to all child posts”. For one-off edits, you can also click the + button in the Levels column and add or remove levels inline.
Option 2: Batch Assign by Taxonomy Term
Scenario: Assign “Free Member” to all posts in the “Beginner Tutorials” category.
Steps:
- Go to BricksMembers → User Levels → Posts
- Select the correct Post Type
- Choose the taxonomy term filter, for example Category → “Beginner Tutorials”
- Select the matching posts with the checkboxes
- Choose “Free Member” in the Apply Levels picker
- Click Apply Levels
Result: All selected posts now require “Free Member” access.
Option 3: Batch Assign on the Terms Tab
Scenario: Protect categories or tags.
Steps:
- Go to BricksMembers → User Levels
- Open the Terms tab
- Use search or level filters if needed
- Select the terms you want to protect
- Choose one or more levels in the Apply Levels picker
- Click Apply Levels
Result: Those terms (not the posts inside!) now require the selected levels for access.
Option 4: Batch Assign by Post Relationship
Scenario: Assign levels to posts based on custom field relationships (e.g., ACF relationship fields).
Steps:
- Go to BricksMembers → User Levels → Posts
- Select the relevant Post Type
- If relationship fields exist, choose the relationship field and the related item
- Select the matching posts
- Choose the level(s) and click Apply Levels
Option 5: Batch Assign by Related Taxonomy
Scenario: Assign levels to posts based on taxonomy relationships (ACF taxonomy relationship fields).
Steps:
- Go to BricksMembers → User Levels → Posts
- Select the correct Post Type
- If related taxonomy fields exist, choose the field and then the term (for example Category → “Advanced”)
- Select the posts you want to assign levels to
- Choose “Premium Member” in the Apply Levels picker
- Click Apply Levels
Result: All selected posts that are related to that taxonomy term now require “Premium Member” access.
Tip: This is useful when you have posts organized by a related taxonomy (categories, tags, custom taxonomies) and want to bulk assign levels based on that organization. It’s very rare, but happens.
Part 4: CSV Import Scenarios
Scenario 1: Migrate from Another Membership Plugin
Example: Migrating from MemberPress or Restrict Content Pro.
Steps:
- Export users from your old plugin (or use a database query)
- Format the CSV with columns: email, first_name, last_name, membership_level
- In BricksMembers → Import / Export Users:
- Map the columns
- Set level mappings
- Check Perform Dry Run
- Click Start Import
- Review the dry run results
- Uncheck Perform Dry Run and import for real
Scenario 2: Import from Payment Processor
Example: Import customers from Stripe, Paddle, or PayPal.
Steps:
- Export customers from your payment processor
- If the CSV has a single “name” column instead of first_name/last_name:
- Set Name Split Field: name
- Set Delimiter: (space)
- This splits “John Wick” into first_name=”John”, last_name=”Wick”
- Map the plan/subscription column to levels
- Import with dry run first, then import for real
Scenario 3: Import Users with Multiple Levels
Example: Some users have multiple membership levels.
CSV format:
email,levels
john@example.com,"Premium,WordPress,VIP"
eve@example.com,"Free"
Configuration:
- User Level Trigger Column: levels
- Level Mappings:
- Premium Member → “Premium”
- WordPress → “WordPress Course”
- VIP Member → “VIP”
- Free Member → “Free”
How it works: BricksMembers splits the “levels” column by commas and assigns all matching levels to the user.
BRM-Specific Data in CSV Files
When you export users from BricksMembers, the CSV automatically includes special BRM data columns that preserve user progress and unlock history. When you import these CSVs, BricksMembers restores the normalized storage behind the scenes – no configuration needed.
What BRM Data is Included
- brm_completed_posts – JSON object mapping post IDs to completion timestamps (e.g.,
{"123":1698765432,"456":1698765500}) - brm_level_dates – JSON object tracking when each level was assigned/removed (e.g.,
{"1":{"assigned":1698765432,"removed":null}}) - brm_unlocks – JSON object mapping post IDs to unlock timestamps (only when drip is in “Preserve” mode)
Part 5: Best Practices
Practice 1: Always Use Dry Run First
Before importing hundreds of users, always test with dry run mode to prevent problems.
Practice 2: Backup Before Batch Changes
Before bulk removing levels or importing users:
- Export current users to CSV (backup)
- Perform the operation
- If something goes wrong, you can restore from the backup without needing to restore the whole database
Practice 3: Use Content Structure UI for Content
For assigning levels to course content, the Content Structure UI’s Quick Edit and Quick Add features are usually faster than the User Levels page:
- Select the new page in the WP sidebar that appears after creating a content structure
- Quick Edit → “Apply level changes to all child posts”
- Quick Add → “Inherit required levels from parent”
Practice 4: Clean Your CSV Data
Before importing:
- Remove duplicate emails
- Validate email formats
- Remove empty rows
- Use the detected header mapping controls so each CSV column is mapped to the intended user field
- Use UTF-8 encoding
Practice 5: Document Your Level Mappings
Keep a document of your CSV-to-BricksMembers level mappings for future reference and troubleshooting.
Part 6: Common Issues and Solutions
Issue 1: CSV Import Shows “0 Created, 0 Updated”
Cause: Likely: email column not mapped correctly.
Solution:
- Check that your CSV has an email column
- Verify the email field is mapped to the CSV column that contains each user’s email address
- Ensure emails are valid (user@example.com format)
- Save configuration and try again
Issue 2: Users Created But No Levels Assigned
Cause: Level trigger mapping wrong not configured.
Solution:
- Go to BricksMembers → Import / Export Users
- Scroll to User Level Mapping section
- For each level, map the CSV source value to the correct BricksMembers level. Level source-value matching is case-insensitive.
- Also check if the CSV trigger field is mapped correctly
- Click Save Settings
- Re-import the CSV
Issue 3: Import Skips All Rows
Cause: Invalid email format or missing required email column.
Solution:
- Open your CSV in a text editor, Google Sheets, or Excel
- Check the first row (headers) has the email column name you configured
- Check that all email values are valid (user@example.com format)
- Remove any special characters or spaces from column names
- Save as UTF-8 encoded CSV and try again
Part 7: Integration with Other Tools
Automate with Webhooks
Instead of manually importing users, you can automate level assignment with webhooks:
- Go to BricksMembers → Integrations → Webhooks
- Create a webhook endpoint
- Configure field mapping to automatically assign levels when users purchase
- Connect your payment processor (Stripe, WooCommerce, etc.) to the webhook URL
See Webhooks and Field Mapping for details.
Level Automation
Automatically add or remove levels based on rules:
- Go to BricksMembers → Level Automation
- Create automation rules (e.g., “Add VIP level when you create a new post of na certain type”)
- Create posts and/or terms and the level will automatically be assigned
Summary
You’ve learned how to:
- ✅ Assign and remove levels for individual users via WordPress Users page
- ✅ View users by level via BricksMembers → User Levels
- ✅ Export users to CSV for backups and analysis
- ✅ Import users from CSV with automatic level assignment
- ✅ Configure field mappings and level triggers
- ✅ Bulk assign levels to posts by structure, taxonomy, or relationship
- ✅ Handle complex import scenarios (migrations, multiple levels, name splitting)
- ✅ Follow best practices for user and content management