Real-world code examples for common BricksMembers integration patterns.
Level Assignment Automation
// Auto-assign level on user registration
add_action('user_register', function($user_id) {
// Assign free level to all new users
$free_level_id = 1;
brm_core()->add_user_level($user_id, $free_level_id);
});
// Auto-assign level based on purchase
add_action('woocommerce_order_status_completed', function($order_id) {
$order = wc_get_order($order_id);
$user_id = $order->get_user_id();
// Check if order contains premium product
foreach ($order->get_items() as $item) {
$product_id = $item->get_product_id();
if ($product_id === 123) { // Premium product ID
brm_core()->add_user_level($user_id, 5); // Premium level
}
}
});
Webhook Integration
// Send webhook on level assignment
add_action('brm_user_level_added', function($user_id, $level_id) {
$level = brm_get_level_by_id($level_id);
$user = get_userdata($user_id);
wp_remote_post('https://your-api.com/webhook', [
'body' => json_encode([
'event' => 'user_level_added',
'user_id' => $user_id,
'user_email' => $user->user_email,
'level_id' => $level_id,
'level_name' => $level->name
]),
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => 'your-api-key'
]
]);
}, 10, 2);
Bulk Operations
// Bulk assign level to users
function bulk_assign_level($user_ids, $level_id) {
$success = 0;
$failed = 0;
foreach ($user_ids as $user_id) {
if (brm_core()->add_user_level($user_id, $level_id)) {
$success++;
} else {
$failed++;
}
}
return [
'success' => $success,
'failed' => $failed
];
}
// Usage
$user_ids = [1, 2, 3, 4, 5];
$result = bulk_assign_level($user_ids, 5);