This guide covers everything you need to know about the native FluentCart integration in BricksMembers. With this integration, you can automatically assign membership levels when customers purchase FluentCart products—no webhooks or complex configuration required.
Why Use the Native Integration?
While BricksMembers supports FluentCart 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
- Automatic user creation — Optionally create WordPress accounts for guest checkout customers
- Subscription support — Full support for FluentCart subscriptions with automatic level management
- Refund and cancellation handling — Automatically remove levels when orders are refunded or canceled
Prerequisites
- FluentCart installed and active
- At least one FluentCart product created
- At least one membership level created in BricksMembers
Step 1: Enable the FluentCart Module
First, enable the FluentCart integration module:
- Go to BricksMembers → Settings → Modules
- Find FluentCart in the list
- Enable the toggle
- Click Save Settings
Once enabled, you’ll see a new FluentCart menu item under BricksMembers.
Step 2: Configure Integration Settings
Navigate to BricksMembers → FluentCart 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 email. The new user receives the assigned membership level.
- When disabled: Guest orders won’t receive membership levels. Only customers with existing WordPress accounts 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 Removal Settings
Remove levels when order is fully refunded
- When enabled: If you issue a full refund, the membership level is automatically removed
- Recommendation: Enable this to ensure refunded customers lose access
Remove levels when order is canceled
- When enabled: If an order is canceled, the membership level is automatically removed
- Use case: Useful for scenarios where you cancel orders that shouldn’t have been completed (e.g., fraudulent orders, duplicate orders)
- Recommendation: Enable this if you want tight control over access
Subscription Settings
Remove levels when subscription expires
- When enabled: Levels are removed when a subscription period ends
- Important: Levels are removed when the subscription expires, not when the user cancels. This means users who cancel keep their access until the end of their paid period.
- Recommendation: Enable this for subscription-based memberships
Why “expires” instead of “cancels”?
When a customer cancels a subscription, they’ve typically paid for the current period and should retain access until that period ends. For example, if someone pays for a monthly subscription on January 1st and cancels on January 15th, they should keep access until January 31st. The integration respects this by only removing levels when the subscription actually expires, not at the moment of cancellation.
Step 3: Map Products to Membership Levels
The User Level Mapping section shows all your membership levels with checkboxes for each FluentCart product. Simply check the products that should grant each level.
Mapping Products
For each membership level, you’ll see a list of all published FluentCart products. Check the products that should grant that level:
- One product = One level: Check a single product for a level
- Multiple products = One level: Check multiple products if they should all grant the same level
- One product = Multiple levels: Check the same product under multiple levels if purchasing it should grant several levels
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: 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.
Example 3: Subscription Plans
You have monthly and annual subscription products:
- Member level: Check both “Monthly Subscription” and “Annual Subscription”
Both products grant the same level—the subscription duration is handled by FluentCart.
Step 4: Test Your Configuration
Before going live, test your setup:
- Create a test product in FluentCart (or use an existing one)
- Map it to a membership level in BricksMembers → FluentCart
- Create a test order:
- Log out or use a different browser
- Add the product to cart
- Complete checkout (use a test payment method if available)
- Verify the user has the correct level:
- Go to Users in WordPress
- Edit the test user
- Check their assigned membership levels
- Test refund/cancel handling:
- Cancel or refund the test order in FluentCart
- Verify the level was removed (if the relevant setting is enabled)
Understanding Order Status Flow
FluentCart orders trigger BricksMembers actions at specific points:
| Event | BricksMembers Action | Notes |
|---|---|---|
| Order paid/completed | Add level | Level assigned when payment is confirmed |
| Order fully refunded | Remove level (if enabled) | Only full refunds trigger removal |
| Order canceled | Remove level (if enabled) | Separate setting from refunds |
| Subscription active | Add level | Level assigned when subscription starts |
| Subscription expired | Remove level (if enabled) | When the paid period ends |
Troubleshooting
Level Not Assigned After Purchase
Check these common causes:
- Module not enabled: Verify FluentCart module is active in BricksMembers → Settings → Modules
- Product not mapped: Check that the product is checked for the desired level in BricksMembers → FluentCart
- Order not completed: Check if the order status is “Completed” in FluentCart. Pending orders don’t trigger level assignment.
- Guest checkout without user creation: If “Create WordPress users” is disabled, guest orders won’t receive levels
- No WordPress user linked: FluentCart customers need a linked WordPress user account. Enable “Create WordPress users” to automatically create accounts.
Level Not Removed on Refund or Cancel
- Setting not enabled: Verify the appropriate setting is checked:
- “Remove levels when order is fully refunded” for refunds
- “Remove levels when order is canceled” for cancellations
- Partial refund: Only full refunds trigger level removal
Subscription Level Not Removed After Cancel
This is expected behavior. When a customer cancels a subscription, they keep their level until the subscription period actually expires. This ensures they get what they paid for.
If you need to remove access immediately upon cancellation, you would need to manually remove the level from the user, or wait for the subscription to expire.
Developer Hooks
For developers who need to extend the integration, BricksMembers fires several action hooks:
// Fired when a level is added via FluentCart order
do_action( 'brm_fluentcart_level_added', $user_id, $level_id, $order_id );
// Fired when a level is removed via FluentCart order/refund/cancel
do_action( 'brm_fluentcart_level_removed', $user_id, $level_id, $order_id );
// Fired when a level is added via subscription activation
do_action( 'brm_fluentcart_subscription_level_added', $user_id, $level_id, $subscription_id );
// Fired when a level is removed via subscription expiration
do_action( 'brm_fluentcart_subscription_level_removed', $user_id, $level_id, $subscription_id );
Native Integration vs Webhooks
BricksMembers supports FluentCart through both native integration and webhooks. Here’s when to use each:
Use Native Integration when:
- FluentCart is on the same WordPress site as BricksMembers
- You want the simplest setup with zero configuration
- You need instant level assignment
- You’re using FluentCart subscriptions
Use Webhooks when:
- FluentCart is on a separate site
- You need complex event-based logic
- You’re already using webhooks for other integrations
For most users with FluentCart on the same site, the native integration is the recommended approach.
Best Practices
- Enable user creation: Ensures all customers get access, even guests
- Enable refund handling: Automatically revoke access for refunded orders
- Enable order cancellation handling: Revoke access for canceled orders
- Enable subscription expiration handling: Automatically remove levels when subscriptions end
- Test thoroughly: Always test purchases, refunds, cancellations, and subscription lifecycle before going live
- Use clear product names: Makes the mapping interface easier to use
With the native FluentCart integration configured, your membership site will automatically handle level assignment and removal based on customer purchases—no manual intervention required.