Changelog for Simple Ajax Chat https://wordpress.org/plugins/simple-ajax-chat/ > __Tip:__ Use a free markdown tool like https://dillinger.io/ to convert the changelog to a more readable format. > __Tip:__ Check announcement posts for details about pro updates and related news: https://plugin-planet.com/news/ **20240412** * Improves sanitization of JavaScript variables (Thanks Bob @ [WPScan](https://wpscan.com/)) * Tests on WordPress 6.5 **20240318** * Fixes PHP session warnings ([Thanks](https://wordpress.org/support/topic/session-warning-2/) [@jenolan](https://wordpress.org/support/users/jenolan/)) * Fixes "invalid form control" with URL field * Updates plugin settings page * Updates default translation template * Improves plugin docs/readme.txt * Tests on WordPress 6.5 (beta) **20240223** * Fixes XSS bug with Name field (Thanks [Vincent Fourcade](https://fr.linkedin.com/in/vincent-fourcade-341535197)) * Tests on WordPress 6.4 **20240216** * Tightens security/validation of display options (Thanks [WP Plugin Review Team](https://make.wordpress.org/plugins/)) * Tests on WordPress 6.4 **20231101** * Improves `/exports/` .htaccess rules * Updates default translation template * Updates custom banner notice * Tests on WordPress 6.4 (beta) **20230722** * Improves support panel logic * Improves .htaccess directives * Improves plugin documentation * Adds PHP constant `SIMPLE_AJAX_CHAT_FILE` * Adds custom notice on settings page * Updates default translation template * Tests on WordPress 6.3 (beta) **20230307** * Tweaks settings UI * Improves responsive styles * Improves logic for `sac_i18n_init()` * Improves logic for `sac_require_wp_version()` * Improves logic when calling `get_current_screen()` * Replaces some global variables with constants * Moves WP Resources panel to its own function * Removes SES Pro from WP Resources panel * Generates new translation template * Tests on WordPress 6.1 + 6.2 (beta) * Tests on PHP 8.1 and 8.2 **20221003** * Fixes bug with sessions and headers already sent * Improves compatibility with WordPress.com * Adds new action link on WP Plugins screen * Adds custom footer text to plugin settings * Improves plugin settings page details * Improves plugin documentation * Updates "Show Support" panel * Updates translation template * Tests on WordPress 6.1 **20220720** * Improves compatibility with WordPress.com (Thanks Thom @ Automattic) * Chat names must include at least one non-whitespace character * Chat names support multibyte characters (Thanks [@nikita12345](https://wordpress.org/support/topic/username-with-symbols-and-multibyte-characters/)) * Chat messages must include at least one non-whitespace character * Improves anti-spam protection (Thanks [@rlama](https://wordpress.org/support/topic/preventing-linked-username-spam/)) * Changes "User ID" to "Chat ID" in CSV export file * Adds `nofollow` attribute to chat and user links * Changes input type to `url` for user URL field * Removes unused audio files `msg-snorts-default` * Improves sanitization of user URL input * Adds info about SAC Pro on plugin page * Updates default translation template * Tests on WordPress 6.1 (alpha) **20220216** * Fixes several security issues (Thanks [Vlad Ex.Mi](https://patchstack.com/)) * Fixes security issue with exported data (Thanks [Austin Turecekn](https://github.com/Galapag0s)) * Improves performance of SQL queries (Thanks Martin V.) * Improves resetting of default plugin options * Improves display of plugin settings page * Updates default translation template * Tests on WordPress 6.0 **20220115** * Updates support panel * Improves plugin documentation * Improves loading of translations * Adds date/time to chats on settings page * Updates some links to external resources * Changes minimum required WP version to 4.6 * Tests on WordPress 5.9 **20210714** * Adds several options for browser notifications * Removes rogue file from languages folder * Updates default translation template * Tests on WordPress 5.8 **20210210** * Fixes PHP deprecated notice non-string needles * Fixes Uncaught TypeError on Android/Chrome * Removes deprecated `.po` translation file * Updates default translation template * Tests on WordPress 5.7 **20201124** * Fixes bug with chat not working on mobile browsers * Tests on WordPress 5.6 **20201112** * Adds browser notifications (Thanks [@benbois](https://wordpress.org/support/topic/new-feature-browser-notifications/)) * Adds filter hook `sac_textarea_atts` * Improves the chat processing script * Increases maximum chat message size in database * Fixes bug where chat fails w/ blank referrer * Fixes bug with parentheses in chat username * Fixes some missing translation strings * Updates default translation template * Tests on PHP 7.4 and 8.0 * Tests on WordPress 5.6 **20200808** * Adds filters `sac_chat_url`, `sac_chat_message` (Thank you Luca) * Updates sets of nonce secret keys * Refines plugin setting page styles * Refines readme/documentation * Tests on WordPress 5.5 **20200315** * Fixes bug with Site Health loopback request * Fixes bug with targeted loading * Fixes bug with Ajax requests and error * Fixes bug with invalid chat user names * Improves security of form cookies * Tests on WordPress 5.4 **20191105** * Updates styles for plugin settings page * Tests on WordPress 5.3 **20190903** * Fixes PHP Warning: `stristr()`: Empty needle warning * Tests on WordPress 5.3 (alpha) **20190902** * Improves loading of scripts and core files * Improves logic of `sac_enqueue_scripts()` * Updates some links to https * Tests on WordPress 5.3 (alpha) **20190429** * Bumps [minimum PHP version](https://codex.wordpress.org/Template:Server_requirements) to 5.6.20 * Tweaks plugin settings screen content * Updates default translation template * Tests on WordPress 5.2 **20190308** * Updates `sac_plugin_action_links()` * Adds check for admin user for settings shortcut link * Tweaks plugin settings screen UI * Generates new default translation template * Tests on WordPress 5.1 and 5.2 (alpha) **20190220** * Tests on WordPress 5.1 **20181114** * Adds homepage link to Plugins screen * Updates default translation template * Tests on WordPress 5.0 **20181009** * Fixes PHP Deprecated notice, "The each() function is deprecated" * Further tests on WP versions 4.9 and 5.0 (alpha) **20180820** * Refines some details on the plugin settings page * Replaces `wp_filter_nohtml_kses` with `wp_strip_all_tags` for custom CSS * Adds `rel="noopener noreferrer"` to all [blank-target links](https://perishablepress.com/wordpress-blank-target-vulnerability/) * Updates GDPR blurb and donate link * Further tests on WP versions 4.9 and 5.0 (alpha) **20180508** * Adds option to disable collection of IP address information * Adds `rel="noopener noreferrer"` to relevant `_blank` target links * Increases max number of characters per chat (from 200 to 1000) * Escapes some attributes and markup in the plugin settings * Bugfix: Display Mode should not apply to logged-in users * Removes text shadows and borders on chat-date tooltips * Updates Show Support panel * Tweaks settings page UI * Generates new translation template * Updates plugin image files * Tests on WordPress 5.0 (alpha) **20171106** * Response code changed to 200 for "JavaScript not enabled" errors * Improves functionality of `simple-ajax-chat-core.php` **20171105** * To help stop spam on public chat forums, SAC now requires JavaScript * Tests on WordPress 4.9 **20171104** * Removes extra `manage_options` check for settings validation * Tests on WordPress 4.9 **20171103** * Adds further support for customizing logged username * Fixes bug with non-JavaScript chat submission * Tests on WordPress 4.9 **20171023** * Adds "Export Chats" feature via plugin settings screen * Adds tooltips to display the date/time of chat messages * Adds "Display Mode" setting to display the chat messages as "read-only" * Changes `id` attribute for login-required message: `#sac-panel` is now `#sac-output` * Adds filter hooks, `sac_chat_time`, `sac_time_since`, `sac_logged_username` * Updates default CSS for the setting, "Custom CSS styles" * Renames span class from `name` to `sac-chat-name` in chat list * Adds extra `manage_options` capability check to modify settings * Replaces `target="_blank"` attributes with `rel="external"` * Changes default URL value from `http://` to `https://` * Improves SAC database creation functionality * Streamlines Support panel in plugin settings * Tests on WordPress 4.9 **20170731** * Adds filter hook `sac_require_login_message` * Fixes HTML for chat messages on plugin settings page * Tests on WordPress 4.9 (alpha) **820170325** * Tweaked readme.txt :) **820170324** * Updates alert panel functionality * Removes colons `:` from chat form labels * Adds another layer of security against spam * Tweaks styles on plugin settings page * Adds class `sac-online` to chat messages of online users * Removes extraneous div when user is logged out and login is required * Improves styles for logged out users when login is required * Updates database creation script * Refines display of settings panels * Updates show support panel in plugin settings * Replaces global `$wp_version` with `get_bloginfo('version')` * Fixes some incorrect translation domains * Generates new default translation template * Tests on WordPress version 4.8 **20161116** * Fixed session already started notice * Fixed call to undefined function error * Relocated `session_unset()` function * Added function `sac_is_session_started()` * Improved security of session cookies * Updated plugin author URL * Changed stable tag from trunk to latest version * Refactored `add_sac_links()` function * Updated URL for rate this plugin links * Improved default style for abbr tags * Regenerated default language template * Tests on WordPress version 4.7 (beta) **20160811** * Streamlined and optimized plugin settings page * Replaced `_e()` with `esc_html_e()` or `esc_attr_e()` * Replaced `__()` with `esc_html__()` or `esc_attr__()` * Added plugin icons and larger banner image * Renamed text-domain from "sac" to "simple-ajax-chat" * Removed local translations in favor of [GlotPress](https://make.wordpress.org/polyglots/handbook/tools/glotpress-translate-wordpress-org/) * Added sixty-minute interval for auto-clearing chats * Fixed bug with targeted URLs including parameters * Added `sac_filter_user_url` hook to enable filtering of user URL * Added more attributes to allowed tags for custom content * Renamed `sac_process_chat_action` to `sac_process_chat` * Removed `sac_process_chat_filter` hook * Added `sac_process_chat_name` filter hook * Added `sac_process_chat_text` filter hook * Added `sac_process_chat_url` filter hook * Generated new translation template * Improved translation support * Tested on WordPress 4.6 **20160408** __Important!__ Two plugin files have changed names in this version. So DEACTIVATE the plugin BEFORE performing the update. Then after upgrading, reactivate the plugin and you're good to go. * Refactored plugin JavaScript for better performance * Swapped names of core plugin and chat process files * Added more granular control over script loading * Further testing on WordPress version 4.5 beta **20160401** * Refactored simple-ajax-chat-core.php * Replaced sac_add_to_head() with sac_enqueue_scripts() * Removed unnecessary $user_ID and get_currentuserinfo() in simple_ajax_chat() * Removed unnecessary $user_ID, $user_identity, and get_currentuserinfo() in sac_happens() * Refactored uninstall.php * Refactored simple-ajax-chat.php * Optimized nonce handling * Refactored simple-ajax-chat-form.php * Restyled default chat/form display * Removed redundant default options * Tweaked simple-ajax-chat-admin.php * Added `sac_process_chat_action` hook * Added `sac_process_chat_filter` hook * Added auto-clear chats cron functionality * Added sac_truncate_chats_action hook * sac_truncate_chats_interval_filter hook * Added more chat alert sound files * Removed player.swf file (not used) * Changed the default alert sound * Removed redundant esc_sql() from edit chat and delete chat functions * Added stripslashes() to name display on form, and to edit/add chat functions * Removed stripslashes() from plugin settings screen * Added Slovak translation (thanks to lulu108) * Increased size of manage chat buttons * sac.php now includes WP the same way as simple-ajax-chat.php * Replaced icon with retina version * Added screenshot to readme/docs * Added retina version of banner * Reorganized and refreshed readme.txt * Tested on WordPress version 4.5 beta **20151110** * Updated heading hierarchy in plugin settings * Added missing get_currentuserinfo() where applicable * Updated some i18n code and added French translation (Thanks to alysko) * Added Russian translation (Thanks to arniarni) * Improved logic of database query in sac_shout_edit() * Added esc_url() to sac_add_to_head() * Updated default translation template * Updated minimum version requirement * Tested on WordPress 4.4 beta **20150808** * Tested on WordPress 4.3 * Updated minimum version requirement * Fixed 404/500 error for certain setups **20150507** * Tested with WP 4.2 + 4.3 (alpha) * Changed a few "http" links to "https" * Fixed XSS vulnerability with add_query_arg() * Added primary key flag to create database function * Bugfix: form not submitting when JavaScript disabled * Improved logic in simple-ajax-chat.php * Added nonce security to chat form * Added support for SSL/https * Added sac_censor_replace filter to customize censored words * Added isset() to stop PHP warning **20150316** * Tested with latest version of WP (4.1) * Increased minimum version to WP 3.8 * Added $sac_wp_vers for version check * Added Text Domain and Domain Path to file header * Removed deprecated screen_icon() * Added alert notice for donations * Streamline/fine-tune plugin code * Replaced time() with current_time() throughout plugin * Added timestamp for each chat via data-time attribute * Replace $user_level and $sac_admin_user_level with current_user_can() * New feature: option to set max number of allowed chats * New feature: option to set max number of characters per chat * New feature: option to set max number of characters in username * Replaced hard-coded values for max chats/chars/name with options * Revamped chat-order functionality (Thanks to MartinW2) * Added line breaks to initJavaScript() * Added rows="5" cols="50" to chat message textarea * Updated auto-link regex, fixes backslash appended to URL * Think I fixed the backslash-before-apostrophes issue, let me know! * Replaced default .mo/.po templates with .pot template **20140923** * Tested on latest version of WordPress (4.0) * Increased minimum version requirement to WP 3.7 * Added conditional check to min-version function * Added option to display logged-in username as chat name * Improved logic of simple_ajax_chat() * Improved logic of sac_addData() * Improved logic in core and admin files * Increased default username max-length * Fine-tuned plugin settings page * Removed vestigial killswitch variable * Fixed issue where special characters were not displaying correctly * Replaced hardcoded paths with WP tags (e.g., wp-content directory) * Replaced $user_nickname global with wp_get_current_user() * Minified portions of the SAC JavaScript file for better performance * Added conditional check for $sac_lastID is numeric * Now using sanitize_text_field() for IPs * Replaced htmlspecialchars() with sanitize_text_field() * Replaced sac_special_chars() with esc_url() for user URL * Replaced htmlentities(), stripslashes(), sac_clean() with sanitize_text_field() * Replaced PHP tags with WP tags in sac_special_chars() * Updated mo/po translation files **20140305** * New feature: added setting to display chats in ascending or descending order (beta) * Improved logic for creating chat db table, fixes "mysql_list_tables" deprecated error * Added various CSS selectors to chat messages for custom styling * Added support for localization/translation **20140123** * Tested with latest WordPress (3.8) * Added trailing slash to load_plugin_textdomain() * Fixed 3 incorrect _e() tags in simple-sjax-chat-admin.php * Edited setting description for "Require log in?" for accuracy **20131107** * Removed `delete_option('sac_delete');` from uninstall.php * Replaced `application/x-javascript` with `` in sac.php * Replaced `add_plugin_links` with `add_sac_links` in simple-ajax-core.php **20131106** * Replaced original header codes and WP includes in sac.php **20131105** * Removed 3x "Δ" from die() for better security * Added "rate this plugin" link on Plugins and SAC settings screens * Replaced 3x "wpdb->escape" with "esc_sql" in simple-ajax-chat-core.php * Filter server variables with built-in simple-ajax-chat-admin.php (lines 65/66) * Improved security when submitted chat fails (simple-ajax-chat.php) * Specified no border for smileys in filter_smilies() * Added localized timestamp of last chat to span.name in sac.php * Localized "ago" in sac-admin, sac-core, and sac-form * Localized sac_time_since() in simple-ajax-core.php * Improved header codes and WP includes in sac.php * Fixed bug where chats don't work if audio is disabled * Added uninstall.php to remove options and chat table upon uninstall * Enhanced functionality of plugin settings page * Tested with latest version of WordPress (3.7) * General code maintenance and cleanup * Added support for localization **20130725** * Tightened form security * Tightened plugin security * Updated deprecated functions * Resolved some PHP Notices **20130713** * Improved localization support * Replaced some deprecated template tags **20130712** * Reorganized file/directory structure * Separated Ajax stuff from core plugin * Implemented strong anti-spam measures * Many functions rewritten to maximize native WP functionality * Improved audio support for chat alerts, fixed Safari bug * Fixed: case-insensitive banned phrases * Fixed: default options not working on install * Fixed: a bunch of annoying PHP Notices * Added .sac-reg-req for registration message div#sac-panel * Updated CSS skeleton with new selector (@ "/resources/sac.css") * Fixed: enable/disable links for usernames now works properly * General code check n clean * added comments to the .htaccess file (no active rules are included) **20130104** * Added JavaScript to set up sound-alerts (fixes undefined variable error) **20130103** * Added margins to submit buttons (now required in WP 3.5) * Added "div#sac-panel p {}" to default CSS * Added links to demo in readme.txt file * Updated all instances of $wpdb->prepare with new syntax * Added option for sound to play for new chat messages (note: chat-sound technique is borrowed from "Pierre's Wordspew") **20121206** * Edited line 217 to define variable and fix "timeout" error * Enhanced markup for custom content * Custom content may be added before and/or after the chat form and/or the list of chat messages **20121119** * Fixed PHP Warning: [function.stristr]: Empty delimiter (line 282) * Removed fieldset border in default form styles (plugin settings) * Added placeholders for name, URL, and chat message **20121110** * Initial release.