Guides

BricksMembers Documentation

Find everything you need to set up, customize, and get the most out of BricksMembers — from quick-start guides to advanced features.

Managing Users and Bulk User Level Operations

Managing Users and Bulk User Level Operations
Pascal Basel
modified at December 8, 2025

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
  • Bulk assign levels to content (posts, courses, lessons)
  • Best practices for user management

Prerequisites:

  • BricksMembers installed and activated
  • At least one user level created
  • Administrator access to WordPress

Time to complete: 30-45 minutes

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

  1. Go to Users → All Users in WordPress
  2. Click Edit on the user
  3. Scroll to the BricksMembers section
  4. Check the levels you want to assign
  5. 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:

  1. Go to BricksMembers → User Levels
  2. Click Edit on the level you want to check
  3. Expand the Users with this Level section
  4. You’ll see:
  • User list with avatars, names, emails
  • WordPress roles
  • Level assignment dates
  • Quick links to edit each user

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:

  1. Go to BricksMembers → CSV Import/Export
  2. Scroll to the Export Users section
  3. 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_posts) – lesson/content completion timestamps (requires Progress Tracking)
  • Level Assignment Dates (brm_level_dates) – 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 exported because it’s automatically recomputed from completed posts when you import.

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 → CSV Import/Export. The page has two main sections: CSV Configuration and Import Users.

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 LevelCSV Trigger Value
Premium MemberPremium or 123
Free MemberFree or 124
Course XZYCourse 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

  1. Click Save Settings at the top of the page
  2. Your configuration is saved for future imports

Step 5: Import the CSV File

  1. Scroll to the Import Users section
  2. Click Choose File and select your CSV
  3. Important: Check Perform Dry Run to test without actually importing
  4. Click Import Users

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 are automatically imported when present – no configuration needed.

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 needed – they’re imported automatically if present, preserving user progress and unlock history. If importing from a non-BricksMembers source, these columns won’t exist – that’s fine, users start with a fresh slate.

Part 3: Bulk Assign Levels to Content

The BricksMembers → Bulk Assign page allows you to assign user levels to multiple posts at once.

Option 1: Bulk Assign by Structure Parents

Scenario: Assign “Premium Member” to all lessons within a specific course.

Steps:

  1. Go to BricksMembers → Bulk Assign
  2. In the Assign to Posts by Structure Parents section:
  3. Content Structure: Select your structure (e.g., “Courses”)
  4. Target Level: Select the level you want to assign to (e.g., “Lesson” for lesson-level posts)
  5. Select the parent posts (e.g., specific courses or modules) — you’ll see a grouped list
  6. Check the posts you want to assign levels to
  7. In the User Levels section, check “Premium Member”
  8. Click Add User Level(s)

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”.

Option 2: Bulk Assign by Taxonomy Term

Scenario: Assign “Free Member” to all posts in the “Beginner Tutorials” category.

Steps:

  1. Go to BricksMembers → Bulk Assign
  2. In the Assign to Posts by Term section:
  3. Select Post Type: Choose the post type (e.g., “Post”)
  4. Select the Category taxonomy and “Beginner Tutorials” term
  5. Click Load Posts
  6. Select the posts you want to assign levels to
  7. Check “Free Member” in the User Levels section
  8. Click Add User Level(s)

Result: All selected posts now require “Free Member” access.

Option 3: Bulk Assign to Terms

Scenario: Protect categories or tags.

Steps:

  1. Go to BricksMembers → Bulk Assign
  2. In the Assign to Terms section:
  3. Select Taxonomy: Choose “Category”, “Tag”, or custom term
  4. Click Load Terms
  5. Select the terms you want to protect
  6. Check the user levels in the User Levels section
  7. Click Add User Level(s)

Result: Those terms (not the posts inside!) now require the selected levels for access.

Option 4: Bulk Assign by Post Relationship

Scenario: Assign levels to posts based on custom field relationships (e.g., ACF relationship fields).

Steps:

  1. Go to BricksMembers → Bulk Assign
  2. In the Assign to Posts by Relationship section:
  3. Select Post Type: Choose the post type
  4. Select the relationship field and parent post
  5. Click Load Posts
  6. Select posts and assign levels
  7. Click Add User Level(s)

Option 5: Bulk Assign by Related Taxonomy

Scenario: Assign levels to posts based on taxonomy relationships (ACF taxonomy relationship fields).

Steps:

  1. Go to BricksMembers → Bulk Assign
  2. In the Assign to Posts by Related Taxonomy section:
  3. Select Post Type: Choose the post type (e.g., “Course”)
  4. Select the taxonomy and term (e.g., Category → “Advanced”)
  5. Click Load Posts
  6. Select the posts you want to assign levels to
  7. Check “Premium Member” in the User Levels section
  8. Click Add User Level(s)

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:

  1. Export users from your old plugin (or use a database query)
  2. Format the CSV with columns: email, first_name, last_name, membership_level
  3. In BricksMembers → CSV Import/Export:
  4. Map the columns
  5. Set level mappings
  6. Check Perform Dry Run
  7. Click Import Users
  8. Review the dry run results
  9. Uncheck Perform Dry Run and import for real

Scenario 2: Import from Payment Processor

Example: Import customers from Stripe, Paddle, or PayPal.

Steps:

  1. Export customers from your payment processor
  2. 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”
  3. Map the plan/subscription column to levels
  4. 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, this data is automatically restored – 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 Bulk Operations

Before bulk removing levels or importing users:

  1. Export current users to CSV (backup)
  2. Perform the operation
  3. 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 Bulk Assign 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
  • Ensure consistent column names (case-sensitive)
  • 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:

  1. Check that your CSV has an email column
  2. Verify the Email Column setting matches your CSV column name exactly (case-sensitive)
  3. Ensure emails are valid (user@example.com format)
  4. Save configuration and try again

Issue 2: Users Created But No Levels Assigned

Cause: Level trigger mapping wrong not configured.

Solution:

  1. Go to BricksMembers → CSV Import/Export
  2. Scroll to User Level Mapping section
  3. For each level, set the trigger value that matches your CSV exactly (case-sensitive)
  4. Also check if the CSV trigger field is mapped correctly
  5. Click Save Settings
  6. Re-import the CSV

Issue 3: Import Skips All Rows

Cause: Invalid email format or missing required email column.

Solution:

  1. Open your CSV in a text editor, Google Sheets, or Excel
  2. Check the first row (headers) has the email column name you configured
  3. Check that all email values are valid (user@example.com format)
  4. Remove any special characters or spaces from column names
  5. 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:

  1. Go to BricksMembers → Webhooks
  2. Create a webhook endpoint
  3. Configure field mapping to automatically assign levels when users purchase
  4. 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:

  1. Go to BricksMembers → Level Automation
  2. Create automation rules (e.g., “Add VIP level when you create a new post of na certain type”)
  3. 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

Create

Start Building with BricksMembers

Create, sell, and manage your content without limits. BricksMembers gives you everything you need to build membership and LMS sites directly in Bricks Builder — fast and frustration-free.

Join the membership & LMS revolution now!

Get Started
Still have questions? We're here to help!