Changeset 3458979
- Timestamp:
- 02/11/2026 01:13:29 PM (7 weeks ago)
- Location:
- bettercx-widget/trunk
- Files:
-
- 2 edited
-
bettercx-widget.php (modified) (5 diffs)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
bettercx-widget/trunk/bettercx-widget.php
r3458971 r3458979 4 4 * Plugin URI: https://wordpress.org/plugins/bettercx-widget/ 5 5 * Description: Professional AI-powered chat widget for BetterCX platform. Seamlessly integrate intelligent customer support into any website with full WordPress compatibility. Fully functional out of the box with no trial limitations. 6 * Version: 1.0.2 26 * Version: 1.0.23 7 7 * Author: BetterCX 8 8 * Author URI: https://bettercx.ai … … 16 16 * 17 17 * @package BetterCX_Widget 18 * @version 1.0.2 218 * @version 1.0.23 19 19 * @author BetterCX 20 20 * @license GPLv2+ … … 37 37 38 38 // Define plugin constants 39 define('BETTERCX_WIDGET_VERSION', '1.0.2 2');39 define('BETTERCX_WIDGET_VERSION', '1.0.23'); 40 40 define('BETTERCX_WIDGET_PLUGIN_FILE', __FILE__); 41 41 define('BETTERCX_WIDGET_PLUGIN_DIR', plugin_dir_path(__FILE__)); … … 848 848 $event_script = " 849 849 document.addEventListener('DOMContentLoaded', function() { 850 const widget = document.querySelector('bettercx-widget'); 851 if (widget && window.bettercxWidgetConfig) { 852 // Set widget attributes from config if not already set 853 const config = window.bettercxWidgetConfig; 854 855 if (config.embeddedSize && !widget.hasAttribute('embedded-size')) { 856 widget.setAttribute('embedded-size', config.embeddedSize); 857 } 858 859 if (config.embeddedPlacement && !widget.hasAttribute('embedded-placement')) { 860 widget.setAttribute('embedded-placement', config.embeddedPlacement); 861 } 862 863 widget.addEventListener('widgetEvent', function(e) { 864 // Trigger custom WordPress action 865 if (typeof jQuery !== 'undefined') { 866 jQuery(document).trigger('bettercx:widgetEvent', [e.detail]); 850 var widget = document.querySelector('bettercx-widget'); 851 if (!widget) return; 852 customElements.whenDefined('bettercx-widget').then(function() { 853 // Stencil does not coerce HTML attribute embedded=\"true\" to boolean; set properties explicitly. 854 if (widget.getAttribute('embedded') === 'true') { 855 widget.embedded = true; 856 var size = widget.getAttribute('embedded-size'); 857 if (size) widget.embeddedSize = size; 858 var placement = widget.getAttribute('embedded-placement'); 859 if (placement) widget.embeddedPlacement = placement; 860 } 861 if (window.bettercxWidgetConfig) { 862 var config = window.bettercxWidgetConfig; 863 if (config.embeddedSize && !widget.hasAttribute('embedded-size')) { 864 widget.setAttribute('embedded-size', config.embeddedSize); 867 865 } 868 869 // Trigger global function if defined 870 if (typeof window.BetterCXWidgetEvent === 'function') { 871 window.BetterCXWidgetEvent(e.detail); 866 if (config.embeddedPlacement && !widget.hasAttribute('embedded-placement')) { 867 widget.setAttribute('embedded-placement', config.embeddedPlacement); 872 868 } 873 874 // Analytics tracking if enabled 875 if (config.enableAnalytics) { 876 if (typeof gtag !== 'undefined') { 869 widget.addEventListener('widgetEvent', function(e) { 870 if (typeof jQuery !== 'undefined') { 871 jQuery(document).trigger('bettercx:widgetEvent', [e.detail]); 872 } 873 if (typeof window.BetterCXWidgetEvent === 'function') { 874 window.BetterCXWidgetEvent(e.detail); 875 } 876 if (config.enableAnalytics && typeof gtag !== 'undefined') { 877 877 gtag('event', 'bettercx_widget_event', { 878 878 event_type: e.detail.type, … … 880 880 }); 881 881 } 882 } 883 } );884 } 882 }); 883 } 884 }); 885 885 }); 886 886 "; -
bettercx-widget/trunk/readme.txt
r3458971 r3458979 5 5 Tested up to: 6.8 6 6 Requires PHP: 7.4 7 Stable tag: 1.0.2 27 Stable tag: 1.0.23 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 248 248 == Changelog == 249 249 250 = 1.0.23 = 251 * Fixed embedded mode when using shortcode: widget now correctly displays in embedded layout (inline) instead of floating in the corner when shortcode has embedded="true" 252 * Stencil does not coerce HTML attribute embedded="true" to boolean; plugin now sets embedded, embeddedSize, and embeddedPlacement as JavaScript properties after component is defined so embedded shortcode works reliably 253 250 254 = 1.0.22 = 251 255 * Fixed "Enable Widget" checkbox: unchecked state now correctly saves and disables the global widget (previously reverted to checked) … … 407 411 == Upgrade Notice == 408 412 413 = 1.0.23 = 414 Bugfix: Embedded mode now works when using shortcode with embedded="true"; widget displays inline instead of floating in the corner. 415 409 416 = 1.0.22 = 410 417 Update: "Enable Widget" checkbox now saves correctly when unchecked. Shortcode-only and Elementor pages work properly (no duplicate widget, scripts load). Test Connection button removed from admin.
Note: See TracChangeset
for help on using the changeset viewer.