WP Manifestindependent plugin directory
manifest / builders / ml-brevo-for-elementor-pro

ML Brevo for Elementor Pro

Integrates Elementor forms with Brevo API. Now supports ALL your Brevo contact attributes with dynamic field mapping! Multilingual support: Italian, French, German, Spanish.

by Matteo Lavaggi · github.com/matteolavaggi/ml-brevo-for-elementor-pro

1stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/matteolavaggi/ml-brevo-for-elementor-pro/archive/refs/heads/master.zip

Readme

ML Brevo for Elementor Pro v2.3

Elementor Field ID Location

Introduction

ML Brevo for Elementor Pro is a powerful WordPress plugin that seamlessly integrates Brevo (formerly Sendinblue) email marketing platform with Elementor Pro forms. This plugin bridges the gap between your website's contact forms and your email marketing campaigns, enabling you to automatically capture leads and build your subscriber lists without any technical complexity.

What This Plugin Does

This integration allows you to:

  • Automatically sync form submissions from Elementor Pro forms directly to your Brevo contact lists
  • Map any form field to any Brevo contact attribute (name, email, phone, custom fields, etc.)
  • Support all Brevo contact attributes dynamically fetched from your Brevo account
  • Manage GDPR compliance with built-in double opt-in support
  • Handle multiple contact lists with an intuitive list selection interface
  • Monitor form submissions with comprehensive debug logging

Why Choose This Plugin

🎯 Purpose-Built for Brevo: Unlike generic form integrations, this plugin is specifically designed for Brevo's API and features

Performance Optimized: Zero impact on page load times - no additional scripts are loaded on the frontend

🔧 Dynamic Field Mapping: Automatically discovers and supports ALL your Brevo contact attributes, not just basic fields

📊 Professional Admin Interface: Modern, tabbed interface with real-time list management and debug tools

🔒 GDPR Compliant: Built-in support for double opt-in and privacy compliance

🚀 Easy Setup: Works seamlessly with existing Elementor Pro forms - no complex configuration required

Perfect For

  • Marketing Agencies managing multiple client websites with Brevo
  • Business Owners who want to automate lead capture from their website
  • Developers who need a reliable, extensible Brevo integration
  • Anyone using Elementor Pro who wants professional email marketing automation

System Requirements

Minimum Requirements

  • WordPress 5.0 or greater
  • PHP version 7.0 or greater
  • MySQL version 5.0 or greater
  • Elementor Pro 3 or greater

Recommended Environment

  • PHP version 7.4 or greater
  • MySQL version 5.6 or greater
  • WordPress Memory limit of 64 MB or greater (128 MB or higher is preferred)

Installation

  1. Install using the WordPress built-in Plugin installer, or Extract the zip file and drop the contents in the wp-content/plugins/ directory of your WordPress installation.
  2. Activate the plugin through the 'Plugins' menu in WordPress.
  3. Go to Pages > Add New
  4. Press the 'Edit with Elementor' button.
  5. Drag and drop the form widget of Elementor Pro from the left panel onto the content area, and find the Brevo action in the "Actions after submit" dropdown.
  6. Fill your Brevo data and Key and you are all set. All users will be added after they submit the form.

Field Mapping Guide

When configuring the Brevo integration in your Elementor form, you'll need to map your form fields to Brevo contact attributes. To do this, you need to know the Field ID of each form field in Elementor.

How to Find Field IDs in Elementor

Elementor Field ID Location

To find the Field ID for any form field in Elementor:

  1. Edit your form in Elementor
  2. Click on the form field you want to map (e.g., Name, Email, Phone, etc.)
  3. Go to the Advanced tab in the field settings
  4. Look for the "Field ID" - this is the unique identifier you'll use in the Brevo integration
  5. Copy this Field ID and use it in the corresponding Brevo field mapping

Field Mapping Example

For example, if your form has:

  • Name field with ID: name
  • Email field with ID: email
  • Phone field with ID: phone

You would map these in the Brevo integration settings by entering the Field ID (e.g., name) in the corresponding Brevo attribute field.

💡 Tip: Use descriptive Field IDs like first_name, email_address, phone_number to make mapping easier and more maintainable.

