| 开发者 | HsHHiri |
|---|---|
| 更新时间 | 2026年10月3日 16:51 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/wp-content/plugins/, or install it through the WordPress plugin installer.Use the "Check current webhook status" button in the settings page to diagnose the connection between your server and the Bale API.
Yes. The chat widget is automatically disabled while editing in Elementor's live preview (as well as Divi, Beaver Builder, and Visual Composer) to avoid interfering with the builder's editing tools; it displays normally for visitors on the published site.
<input>/<select> fields, silently dropping the new multi-line admin IDs field (and any other <textarea>) when saving.function_exists('WC') instead of class_exists('WooCommerce')) used to enable the product picker, for more reliable detection.sessionStorage access (e.g. some private-browsing modes or hardened browser settings); it now falls back gracefully instead of stopping.:is(.btn,.button,button,[type=submit]) { padding: 5px 20px; min-height: 42px; } to every button on the site. This overrode the plugin's own padding: 0 on the small round send/product-picker buttons, squeezing the icon down to nothing. All critical sizing properties (padding, width, height, display) on the chat widget's buttons are now marked !important so they can no longer be overridden by a theme's generic button styling.currentColor, which resolved to the default text color instead of white on the colored button background..show(), which set an incompatible display value that conflicted with the button's flex layout on some screens/browsers. It's now toggled with a CSS class instead.wp_upload_dir() (a randomized, per-site subfolder) instead of a custom path directly under WP_CONTENT_DIR, per the plugin directory's guidance on determining writable locations correctly.file_put_contents()/file_get_contents() calls for log files with WP_Filesystem, for better compatibility across hosting environments.WP_Filesystem fast./reply command) not delivering replies after upgrading from 2.2.x. The REST API namespace changed in 2.3.0, which left the webhook URL previously registered with Bale pointing to a route that no longer existed; the plugin now automatically re-registers the webhook on the new route the first time it runs after this update, without any action needed from the site owner. Sites still on 2.3.0 can also fix this immediately by clicking "Set webhook automatically" in the settings page.mlc/MLC prefix (3 characters) to mlclich/MLCLICH, to comply with the WordPress.org plugin directory's uniqueness requirements. The plugin slug and text domain (mlc-live-chat) are unchanged.verify_secret()) previously allowed requests through when no secret was configured yet; it now rejects them instead, closing a window where replies could be spoofed on a freshly-activated site.<script>/<style> blocks in admin pages and the chat widget to properly enqueued files via wp_enqueue_script()/wp_enqueue_style(), wp_localize_script(), and wp_add_inline_style().register_setting() sanitize callback now fully sanitizes every settings field (previously only two of the fields were handled there, relying on the AJAX handler for the rest).wp-content/uploads (a web-accessible directory) to a dedicated folder outside of it, with a randomized per-site filename, so log contents are not exposed regardless of web server type (this previously relied on .htaccess, which Nginx ignores by default).$wpdb->prepare() calls.wp_cache_get()/wp_cache_set()) to frequently-read queries to reduce direct-database-query notices and improve performance; the cache is invalidated on every write.$wpdb->prepare() identifier placeholders (%i), removing all direct-database-query warnings.%i placeholder) and updated "Tested up to" to the current release.wp_delete_file(), WP_Filesystem).load_plugin_textdomain() call and the unused Domain Path header.