Development Environment Setup
Before you start developing custom modules or extensions for Beaver Builder, ensure you have a proper development environment:Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- Beaver Builder plugin installed and activated
- Code editor (VS Code, PHPStorm, etc.)
- Local development environment (Local, MAMP, Docker, etc.)
Setting Up Your Plugin
Create a custom plugin to house your Beaver Builder customizations:Plugin Structure Overview
Beaver Builder follows a modular architecture. Understanding the core structure will help you develop effectively:Directory Structure
Key Components
Modules
Custom content blocks that users drag and drop into their layouts
Extensions
Functionality that extends or modifies Beaver Builder’s core features
Settings Forms
Configuration interfaces for modules and rows/columns
Templates
PHP files that render module output on the frontend
Best Practices
Code Standards
Follow WordPress coding standards and Beaver Builder conventions:Naming Conventions
Naming Conventions
- Use descriptive, prefixed class names (e.g.,
FLMyCustomModule) - Prefix functions to avoid conflicts (e.g.,
my_bb_custom_function) - Use lowercase with hyphens for slugs (e.g.,
my-custom-module)
File Organization
File Organization
- Keep module files in their own directories
- Use
includes/for template files - Separate CSS and JS into dedicated files
- Include an
icon.svgfor your module icon
Security
Security
- Sanitize all user inputs
- Escape all outputs
- Check user capabilities
- Use nonces for AJAX requests
Performance
Performance
- Enqueue scripts/styles only when needed
- Use transients for expensive operations
- Optimize database queries
- Implement proper caching
Module Development Workflow
Development Workflow
Local Development
- Enable WordPress Debug Mode
- Clear Cache Frequently
- Use Partial Refresh
Debugging Tools
Core Classes Reference
FLBuilder
Main class for registering modules and rendering layouts
FLBuilderModule
Base class that all custom modules extend
FLBuilderModel
Handles data operations and layout management
FLBuilderCSS
Helper methods for generating CSS rules
Key File Locations
Next Steps
Create Custom Modules
Learn how to build your first custom module
Module Settings
Configure settings forms and field types
Hooks & Filters
Extend functionality with WordPress hooks