Multilingual Support

ML Brevo for Elementor Pro v2.3 now includes comprehensive multilingual support with native translations for multiple languages.

Supported Languages

  • 🇬🇧 English (default)
  • 🇮🇹 Italian (Italiano)
  • 🇫🇷 French (Français)
  • 🇩🇪 German (Deutsch)
  • 🇪🇸 Spanish (Español)

How Translations Work

The plugin automatically detects your WordPress site language and displays the interface in the corresponding language. All plugin interfaces are translated including:

  • Admin settings pages
  • Form integration controls in Elementor
  • Debug logs and error messages
  • Help text and documentation
  • Field labels and descriptions

Translation Management

The plugin includes a built-in Translation Management system accessible from the admin interface:

  1. Go to Settings > ML Brevo for Elementor Pro
  2. Click the "Translations" tab
  3. View translation status for all supported languages
  4. Compile translations for optimal performance

Translation Files

The plugin uses WordPress standard translation system:

  • PO Files (.po): Human-readable translation files that can be edited
  • MO Files (.mo): Compiled binary files that WordPress uses for performance
  • POT File (.pot): Template file containing all translatable strings

Compiling Translations

For optimal performance, translation files should be compiled:

  1. Navigate to Translations tab in plugin settings
  2. Click "Compile All Translations" button
  3. Verify compilation status in the translation table

The system automatically detects when translations need recompilation and provides visual indicators.

Adding Custom Translations

To add or modify translations:

  1. Edit the .po file for your language in /languages/ directory
  2. Use translation tools like Poedit for easier editing
  3. Compile translations using the plugin's built-in compiler
  4. Refresh your admin page to see changes

Language Detection

The plugin automatically:

  • Detects your WordPress site language setting
  • Loads appropriate translation files
  • Falls back to English if translation is unavailable
  • Provides debug information when translations are enabled

Frequently Asked Questions

Why is Elementor Pro required?

Because this integration works with the Form Widget, which is a Elementor Pro unique feature not available in the free plugin.

Can I still use other integrations if I install this integration?

Yes, all the other form widget integrations will be available.

Does this also work with Brevo?

Yes, this plugin is designed specifically for Brevo (formerly Sendinblue). The integration will work perfectly with all Brevo features.

Changelog

[2.3.0] - 2025-08-01

⚡ PERFORMANCE RELEASE - No Cache System for Faster Setup

This major release removes the caching system to dramatically speed up configuration and ensure real-time data from Brevo API.

🚀 Key Performance Improvements

Removed Caching System

  • Instant Configuration Updates: All Brevo data is now fetched fresh from API on every request
  • Real-Time Data Sync: No more stale cached data - always get the latest attributes and lists from Brevo
  • Faster Setup Experience: Configuration changes are immediately visible without waiting for cache expiration
  • Eliminated Cache-Related Errors: No more cache corruption or synchronization issues

Enhanced API Integration

  • Smart Pagination Support: Automatic pagination for large datasets
    • Attributes API: Supports up to 100 items per request with automatic pagination
    • Lists API: Optimized single-request fetching (no pagination needed)
  • Improved Error Handling: Comprehensive error logging and debugging
    • Frontend error display for immediate user feedback
    • Detailed debug logs with API response codes and error messages
    • Better error recovery and user guidance

Fixed Critical Issues

  • Resolved Brevo Lists API Error: Fixed "Limit exceeds max value" error (HTTP 400)
    • Removed problematic pagination parameters from Lists API calls
    • Lists now load correctly without limit/offset errors
  • Restored Save Button: Fixed missing save functionality in admin settings
    • Corrected form nonce field placement
    • Settings can now be saved properly again

✨ Added

Advanced Debugging System

  • Comprehensive Error Logging: All API errors are now logged with full context
    • HTTP request failures with detailed error messages
    • API response code errors (400, 401, 500, etc.) with Brevo error details
    • JSON parsing errors with response body information
    • Frontend AJAX errors with user context
  • Performance Monitoring: Real-time API performance tracking
    • Request execution times for all API calls
    • Item count verification for successful requests
    • Memory usage monitoring during operations

