Plugin Directory

Test out the new Plugin Directory and let us know what you think.

Simple Ajax Chat

Displays a fully customizable Ajax-powered chat box anywhere on your site.


  • 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)


  • 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
  • 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


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


  • 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


  • 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


  • Tested on WordPress 4.3
  • Updated minimum version requirement
  • Fixed 404/500 error for certain setups


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • Replaced original header codes and WP includes in sac.php


  • 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


  • Tightened form security
  • Tightened plugin security
  • Updated deprecated functions
  • Resolved some PHP Notices


  • Improved localization support
  • Replaced some deprecated template tags


  • 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)


  • Added JavaScript to set up sound-alerts (fixes undefined variable error)


  • 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")


  • 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


  • 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


  • Initial release.

Requires: 4.1 or higher
Compatible up to: 4.7.1
Last Updated: 2 months ago
Active Installs: 1,000+


4.5 out of 5 stars


1 of 1 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1
100,1,1 50,2,1
100,1,1 100,1,1
100,1,1 100,2,2 100,1,1
100,1,1 100,1,1
100,1,1 67,3,2 100,1,1
100,2,2 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1