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.

WooCommerce Integration

Pascal Basel
modified at February 8, 2026

This guide covers everything you need to know about the native WooCommerce integration in BricksMembers. With this integration, you can automatically assign membership levels when customers purchase WooCommerce products—no webhooks or complex configuration required.

Why Use the Native Integration?

While BricksMembers supports WooCommerce through webhooks, the native integration offers several advantages:

  • Zero configuration complexity — No webhooks to set up
  • Instant level assignment — Levels are assigned immediately when orders complete, without waiting for webhook delivery
  • Automatic user creation — Optionally create WordPress accounts for guest checkout customers
  • WooCommerce Subscriptions support — Full support for recurring subscriptions with automatic level management
  • Variation support — Map individual product variations to different membership levels
  • Refund handling — Automatically remove levels when orders are fully refunded

Prerequisites

  • WooCommerce installed and active
  • At least one WooCommerce product created
  • At least one membership level created in BricksMembers
  • For subscriptions: WooCommerce Subscriptions plugin (optional)

Step 1: Enable the WooCommerce Module

First, enable the WooCommerce integration module:

  1. Go to BricksMembers → Settings → Modules
  2. Find WooCommerce in the list
  3. Enable the toggle
  4. Click Save Settings

Once enabled, you’ll see a new WooCommerce menu item under BricksMembers.

Step 2: Configure Integration Settings

Navigate to BricksMembers → WooCommerce to configure the integration.

User Creation Settings

Create WordPress users for guest checkout orders

  • When enabled: If a guest checks out without an account, BricksMembers automatically creates a WordPress user account using their billing email. The new user receives the assigned membership level.
  • When disabled: Guest orders won’t receive membership levels. Only logged-in customers get levels assigned.
  • Recommendation: Enable this for most membership sites to ensure all customers get access.

Default user role for new users

  • Select the WordPress role assigned to automatically created users
  • Default: Subscriber
  • You can create custom roles in BricksMembers → Settings → General → Manage User Roles

Level Assignment Settings

Assign levels when order status is “Processing”

  • When enabled: Levels are assigned as soon as payment is received (order goes to “Processing” status)
  • When disabled: Levels are only assigned when orders are manually marked “Completed”
  • Recommendation: Enable this for most setups. Digital products typically don’t need fulfillment, so waiting for “Completed” status is unnecessary.

Auto-complete orders with virtual-only products

  • What it does: Automatically marks orders as “Completed” when they contain only virtual products
  • Why this matters: By default, WooCommerce only auto-completes orders that are both virtual AND downloadable. Membership products are typically virtual but not downloadable, so they stay in “Processing” forever.
  • When enabled: Orders with virtual-only products automatically complete, triggering level assignment immediately.
  • Note: When this is enabled, the “Assign levels on Processing” option is automatically disabled since orders will complete instantly anyway.

Remove levels when order is fully refunded

  • When enabled: If you issue a full refund, the membership level is automatically removed
  • Partial refunds: Partial refunds do not trigger level removal—only full refunds do
  • Recommendation: Enable this to ensure refunded customers lose access

WooCommerce Subscriptions Settings

If you have WooCommerce Subscriptions installed, you’ll see additional options:

Remove levels when subscription is cancelled or expires

  • When enabled: Levels are removed when a subscription ends (cancelled or expired)
  • Recommendation: Enable this for subscription-based memberships

Remove levels when subscription is put on hold

  • When enabled: Levels are removed when a subscription goes on hold (e.g., failed payment)
  • When disabled: Users keep their level during hold periods, giving them time to resolve payment issues
  • Recommendation: Depends on your business model. Some prefer to give customers a grace period.

Step 3: Map Products to Membership Levels

The User Level Mapping section shows all your membership levels with checkboxes for each WooCommerce product. Simply check the products that should grant each level.

Product Types

Products are organized into three categories:

Simple Products

  • Standard WooCommerce products with no variations
  • Includes simple subscription products
  • Check a simple product to grant the level when that product is purchased

Variable Products (all)

  • Parent variable products
  • Checking a variable product grants the level for ANY variation of that product
  • Useful when all variations should grant the same level

Variations

  • Individual product variations (e.g., “Monthly Plan”, “Annual Plan”)
  • Check specific variations to grant different levels for different options
  • Variation names include the attribute values (e.g., “Membership – Monthly” or “Membership – Annual”)

Example Configurations

Example 1: Simple Tiered Membership

You have three products: “Basic Membership”, “Pro Membership”, “VIP Membership”

  • Basic Member level: Check “Basic Membership”
  • Pro Member level: Check “Pro Membership”
  • VIP Member level: Check “VIP Membership”

Example 2: Variable Product with Different Tiers

You have one variable product “Membership” with variations: “Monthly $19”, “Annual $149”, “Lifetime $499”

  • Monthly Member level: Check “Membership – Monthly”
  • Annual Member level: Check “Membership – Annual”
  • Lifetime Member level: Check “Membership – Lifetime”

Example 3: Course Bundle

You sell individual courses and an “All Access Pass”

  • Course A Access level: Check “Course A”
  • Course B Access level: Check “Course B”
  • All Access level: Check “All Access Pass”

Then protect your content so Course A requires “Course A Access” OR “All Access”, etc.

Step 4: Test Your Configuration