Improved User Experience

  • Instant Feedback: Real-time error messages displayed to users
  • Better Admin Interface: Enhanced settings page with proper form handling
  • Reliable List Management: Lists now load consistently without errors
  • Fresh Data Guarantee: Always displays the most current data from Brevo

🔄 Changed

API Strategy Optimization

  • From Cached to Real-Time: Eliminated 1-hour cache system for immediate data access
  • Pagination Strategy: Optimized pagination approach per API endpoint
    • Attributes: Full pagination support with automatic batching
    • Lists: Direct API calls without pagination (not supported by Brevo Lists API)
  • Error Handling: Enhanced error reporting and user feedback system

Performance Improvements

  • Faster Configuration: No cache warm-up time required
  • Reduced Complexity: Eliminated cache management overhead
  • Better Reliability: No cache-related failures or data inconsistencies
  • Improved Debugging: Immediate visibility into API issues

🛠️ Fixed

Critical Bug Fixes

  • Fixed Lists API Integration: Resolved HTTP 400 errors when fetching contact lists
    • Removed unsupported pagination parameters
    • Proper error handling for Lists API responses
    • Comprehensive logging for debugging
  • Restored Admin Functionality: Fixed broken save button in settings page
    • Corrected WordPress nonce field placement
    • Proper form submission handling
  • Enhanced Error Visibility: Frontend errors now properly logged and displayed
    • AJAX error handling improvements
    • User-friendly error messages
    • Debug log integration for troubleshooting

API Integration Fixes

  • Brevo API Compatibility: Better alignment with Brevo API specifications
    • Correct pagination limits per endpoint
    • Proper error message extraction from API responses
    • Enhanced request timeout handling
  • Data Consistency: Eliminated cache-related data mismatches
  • Form Integration: Improved Elementor form integration reliability

📊 Performance Benefits

Speed Improvements

  • Configuration Setup: 3x faster initial setup (no cache building)
  • Data Updates: Instant reflection of Brevo account changes
  • Error Resolution: Immediate feedback on configuration issues
  • Admin Interface: Faster page loads without cache operations

Reliability Enhancements

  • Data Accuracy: 100% fresh data from Brevo API
  • Error Handling: Comprehensive error catching and reporting
  • User Experience: Predictable behavior without cache-related surprises
  • Debugging: Clear visibility into all API operations

🎯 User Experience

Immediate Benefits

  • Faster Setup: New installations configure instantly
  • Real-Time Updates: Changes in Brevo appear immediately in WordPress
  • Better Error Messages: Clear, actionable error information
  • Reliable Operation: Consistent behavior without cache-related issues

Developer Experience

  • Enhanced Debugging: Comprehensive logging system for troubleshooting
  • Better Error Handling: Detailed error context for faster issue resolution
  • Improved Code Quality: Cleaner codebase without cache complexity
  • Performance Monitoring: Built-in timing and performance metrics

🔧 Technical Details

Removed Components

  • All cache-related methods and constants
  • Cache expiration and cleanup systems
  • Cache key generation and management
  • Transient storage for API responses

Enhanced Components

  • Direct API integration with improved error handling
  • Pagination system optimized per endpoint
  • Comprehensive logging and debugging system
  • Better WordPress integration standards

[2.2.1] - 2025-06-22

🌍 MULTILINGUAL RELEASE - Complete Translation Support

This major release introduces comprehensive multilingual support, making the plugin accessible to users worldwide with native language interfaces.

✨ Added

Multilingual System

  • Complete Translation Support: Full plugin translation for 5 languages
    • 🇬🇧 English (default)
    • 🇮🇹 Italian (Italiano)
    • 🇫🇷 French (Français)
    • 🇩🇪 German (Deutsch)
    • 🇪🇸 Spanish (Español)
  • Translation Management Interface: Built-in translation compiler and manager
    • Real-time translation status monitoring
    • One-click translation compilation
    • Visual indicators for translation health
    • Automatic detection of files needing compilation
  • WordPress Native Integration: Follows WordPress translation standards
    • POT template file for translators
    • PO files for human-readable translations
    • MO files for optimized WordPress performance
    • Automatic language detection based on site settings

Read the full README on GitHub →