{"id":302932,"date":"2026-05-07T07:23:39","date_gmt":"2026-05-07T07:23:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/akukita-chat-with-ai-translation\/"},"modified":"2026-08-05T07:49:00","modified_gmt":"2026-08-05T07:49:00","slug":"akukita-chat-with-ai-translation","status":"publish","type":"plugin","link":"https:\/\/sv.wordpress.org\/plugins\/akukita-chat-with-ai-translation\/","author":23484980,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.4","stable_tag":"1.5.4","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Akukita Chat with AI Translation","header_author":"Mario Sim\u00f3n Melchor","header_description":"Real-time multilingual chat where every message is automatically translated into each user's preferred language. Supports MyMemory (free), DeepL, and OpenAI.","assets_banners_color":"bab7e8","last_updated":"2026-08-05 07:49:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/akukita.es\/wordpress-plugins\/akukita-chat-with-ai-translation\/","header_author_uri":"https:\/\/akukita.es","rating":5,"author_block_rating":0,"active_installs":0,"downloads":648,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"akukitadvt","date":"2026-05-07 08:36:00"},"1.0.9":{"tag":"1.0.9","author":"akukitadvt","date":"2026-05-21 10:40:52"},"1.1.0":{"tag":"1.1.0","author":"akukitadvt","date":"2026-05-21 11:28:40"},"1.1.1":{"tag":"1.1.1","author":"akukitadvt","date":"2026-05-21 11:41:39"},"1.1.2":{"tag":"1.1.2","author":"akukitadvt","date":"2026-05-28 07:29:25"},"1.2.0":{"tag":"1.2.0","author":"akukitadvt","date":"2026-06-03 06:38:08"},"1.2.1":{"tag":"1.2.1","author":"akukitadvt","date":"2026-07-31 08:30:16"},"1.5.4":{"tag":"1.5.4","author":"akukitadvt","date":"2026-08-05 07:49:00"}},"upgrade_notice":{"1.5.4":"<p>Major free update. Direct messages, moderation and emoji reactions are now part of the free plugin \u2014 no add-on required, and your existing conversations are preserved. Also fixes message language detection so messages reach everyone properly translated. If you use the Premium add-on, update it to 2.0.0 at the same time.<\/p>","1.3.0":"<p>Emoji reactions are now included free for everyone. If you also use the Akukita Chat Premium add-on, please update it to 1.1.0 at the same time.<\/p>","1.2.1":"<p>Robustness release: fixes phantom guest gate on cached pages, &quot;Cookie check failed&quot; 403 errors, and guest gate failures on sites with strict security plugins (Wordfence, iThemes, aggressive WAFs). Strongly recommended for anyone using guest mode.<\/p>","1.2.0":"<p>Major release: new setup wizard, open chat for guests (no account required), opt-in deactivation feedback. Your existing access settings are preserved \u2014 chat continues to require login until you explicitly enable guests in Settings \u2192 Who can chat.<\/p>","1.1.2":"<p>Fixes real-time message sync for the single-room shortcode. Recommended update for everyone using [akukita_chat_room].<\/p>","1.1.0":"<p>New review prompt that respects your workflow. Safe non-breaking update.<\/p>","1.0.9":"<p>Confirmed compatibility with WordPress 7.0. Recommended update.<\/p>","1.0.8":"<p>Important security review and stability improvements. Recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3525208,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3525208,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3525122,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3525122,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.2.0","1.2.1","1.5.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3634994,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3634994,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3634994,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3634994,"resolution":"4","location":"assets","locale":"","width":1280,"height":720},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3634994,"resolution":"5","location":"assets","locale":"","width":1280,"height":720},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3634994,"resolution":"6","location":"assets","locale":"","width":1280,"height":720},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3634994,"resolution":"7","location":"assets","locale":"","width":1280,"height":720},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3634994,"resolution":"8","location":"assets","locale":"","width":1280,"height":502}},"screenshots":{"1":"Two people, two languages, one conversation. Mario writes in Spanish and reads in Spanish; the translation happens in between so nobody has to switch languages.","2":"The very same conversation seen by Peter, who reads in English. Each participant stays in their own language, and reactions work for everyone.","3":"Direct messages, now part of the free plugin. Private one-to-one conversations with the same automatic translation, a conversation list and unread badges.","4":"Moderation without leaving the chat. Right-click any message to mute, ban or delete \u2014 and it works on guests too, not just registered members.","5":"Guest mode. Visitors join with a display name and a language, no account required. Ideal for public communities and support pages.","6":"The setup wizard that runs on activation: pick a translation engine and get a ready-made chat page. Under a minute from install to working chat.","7":"Settings. MyMemory works with no API key at all; DeepL and OpenAI are optional if you want higher translation quality.","8":"Chat rooms management \u2014 create topic-based rooms and copy the ready-made shortcode for each one."}},"plugin_section":[],"plugin_tags":[5707,273587,2379,99,2333],"plugin_category":[41,48],"plugin_contributors":[262125],"plugin_business_model":[],"class_list":["post-302932","plugin","type-plugin","status-publish","hentry","plugin_tags-chat","plugin_tags-direct-messages","plugin_tags-live-chat","plugin_tags-multilingual","plugin_tags-translation","plugin_category-communication","plugin_category-language-tools","plugin_contributors-akukitadvt","plugin_committers-akukitadvt"],"banners":{"banner":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/banner-772x250.png?rev=3525122","banner_2x":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/banner-1544x500.png?rev=3525122","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/icon-128x128.png?rev=3525208","icon_2x":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/icon-256x256.png?rev=3525208","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-1.png?rev=3634994","caption":"Two people, two languages, one conversation. Mario writes in Spanish and reads in Spanish; the translation happens in between so nobody has to switch languages."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-2.png?rev=3634994","caption":"The very same conversation seen by Peter, who reads in English. Each participant stays in their own language, and reactions work for everyone."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-3.png?rev=3634994","caption":"Direct messages, now part of the free plugin. Private one-to-one conversations with the same automatic translation, a conversation list and unread badges."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-4.png?rev=3634994","caption":"Moderation without leaving the chat. Right-click any message to mute, ban or delete \u2014 and it works on guests too, not just registered members."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-5.png?rev=3634994","caption":"Guest mode. Visitors join with a display name and a language, no account required. Ideal for public communities and support pages."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-6.png?rev=3634994","caption":"The setup wizard that runs on activation: pick a translation engine and get a ready-made chat page. Under a minute from install to working chat."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-7.png?rev=3634994","caption":"Settings. MyMemory works with no API key at all; DeepL and OpenAI are optional if you want higher translation quality."},{"src":"https:\/\/ps.w.org\/akukita-chat-with-ai-translation\/assets\/screenshot-8.png?rev=3634994","caption":"Chat rooms management \u2014 create topic-based rooms and copy the ready-made shortcode for each one."}],"raw_content":"<!--section=description-->\n<p><strong>Turn your WordPress site into a global community.<\/strong><\/p>\n\n<p>Got visitors from different countries who don't share a common language? With Akukita Chat, an English speaker and a Spanish speaker hold a perfectly natural conversation \u2014 each one reads and writes in their own language. The translation happens in between, instantly and invisibly.<\/p>\n\n<p>No API keys, no monthly fees, no configuration. Activate the plugin, answer two questions in the setup wizard, and you have a multilingual chat running in under a minute.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=WN0vmPbaNrQ<\/p>\n\n<h4>What's new: direct messages, moderation and reactions are now free<\/h4>\n\n<p>The 1.5 release moved three of the biggest add-on features into the free plugin. They are not trials or teasers \u2014 they are complete and yours to keep:<\/p>\n\n<ul>\n<li>\u2709\ufe0f <strong>Direct messages<\/strong> \u2014 Private one-to-one conversations with the same automatic translation as the rooms. Conversation list, user search, unread badges and a slide-out sidebar you can open from any page.<\/li>\n<li>\ud83d\udee1 <strong>Moderation<\/strong> \u2014 Ban or temporarily mute anyone, delete messages, straight from the chat with a right-click or from the admin panel. It works on guests too, which is where spam actually comes from.<\/li>\n<li>\ud83d\ude0a <strong>Emoji reactions<\/strong> \u2014 React to any message with \ud83d\udc4d \u2764\ufe0f \ud83d\ude02 \ud83d\ude2e \ud83d\ude22 \ud83d\udd25. Guests included.<\/li>\n<\/ul>\n\n<h4>Everything you get<\/h4>\n\n<ul>\n<li>\ud83c\udf0d <strong>70+ languages, zero configuration<\/strong> \u2014 Works out of the box with the free MyMemory engine. No registration, no credit card, no API key.<\/li>\n<li>\ud83e\uddd9 <strong>Guided setup in 60 seconds<\/strong> \u2014 A wizard runs the moment you activate: pick a translation engine and get a ready-to-use chat page created for you.<\/li>\n<li>\ud83d\udc65 <strong>Open the chat to anyone<\/strong> \u2014 Guest mode lets visitors join with just a display name and a language, no account needed. Spam protection (rate limiting, length limits and a honeypot) is always on.<\/li>\n<li>\ud83d\udcac <strong>Multi-room chat<\/strong> \u2014 As many topic-based rooms as you want, each with its own shortcode.<\/li>\n<li>\u2709\ufe0f <strong>Direct messages<\/strong> \u2014 Private translated conversations between registered users.<\/li>\n<li>\ud83d\udee1 <strong>Moderation<\/strong> \u2014 Ban, mute and delete, for members and guests alike.<\/li>\n<li>\ud83d\ude0a <strong>Emoji reactions<\/strong> \u2014 Lightweight engagement on every message.<\/li>\n<li>\u26a1 <strong>Real-time<\/strong> \u2014 Messages appear as they are sent, with no page reload.<\/li>\n<li>\ud83e\udde0 <strong>3 translation engines<\/strong> \u2014 Free (MyMemory), high quality (DeepL), or state of the art (OpenAI GPT-4o-mini). Switch any time without losing history.<\/li>\n<li>\ud83d\ude80 <strong>Smart caching<\/strong> \u2014 Each phrase is translated once and then served instantly to everyone, which saves your quota and your server.<\/li>\n<li>\ud83d\udcf1 <strong>Looks right on mobile<\/strong> \u2014 Responsive dark-glass interface built for phones as much as desktops.<\/li>\n<li>\ud83c\uddea\ud83c\uddfa <strong>GDPR-ready<\/strong> \u2014 Privacy text generated for you, configurable retention, and nothing leaves your database except the sentence being translated.<\/li>\n<\/ul>\n\n<h4>Perfect for<\/h4>\n\n<ul>\n<li>International communities and forums<\/li>\n<li>Language exchange and learning sites<\/li>\n<li>Multilingual e-commerce stores with WooCommerce<\/li>\n<li>Travel, expat and digital-nomad communities<\/li>\n<li>Online courses with students from multiple countries<\/li>\n<li>SaaS support chats serving customers worldwide<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>The setup wizard opens automatically and asks two quick questions: which translation engine you want and where to place the chat. It then creates a ready-to-use chat page for you.<\/li>\n<li>(Optional) Decide who can chat in <strong>Akukita Chat \u2192 Settings \u2192 Who can chat<\/strong>: only logged-in users (default), anyone with a display name (guest mode), or visitors who first create a WordPress account.<\/li>\n<li>Share the chat URL with your audience. That's it.<\/li>\n<\/ol>\n\n<h4>Shortcodes<\/h4>\n\n<pre><code>[akukita_chat]                     Full chat widget with room sidebar\n[akukita_chat height=\"700\"]        Custom height in pixels\n[akukita_chat_room id=\"1\"]         Embed a specific room\n[akukita_dm]                       Standalone direct-messages page\n<\/code><\/pre>\n\n<h4>Translation Providers<\/h4>\n\n<p>You choose which one to use, and you can switch any time without losing your chat history:<\/p>\n\n<ol>\n<li><strong>MyMemory (default)<\/strong> \u2014 100% free, no API key. 5,000 words\/day per IP, or 50,000\/day if you add your email in Settings.<\/li>\n<li><strong>DeepL Free<\/strong> \u2014 Best European-language quality. 500,000 characters\/month with a free DeepL API key.<\/li>\n<li><strong>OpenAI GPT-4o-mini<\/strong> \u2014 State-of-the-art translation quality including idiomatic and informal language. Requires a paid OpenAI API key. Costs are minimal (~$0.15 per 1M input tokens).<\/li>\n<\/ol>\n\n<p>If the API ever goes down, the original message is shown as-is \u2014 your chat keeps working.<\/p>\n\n<h4>Optional premium add-on<\/h4>\n\n<p>The free plugin above is complete \u2014 you never need to buy anything to run a fully working multilingual chat with rooms, direct messages, moderation and reactions.<\/p>\n\n<p>If you run a business on top of it, the optional add-on at <a href=\"https:\/\/akukita.es\/wordpress-plugins\/akukita-chat-with-ai-translation\/\">akukita.es<\/a> adds:<\/p>\n\n<ul>\n<li>\ud83d\udcce <strong>File attachments<\/strong> \u2014 Share images and files in rooms and DMs<\/li>\n<li>\ud83c\udfa8 <strong>6 themes + custom CSS<\/strong> \u2014 Match the chat to your brand<\/li>\n<li>\ud83d\udcca <strong>Analytics dashboard<\/strong> \u2014 Messages per room, active users, peak hours<\/li>\n<li>\ud83d\udd14 <strong>DM email alerts<\/strong> \u2014 Notify people by email when they get a message<\/li>\n<li>\ud83d\udce4 <strong>History export<\/strong> \u2014 Download a room's history as CSV or JSON<\/li>\n<li>\u26a1 <strong>Priority translation<\/strong> \u2014 Your messages go to the front of the queue<\/li>\n<li>\ud83d\udd17 <strong>Webhooks<\/strong> \u2014 Send chat events to Zapier, Make or Slack<\/li>\n<li>\ud83d\uded2 <strong>WooCommerce rooms<\/strong> \u2014 Unlock a room when a customer buys a product<\/li>\n<li>\ud83c\udff7 <strong>White label<\/strong> \u2014 Remove the \"Powered by\" attribution<\/li>\n<\/ul>\n\n<p>One licence unlocks all of it; the packs differ only in how many sites you may activate on.<\/p>\n\n<h4>Built by Akukita<\/h4>\n\n<p>Akukita is a Spanish software studio focused on building tools that connect people across languages. Mario Sim\u00f3n Melchor leads development. The plugin is actively maintained \u2014 bug reports and feature requests get a response within 48 hours on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/akukita-chat-with-ai-translation\/\">support forum<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Akukita Chat connects to third-party translation APIs to translate chat messages. Each provider is opt-in and configured by you in <strong>Akukita Chat \u2192 Settings<\/strong>. No data is sent unless you enable a provider and a user posts a message.<\/p>\n\n<p><strong>1. MyMemory \/ Translated.net<\/strong> (default \u2014 no API key needed)\nOnly the text of each chat message is sent. No user identifiers, emails or WordPress data are transmitted.<\/p>\n\n<ul>\n<li>Service URL: https:\/\/mymemory.translated.net<\/li>\n<li>Terms of Service: https:\/\/mymemory.translated.net\/terms-and-conditions<\/li>\n<li>Privacy Policy: https:\/\/translated.com\/confidentiality<\/li>\n<\/ul>\n\n<p><strong>2. DeepL API<\/strong> (optional \u2014 requires API key)\nOnly message text is sent.<\/p>\n\n<ul>\n<li>Service URL: https:\/\/www.deepl.com<\/li>\n<li>Terms of Service: https:\/\/www.deepl.com\/pro-license<\/li>\n<li>Privacy Policy: https:\/\/www.deepl.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>3. OpenAI API<\/strong> (optional \u2014 requires API key)\nOnly message text is sent to the GPT model.<\/p>\n\n<ul>\n<li>Service URL: https:\/\/openai.com<\/li>\n<li>Terms of Service: https:\/\/openai.com\/policies\/row-terms-of-use\/<\/li>\n<li>Privacy Policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/li>\n<\/ul>\n\n<p><strong>4. Deactivation feedback<\/strong> (optional \u2014 only when you submit it)\nWhen you deactivate the plugin, an optional form asks why. If \u2014 and only if \u2014 you fill it in and click \"Submit &amp; deactivate\", the reason you select, any comment you type, and a reply email (only if you choose to provide one) are emailed to the plugin developer at akukita.es. Choosing \"Skip &amp; deactivate\" sends nothing. No site URL beyond the standard email signature, and no other site or admin data, is collected.<\/p>\n\n<ul>\n<li>Developer: https:\/\/akukita.es<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>Akukita Chat stores all chat messages in your own WordPress database. The plugin uses <code>wp_add_privacy_policy_content()<\/code> to automatically suggest privacy text for your site's policy page (visible in <strong>Settings \u2192 Privacy<\/strong>). You control the message retention period from the plugin settings.<\/p>\n\n<!--section=installation-->\n<h4>From WordPress.org (recommended)<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin.<\/li>\n<li>Search for <strong>\"Akukita Chat\"<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Akukita Chat \u2192 Settings<\/strong> to configure your provider (the free one works out of the box).<\/li>\n<li>Go to <strong>Akukita Chat \u2192 Rooms<\/strong> to create your first room.<\/li>\n<li>Paste <code>[akukita_chat]<\/code> on any page or post.<\/li>\n<li>Make sure <strong>Settings \u2192 General \u2192 Anyone can register<\/strong> is enabled so visitors can join.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download the ZIP from this page.<\/li>\n<li>Upload it via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate and follow steps 4-7 above.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20really%20need%20zero%20configuration%3F\"><h3>Do I really need zero configuration?<\/h3><\/dt>\n<dd><p>Yes. After activating the plugin, the free MyMemory provider is already selected. You only need to create a room and paste the shortcode. The default 5,000 words\/day quota is enough for small to medium communities.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20the%2050%2C000%20words%2Fday%20free%20quota%3F\"><h3>How do I get the 50,000 words\/day free quota?<\/h3><\/dt>\n<dd><p>In <strong>Akukita Chat \u2192 Settings<\/strong>, enter any email address in the MyMemory field. That's it \u2014 your quota goes from 5,000 to 50,000 words\/day at no cost.<\/p><\/dd>\n<dt id=\"can%20my%20users%20create%20their%20own%20rooms%3F\"><h3>Can my users create their own rooms?<\/h3><\/dt>\n<dd><p>No, by design. Only administrators create and manage rooms from the dashboard, which keeps the conversation structured and stops anyone spinning up junk rooms.<\/p><\/dd>\n<dt id=\"do%20users%20need%20a%20wordpress%20account%3F\"><h3>Do users need a WordPress account?<\/h3><\/dt>\n<dd><p>For the public rooms, no. Turn on guest mode in <strong>Settings \u2192 Who can chat<\/strong> and visitors join with just a display name and a language.<\/p>\n\n<p>Direct messages are the exception: a private conversation is stored against a real account, and a guest identity only lives as long as a browser cookie, so DMs are for registered users. Guests can still use the rooms, react to messages, and be moderated.<\/p><\/dd>\n<dt id=\"is%20the%20caching%20plugin%20on%20my%20site%20going%20to%20break%20the%20chat%3F\"><h3>Is the caching plugin on my site going to break the chat?<\/h3><\/dt>\n<dd><p>No. The chat page carries per-visitor data (who you are, your session token), so the plugin tells page caches not to store it and marks its own scripts as \"do not combine\". WP Rocket, LiteSpeed, W3 Total Cache, WP Super Cache, WP-Optimize, Cache Enabler and Cloudflare are all handled. On top of that the chat asks the server who you are on every load, so even a cache that ignores those signals cannot serve you somebody else's session.<\/p><\/dd>\n<dt id=\"which%20translation%20engine%20should%20i%20choose%3F\"><h3>Which translation engine should I choose?<\/h3><\/dt>\n<dd><p>Start with MyMemory: it is free, needs no API key and is preselected. Bear in mind it is a translation <em>memory<\/em> rather than a pure machine translator, so on short chat phrases its quality is uneven.<\/p>\n\n<p>For a real community, DeepL Free is a big step up and still costs nothing up to 500,000 characters a month. OpenAI GPT-4o-mini handles slang and informal writing best and costs a few cents a month at typical chat volumes.<\/p><\/dd>\n<dt id=\"what%20about%20chat%20history%3F\"><h3>What about chat history?<\/h3><\/dt>\n<dd><p>Messages are stored in your own WordPress database. You decide how many days of history to keep in Settings, and older messages are auto-purged daily. Nothing is ever sent to third parties except the text being translated to your chosen provider.<\/p><\/dd>\n<dt id=\"what%20if%20my%20translation%20provider%20goes%20down%3F\"><h3>What if my translation provider goes down?<\/h3><\/dt>\n<dd><p>The original (untranslated) message is shown. Users still see the conversation, just without translation during the outage. The chat itself keeps working at full speed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20multisite%3F\"><h3>Does it work with Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site in the network has its own rooms, messages and settings.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 7.4 or higher. PHP 8.0 or higher is recommended for better performance.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20wordpress%207.0%3F\"><h3>Is the plugin compatible with WordPress 7.0?<\/h3><\/dt>\n<dd><p>Yes, fully tested and compatible with WordPress 7.0.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Fixed: Sites with an active premium licence still saw the upgrade banner in Settings and the \"\u2b50 Premium\" sales page in the menu. Both were hidden based on whether a single feature \u2014 direct messages \u2014 was licensed, and since direct messages became part of the free plugin that check never matched again. They now key off whether the add-on is active at all.<\/li>\n<li>Changed: The premium feature list no longer advertises direct messages, reactions, moderation or unread notifications, all of which are part of the free plugin.<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Improved: The free MyMemory provider is a translation <em>memory<\/em>, so besides machine translation it returns segments previously contributed by people. On the short conversational text a chat produces those segments are frequently unrelated \u2014 \"i am fine and you?\" could come back as \"i love you\". The plugin now prefers MyMemory's machine-translated result over its human memory matches.<\/li>\n<li>Improved: When MyMemory only offers a weak match, the message is left in its original language instead of being replaced with unrelated text. Untranslated is better than wrong.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Fixed: Messages were often stored under the wrong language, so they were never translated for the people who needed it. The language recorded for a message was the sender's <em>interface<\/em> language \u2014 what they prefer to read \u2014 rather than the language they actually typed in. Since the composer explicitly invites you to write in any language, a Spanish message from someone reading in English was tagged as English and shown untranslated to every English reader. The written language is now detected from the text itself, in both rooms and direct messages.<\/li>\n<li>Fixed: The direct-message sidebar kept using whichever language was active when the page loaded, ignoring later changes to the language selector.<\/li>\n<li>Improved: Language detection results are cached for a day, so the repetitive phrases typical of chat (\"hi\", \"hola\", \"ok\") no longer trigger an API call every time.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed: Choosing \"Send direct message\" on a guest did nothing. A conversation is stored against real user accounts, and guests have no account, so the action can never succeed \u2014 it is no longer offered for guests, or to guests. Previously it appeared to be available and then failed silently.<\/li>\n<li>Improved: Participant names that open a conversation now carry a permanent, subtle dotted underline plus a \ud83d\udcac hint on hover, so it is obvious they can be clicked without having to discover it by accident. On touch screens, where there is no hover, the hint stays visible.<\/li>\n<li>Improved: Clickable names are keyboard-focusable with a visible focus ring.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<p><strong>Direct messages are now free<\/strong><\/p>\n\n<ul>\n<li>Added: Private one-to-one conversations between registered users, translated automatically just like the public rooms \u2014 each person reads and writes in their own language.<\/li>\n<li>Added: Conversation list, user search, unread badges and a slide-out sidebar available from any page with the chat.<\/li>\n<li>Added: New <code>[akukita_dm]<\/code> shortcode for a standalone direct-messages page.<\/li>\n<li>Added: Open a conversation by clicking a participant's name or avatar, or from the message context menu.<\/li>\n<li>Note: Existing conversations are preserved. If this site previously used the premium add-on for direct messages, the tables are reused as-is and nothing is lost.<\/li>\n<li>Note: Direct messages require a user account. Guests can use the public rooms, but a conversation needs a stable identity that outlives a browser cookie.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<p><strong>Moderation is now free<\/strong><\/p>\n\n<ul>\n<li>Added: Moderation panel under <strong>Akukita Chat \u2192 Moderation<\/strong>. Ban participants, mute them for a set time, and see who is currently blocked. Previously part of the premium add-on.<\/li>\n<li>Added: Right-click (or long-press on touch devices) any message to ban, mute or delete straight from the chat.<\/li>\n<li>Added: Moderation now covers guests as well. The premium version could only act on registered accounts, which left open guest chats with no way to stop an abusive visitor \u2014 the most common place spam actually arrives.<\/li>\n<li>Added: Mutes can be lifted before they expire, and expired mutes are cleaned up automatically instead of lingering in the list.<\/li>\n<li>Changed: The premium page now reflects a single premium product; the packs differ only in how many sites a licence covers, not in features.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Fixed: A message you sent did not appear until you sent the next one. The de-duplication guard added in 1.3.1 was rejecting the sender's own local echo, because it runs while the send is in flight and the message is authored by you \u2014 exactly the combination the guard looks for. Local echoes are now exempt from it.<\/li>\n<li>Fixed: Reacting to a message you had just sent did nothing, because its reaction bar still carried the temporary id assigned before the server replied.<\/li>\n<li>Fixed: Reactions added by other people only appeared after reloading the page. The polling loop only requests messages newer than the last one seen, so reactions on messages already on screen were never refreshed. A single bulk request now keeps every visible message in sync on each poll.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed: Reactions could not be saved \u2014 the REST call was built with a double slash in the URL and the server answered \"no route matched\".<\/li>\n<li>Fixed: On an empty room, the very first message was rendered twice for its sender. The polling loop could return the message before the send request resolved, so neither de-duplication check could recognise it yet. The client now ignores its own messages while a send is in flight and removes any leftover duplicate once the real message id is known.<\/li>\n<li>Fixed: A freshly sent message briefly showed a different clock time than the same message after reloading, because the optimistic bubble was timestamped in UTC while the server returns site-local time.<\/li>\n<li>Fixed: Clicking a participant's name did nothing when the premium add-on was not installed. The \"send a direct message\" affordance is now only rendered when direct messages are actually available.<\/li>\n<li>Fixed: The admin screens still advertised message reactions as a premium feature after they became part of the free plugin in 1.3.0.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<p><strong>Message reactions are now free<\/strong><\/p>\n\n<ul>\n<li>Added: Emoji reactions on chat messages (\ud83d\udc4d \u2764\ufe0f \ud83d\ude02 \ud83d\ude2e \ud83d\ude22 \ud83d\udd25). Previously part of the premium add-on, now included in the free plugin for everyone.<\/li>\n<li>Reactions work for guests too, not just registered users.<\/li>\n<li>Reactions are delivered inside the message payload itself, so displaying them costs no extra HTTP requests \u2014 the chat stays just as fast with reactions enabled.<\/li>\n<li>Reactions attached to a message are removed automatically when that message is deleted, and swept completely on uninstall.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<p><strong>Robustness pass for cached &amp; hardened environments<\/strong><\/p>\n\n<ul>\n<li>Added: New <code>\/wp-json\/akch\/v1\/whoami<\/code> REST endpoint that returns the visitor's fresh identity and nonces on every page load. The client-side JavaScript now calls it on boot and uses its values instead of the inline data \u2014 this defeats the whole class of bugs where a page-cache plugin (WP-Optimize, LiteSpeed, WP Rocket, W3 Total Cache, Cache Enabler, Cloudflare) served HTML built for a previous visitor. Symptoms fixed: phantom guest gate for logged-in users, <code>Cookie check failed (403)<\/code> on every REST call, and stale user identities across sessions.<\/li>\n<li>Added: <code>\/wp-json\/akch\/v1\/guest-name<\/code> REST endpoint as the primary path for saving a guest's display name. Some hosting stacks (Wordfence, iThemes Security, restrictive WAFs) block non-logged-in POSTs to <code>admin-ajax.php<\/code> and return an HTML error page. The new REST route is treated as more legitimate by most WAFs.<\/li>\n<li>Added: If the REST route is blocked, the client transparently falls back to <code>admin-ajax.php<\/code>. Both paths share exactly the same validation code server-side.<\/li>\n<li>Added: The chat page now signals \"do not cache \/ do not minify\" to every major cache &amp; optimization plugin in the ecosystem: WP-Optimize (page cache <strong>and<\/strong> its Minify module), LiteSpeed Cache, WP Rocket, Autoptimize, Cache Enabler, and Cloudflare \u2014 plus the standard <code>DONOTCACHEPAGE<\/code> and <code>nocache_headers()<\/code> signals.<\/li>\n<li>Added: The plugin's own <code>&lt;script&gt;<\/code> tags carry <code>data-no-optimize<\/code>, <code>data-no-minify<\/code>, <code>data-no-defer<\/code> and <code>data-cfasync=\"false\"<\/code> so no JS bundler combines chat.js into a shared bundle that would then be cached across visitors.<\/li>\n<li>Improved: When the server responds with HTML instead of JSON (blocked by a security plugin, a login redirect, or a 5xx error page), the guest gate now shows an actionable message: <em>\"The server returned an unexpected response. This is often caused by a security plugin blocking guest requests. Please contact the site owner.\"<\/em><\/li>\n<li>Improved: The <code>account<\/code> access mode now shows a clean, single-CTA modal when user registration is disabled on the site (previously the modal showed an inactive \"Log in\" tab-button that appeared to do nothing).<\/li>\n<li>Improved: More precise error messages surfaced from the server (e.g. <code>Guest chat is not enabled on this site<\/code>) instead of a generic <code>Error<\/code>.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<p><strong>Headline features<\/strong><\/p>\n\n<ul>\n<li>\ud83e\uddd9 <strong>New: Guided setup wizard.<\/strong> Activating the plugin now opens a one-screen wizard that asks for your translation engine and creates a ready-to-use chat page for you \u2014 first-run time is under a minute.<\/li>\n<li>\ud83d\udc65 <strong>New: Open chat for guests, no account required.<\/strong> Switch \"Who can chat\" to <em>Anyone<\/em> in Settings and visitors join the chat by entering just a display name and a language. Per-identity rate limiting, message length limits and a honeypot field protect open chats from spam, always on.<\/li>\n<li>\ud83d\udcac <strong>New: Optional deactivation feedback.<\/strong> When you deactivate the plugin, an opt-in modal asks why. Skip it and nothing is sent. If you submit, only the reason and any text you type leave your site \u2014 no URL, no WP version, no other site data. Helps the plugin keep improving.<\/li>\n<\/ul>\n\n<p><strong>Improvements<\/strong><\/p>\n\n<ul>\n<li>Message moderation: administrators can remove individual messages.<\/li>\n<li>\"Settings\" link added to the row of the Plugins screen.<\/li>\n<li>Clearer labels and an active-mode banner in <strong>Settings \u2192 Who can chat<\/strong>.<\/li>\n<li>The registration \/ login modal now opens the WooCommerce \"My Account\" page automatically when WooCommerce is active. A new <code>akch_login_url<\/code> filter lets you point the button anywhere.<\/li>\n<li>Uninstall now removes every plugin option, transient and user meta entry cleanly, including the new 1.2.0 keys.<\/li>\n<li>Pages that contain the chat shortcode are now marked as uncacheable for WP Rocket, LiteSpeed, W3 Total Cache, WP Super Cache and Cloudflare. Avoids one guest's session being served from cache to a different visitor.<\/li>\n<li>All chat input fields (textarea, language picker, registration inputs) now use a white background with dark text and explicit placeholder colours, for consistent readability across OS themes.<\/li>\n<\/ul>\n\n<p><strong>Bug fixes<\/strong><\/p>\n\n<ul>\n<li>The first message sent in an empty room could appear twice on the sender's screen due to a race between the optimistic render and the polling loop. Fixed with a sender-side ID set and a corrected ordering of state updates.<\/li>\n<li>The \"Log in\" tab in the registration modal did not respond to clicks because the JS bound to an outdated element id. Fixed.<\/li>\n<li>The guest name gate did not initialise on guest-mode pages because the bootstrap only ran for users with positive IDs. It now runs whenever the chat widget is rendered.<\/li>\n<li>Server-side error messages were being swallowed by the front-end API helper. Errors now surface as toasts and, if the server reports a missing name, the name gate reappears automatically with the typed text preserved.<\/li>\n<li>The guest gate now also renders correctly inside themes that aggressively rewrite shortcode output (e.g. Divi), thanks to a fixed-position fallback overlay that attaches directly to <code>&lt;body&gt;<\/code> with a maximum z-index.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed: Messages now sync correctly in real time when using the single-room shortcode [akukita_chat_room].<\/li>\n<li>Improved: Refined plugin tags for better discoverability in the plugin directory.<\/li>\n<li>Improved: New screenshots showcasing live multilingual chat.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Improved: Review prompt now appears after 3 days of use (previously 14) for faster user feedback.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Friendly review prompt in admin (appears after 3 days of use, fully dismissible).<\/li>\n<li>Improved: Better integration with the WordPress.org support workflow \u2014 unhappy users are directed to the support forum instead of leaving rushed reviews.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 7.0.<\/li>\n<li>Improved plugin documentation and on-screen help.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Improved: Database security review and code hardening across the entire plugin.<\/li>\n<li>Improved: Updated all external service links to canonical URLs for stability.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Improved: Plugin scope optimized for the free version. Private rooms moved to the Premium add-on for a cleaner feature split.<\/li>\n<li>Improved: All third-party service documentation links verified and updated.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added: \"Powered by\" badge is now opt-in from Settings (off by default).<\/li>\n<li>Improved: REST API permission checks tightened across all endpoints.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added: Premium upgrade page with feature overview.<\/li>\n<li>Added: Developer hooks (<code>akch_message_created<\/code>, <code>akch_room_created<\/code>, <code>akch_can_post_message<\/code>) for extensions and integrations.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: GDPR-ready privacy policy suggestion.<\/li>\n<li>Improved: Full compliance with WordPress.org coding standards.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Multi-room real-time chat with AI translation.<\/li>\n<li>MyMemory (free), DeepL and OpenAI GPT-4o-mini providers.<\/li>\n<li>70+ languages with automatic detection and caching.<\/li>\n<li>User self-registration from the chat page.<\/li>\n<li>Configurable message history retention.<\/li>\n<li>Responsive dark-glass UI.<\/li>\n<\/ul>","raw_excerpt":"Live chat where every message is auto-translated into each reader&#039;s language. Rooms, DMs, moderation and reactions. 70+ languages, no API key.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302932"}],"author":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/akukitadvt"}],"wp:attachment":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302932"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302932"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302932"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302932"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302932"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}