Releases: maitpatni/broodle-engage-connector
Releases · maitpatni/broodle-engage-connector
Release list
v3.2.3 - Constant Redefinition Fix
Fix: Constant Redefinition Error
Problem
When the plugin file was loaded multiple times (e.g., during updates or due to caching), PHP threw:
- "Warning: Constant BROODLE_ENGAGE_VERSION already defined"
- "Fatal error: Cannot declare class Broodle_Engage_Connector, because the name is already in use"
Solution
All plugin constants now use if (!defined()) guards before defining:
if ( ! defined( 'BROODLE_ENGAGE_VERSION' ) ) {
define( 'BROODLE_ENGAGE_VERSION', '3.2.3' );
}Also Fixed
- Uninstall HPOS support: Now properly cleans up
wc_orders_metatable for HPOS orders - Version bumped to 3.2.3
Files Changed
- broodle-engage-connector.php (constant guards)
- uninstall.php (HPOS cleanup)
- readme.txt (changelog)
v3.2.2 - Critical Hotfix
Critical Hotfix
Activation Fatal Error (FIXED)
- Root cause found:
check_db_version()was callingBroodle_Engage_Logger::create_tables()but that static method doesn't exist - The actual
create_tables()method is on the mainBroodle_Engage_Connectorclass as a private method - Fixed: Changed to
$this->create_tables() - This caused the "Class not found" error on activation
Uninstall Fix
- Wrong table name: Uninstall was trying to drop
broodle_engage_notificationsbut actual table isbroodle_engage_logs - Fixed uninstall to drop correct table name
Files Changed
- broodle-engage-connector.php (check_db_version fix)
- uninstall.php (table name fix)
v3.2.1 - Hotfix
Hotfix
Bug Fix
- Activation Error: Fixed "Class Broodle_Engage_Logger not found" error on plugin activation
The logger class was being called before it was loaded. Added explicit require before use in check_db_version().
v3.2.0 - Production Fixes
Production Fixes
Bug Fixes
- Rate limiting: Fixed fake hardcoded rate limit with real transient-based tracking
- Template variables: Fixed gap bug in variable mapping that sent wrong data to customers
- Retry notifications: Fixed template_vars being read from overwritten field
- Processing delay: Fixed order_processing bypassing delay configuration
Security
- Capability check: Removed overly permissive edit_others_posts (Editors no longer can access API key)
Database
- Version tracking: Added BROODLE_ENGAGE_DB_VERSION for proper migration handling
- Uninstall cleanup: Complete cleanup of options, transients, cron hooks, order meta, and tables
General
- Default country code: Changed from +1 to +91 (India market)
- Translation loading: Added load_plugin_textdomain() call
- Error logging: Replaced silent exception swallowing with WP_DEBUG-gated logging
- Dead code: Removed commented-out cleanup_duplicate_statuses hook
Files Changed
- broodle-engage-connector.php
- includes/class-broodle-engage-admin.php
- includes/class-broodle-engage-api.php
- includes/class-broodle-engage-logger.php
- includes/class-broodle-engage-notifications.php
- includes/class-broodle-engage-settings.php
- uninstall.php
V.3.1.1
Changelog v3.1.1
Bug Fixes
- Log timezone fix — Logs page was showing times shifted by +5:30 hours due to double timezone offset. Now correctly displays times in the WordPress site timezone (IST).
UI
- Plugin action links — Moved "Sign Up for Broodle Engage" and "Login to Dashboard" links after the Deactivate button.
V.3.1.0
Changelog: 3.0.1 → 3.1.0
New Features
- GitHub Auto-Updater — Check for updates from GitHub releases; one-click update from WordPress admin
- Conversation Reuse — Reuse existing Chatwoot conversation for the same contact instead of creating a new one each time
- UTM Tracking — All URLs include ?utm_source=engage&utm_medium=whatsapp for analytics
- Product Featured Image Checkbox — Option to use WooCommerce product featured image as template header
- Product URL Variable — New product_url option in template variable mapping
- Plugin Action Links — Added "Sign Up for Broodle Engage" and "Login to Dashboard" links on Plugins page
Improvements
- Template Persistence — Fix template config not persisting after save
- Template Messages — Show actual template message body in Chatwoot inbox instead of generic fallback
- Image & Buttons — Include image headers and button params in Chatwoot message display
- Button Params — Send button params via processed_params (fixes error #132012)
- Image Persistence — Fix image_id not persisting across multiple templates on page reload
- Dashboard Widget — Redesigned with translucent stat cards, blue gradient header, proper white text, vertical alignment
- Help Tab — Comprehensive rewrite with feature docs, variable reference, troubleshooting
- Settings Header — Blue gradient style matching templates page
- URL Helpers — Use proper WooCommerce permalink helpers for all URLs
Bug Fixes (Critical)
- get_phone_number() → get_customer_phone() — Fixed undefined method causing fatal error on delayed notifications
- send_notification_safe() visibility — Changed from private to public (called cross-class via AJAX)
Cleanup
- API URL — Changed from dev http://127.0.0.1:3001 to production https://engage.broodle.one
- Deprecated PHP — date() → gmdate(), current_time('timestamp') → time()
- Links — All wa.broodle.one references updated to engage.broodle.one
- Plugin Rename — Folder/files renamed to broodle-engage-wp-connector to match GitHub repo