Before going live, test your setup:

  1. Create a test product (or use an existing one)
  2. Map it to a membership level in BricksMembers → WooCommerce
  3. Create a test order:
    • Log out or use a different browser
    • Add the product to cart
    • Complete checkout (use cash on delivery or a test payment gateway)
  4. Mark the order as Processing or Completed (depending on your settings)
  5. Verify the user has the correct level:
    • Go to Users in WordPress
    • Edit the test user
    • Check their assigned membership levels
  6. Test refund handling:
    • Issue a full refund on the test order
    • Verify the level was removed (if “Remove on refund” is enabled)

Understanding Order Status Flow

WooCommerce orders go through several statuses. Here’s how BricksMembers responds to each:

StatusBricksMembers ActionNotes
PendingNo actionWaiting for payment
ProcessingAdd level (if enabled)Payment received, awaiting fulfillment
CompletedAdd levelOrder fulfilled
RefundedRemove level (if enabled)Only for full refunds
CancelledNo actionOrder cancelled before completion
FailedNo actionPayment failed

For subscriptions with WooCommerce Subscriptions:

StatusBricksMembers ActionNotes
ActiveAdd levelSubscription is active and paid
On-holdRemove level (if enabled)Payment failed, awaiting resolution
CancelledRemove level (if enabled)User or admin cancelled
ExpiredRemove level (if enabled)Subscription period ended

Setting Up Membership Products

For the best experience, configure your WooCommerce products correctly:

Simple Membership Product

  1. Create a new Simple product
  2. Check Virtual (no shipping needed)
  3. Set your price
  4. Optionally set Sold individually to prevent multiple purchases
  5. Publish the product

Subscription Product (requires WooCommerce Subscriptions)

  1. Create a new Simple subscription product
  2. Check Virtual
  3. Set subscription price and billing period
  4. Configure trial period if desired
  5. Publish the product

Variable Product with Multiple Plans

  1. Create a new Variable product
  2. Add an attribute (e.g., “Plan” with values “Monthly”, “Annual”, “Lifetime”)
  3. Check Used for variations
  4. Go to Variations tab and generate variations
  5. For each variation:
    • Check Virtual
    • Set the price
  6. Publish the product

Troubleshooting

Level Not Assigned After Purchase

Check these common causes:

  1. Module not enabled: Verify WooCommerce module is active in BricksMembers → Settings → Modules
  2. Product not mapped: Check that the product is checked for the desired level in BricksMembers → WooCommerce
  3. Order status: Check if the order reached “Processing” or “Completed” status. Pending orders don’t trigger level assignment.
  4. Guest checkout without user creation: If “Create WordPress users” is disabled, guest orders won’t receive levels
  5. Variation vs parent product: If using variations, make sure you mapped the specific variation, not just the parent product (unless you want all variations to grant the same level)

Level Not Removed on Refund

  1. Setting not enabled: Verify “Remove levels when order is fully refunded” is checked
  2. Partial refund: Only full refunds trigger level removal. Partial refunds leave the level intact.

Orders Stuck in “Processing”

If your orders stay in “Processing” and never complete automatically:

  1. Enable “Auto-complete orders with virtual-only products”: This automatically completes orders with virtual-only products
  2. Or enable “Assign levels when order status is ‘Processing'”: This grants levels when payment is received, without waiting for completion

Subscription Level Not Removed on Cancel

  1. WooCommerce Subscriptions required: Subscription handling only works with WooCommerce Subscriptions plugin installed
  2. Setting not enabled: Verify “Remove levels when subscription is cancelled or expires” is checked

Developer Hooks

For developers who need to extend the integration, BricksMembers fires several action hooks:

// Fired when a level is added via WooCommerce order
do_action( 'brm_woocommerce_level_added', $user_id, $level_id, $order_id );

// Fired when a level is removed via WooCommerce order/refund
do_action( 'brm_woocommerce_level_removed', $user_id, $level_id, $order_id );

// Fired when a level is added via subscription
do_action( 'brm_woocommerce_subscription_level_added', $user_id, $level_id, $subscription_id );

// Fired when a level is removed via subscription
do_action( 'brm_woocommerce_subscription_level_removed', $user_id, $level_id, $subscription_id );

Native Integration vs Webhooks

BricksMembers supports WooCommerce through both native integration and webhooks. Here’s when to use each:

Use Native Integration when:

  • WooCommerce is on the same WordPress site as BricksMembers
  • You want the simplest setup with zero configuration
  • You need instant level assignment without webhook delays
  • You’re using WooCommerce Subscriptions

Use Webhooks when:

  • WooCommerce is on a separate site (multi-site ecommerce setup)
  • You need complex event-based logic (e.g., different actions for different order events)
  • You’re already using webhooks for other integrations and want consistency

For most users with WooCommerce on the same site, the native integration is the recommended approach.

Best Practices

  • Mark membership products as Virtual: This enables auto-completion and prevents shipping calculations
  • Enable “Assign levels when order status is ‘Processing'”: Give customers immediate access after payment
  • Enable “Auto-complete orders with virtual-only products”: Ensures orders complete automatically for clean order management
  • Enable refund handling: Automatically revoke access for refunded orders
  • Test thoroughly: Always test purchases, refunds, and (if applicable) subscription lifecycle before going live
  • Use variations for pricing tiers: If you have monthly/annual options, use a variable product with variations—this lets you map each tier to a different level

With the native WooCommerce integration configured, your membership site will automatically handle level assignment and removal based on customer purchases—no manual intervention required.

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!