| @@ -4,9 +4,9 @@ | ||
| 4 | 4 | Tags: ai chatbot, chatgpt, woocommerce, customer support, content generation |
| 5 | 5 | Requires at least: 5.3 |
| 6 | 6 | Tested up to: 7.1 |
| 7 | 7 | Requires PHP: 7.4 |
| 8 | -Stable tag: 3.2.25 | |
| 8 | +Stable tag: 3.2.23 | |
| 9 | 9 | License: GPLv2 or later |
| 10 | 10 | License URI: https://www.gnu.org/licenses/gpl-2.0.html |
| 11 | 11 | |
| 12 | 12 | Free AI chatbot and content generation for WordPress. Train ChatGPT, Claude, Gemini or Grok on your content. WooCommerce ready with RAG. |
| @@ -269,28 +269,46 @@ | ||
| 269 | 269 | = Is there a free version of MxChat? = |
| 270 | 270 | |
| 271 | 271 | Yes. MxChat is available for free on the WordPress plugin repository with full AI chatbot functionality. Premium add-ons are available for advanced features such as the Theme Customizer with its AI Theme Generator, and come with priority support. |
| 272 | 272 | |
| 273 | -= Can a license holder turn MxChat Pro off for one of their sites? = | |
| 273 | +== Developer Hooks & Filters == | |
| 274 | 274 | |
| 275 | -Yes. On the Licenses page of their mxchat.ai account, the license holder can turn each site on or off and block new sites from activating the key. A site that is turned off shows its admin a notice and pauses Pro after three days, with settings and knowledge left as they are; turning it back on restores Pro within the hour, or straight away with Check license now on Pro & Extensions. Only the license holder can turn a site back on. Sites on a version older than 3.2.25 do not check in, so turning one off takes effect after it updates. | |
| 275 | +MxChat provides WordPress filter hooks so developers can extend and customize chatbot behavior without modifying core plugin files. [View full documentation with code examples](https://mxchat.ai/mxchat-developer-hooks-filters/). | |
| 276 | 276 | |
| 277 | -== Developer Hooks & Filters == | |
| 277 | += mxchat_before_process_post = | |
| 278 | 278 | |
| 279 | -MxChat has filter hooks for developers who want to extend it without editing plugin files, including mxchat_before_process_post (change a post before it is indexed), mxchat_system_instructions (adjust the system prompt for each reply), mxchat_gemini_safety_settings (Gemini safety thresholds) and mxchat_reference_shortcodes (shortcodes whose referenced content is imported). Every hook is documented with code examples at [mxchat.ai](https://mxchat.ai/mxchat-developer-hooks-filters/). | |
| 279 | +Runs during knowledge base indexing and lets you modify a post's data before MxChat processes it. Use this to include custom field data (e.g. product specifications or ACF fields), strip internal content you don't want the chatbot to learn, or transform posts based on bot ID. Receives the WP_Post object and the bot ID. | |
| 280 | 280 | |
| 281 | -== External services == | |
| 281 | += mxchat_system_instructions = | |
| 282 | 282 | |
| 283 | -To answer chats and generate content, MxChat sends requests with your own API key to the AI provider you choose: the visitor's message, the recent conversation and the matching knowledge-base text. | |
| 283 | +Dynamically modify the system prompt before every AI response. Use this to inject live data such as business hours, inventory status, or user-specific context into the prompt at runtime. Receives the instructions text, bot ID, and session ID. MxChat also supports WordPress shortcodes directly in the system prompt field — any registered shortcodes are automatically expanded before being sent to the AI. | |
| 284 | 284 | |
| 285 | += Added in 3.2.22 = | |
| 286 | + | |
| 287 | +mxchat_client_ip (the visitor address behind a trusted proxy), mxchat_current_datetime_line (the date and time line sent with each message), mxchat_transcript_user_message and mxchat_ai_conversation_history (what humans and the model each see of a transcript), mxchat_chat_toolbar_items with the mxchat:toolbar-ready and mxchat:opened browser events (toolbar buttons from an add-on), mxchat_handoff_card_sections (extra sections on the Telegram and Slack handoff card), and the MxChat_Utils::save_session_message helper for writing to a transcript. Each is documented with examples on the page linked above. | |
| 288 | + | |
| 289 | +## ✅ Get Started with MxChat AI Chatbot Today | |
| 290 | + | |
| 291 | +Installing MxChat for WordPress takes just a few clicks. Get started with our free plan and upgrade anytime to access our complete add-on ecosystem and premium features. | |
| 292 | + | |
| 293 | +## 💰 Pricing | |
| 294 | + | |
| 295 | +Most powerful features are included in the free plan. Upgrade to Pro for the complete add-on ecosystem and advanced capabilities. | |
| 296 | +[View all pricing options](https://mxchat.ai/) | |
| 297 | + | |
| 298 | +== Use of Third-Party Services == | |
| 299 | + | |
| 300 | +This plugin connects to AI service providers to generate responses: | |
| 301 | + | |
| 302 | +**Service Providers:** | |
| 303 | +- [OpenRouter](https://openrouter.ai/) - [Terms](https://openrouter.ai/terms) | [Privacy](https://openrouter.ai/privacy) | |
| 285 | 304 | - [OpenAI](https://openai.com/) - [Terms](https://openai.com/policies/terms-of-use/) | [Privacy](https://openai.com/policies/privacy-policy/) |
| 286 | 305 | - [Anthropic](https://anthropic.com/) - [Terms](https://www.anthropic.com/terms) | [Privacy](https://www.anthropic.com/privacy) |
| 287 | 306 | - [Google](https://ai.google.dev/) - [Terms](https://ai.google.dev/terms) | [Privacy](https://policies.google.com/privacy) |
| 288 | -- [xAI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy) | |
| 307 | +- [X.AI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy) | |
| 289 | 308 | - [DeepSeek](https://deepseek.com/) - [Terms](https://deepseek.com/terms) | [Privacy](https://deepseek.com/privacy) |
| 290 | -- [OpenRouter](https://openrouter.ai/) - [Terms](https://openrouter.ai/terms) | [Privacy](https://openrouter.ai/privacy) | |
| 291 | 309 | |
| 292 | -Pro license management uses mxchat.ai, the plugin's own website, and only on sites where a Pro license key has been entered. Activate License and Deactivate License send the key, the purchase email and the site's domain when the administrator clicks them; the Pro & Extensions page checks whether the domain is linked; and once a day the site asks whether its domain is still switched on, also sending the plugin version. No visitor data or site content is sent, and a network error or outage never changes anything on the site. mxchat.ai - [Terms](https://mxchat.ai/terms-of-service/) | [Privacy](https://mxchat.ai/privacy-policy/) | |
| 310 | +Please ensure compliance with applicable terms and data privacy laws. | |
| 293 | 311 | |
| 294 | 312 | == Screenshots == |
| 295 | 313 | |
| 296 | 314 | 1. **Chat Transcripts Insights** - Review and analyze conversations insights to see engagement rate, peak activity, and user distribution. |
| @@ -303,45 +321,8 @@ | ||
| 303 | 321 | *(Note: Screenshots will be added in future updates)* |
| 304 | 322 | |
| 305 | 323 | == Changelog == |
| 306 | 324 | |
| 307 | -= 3.2.25 - October 10, 2026 = | |
| 308 | -* New: License holders can turn MxChat Pro on or off for each of their sites from the Licenses page of their mxchat.ai account. The site checks once a day, warns its admin and pauses Pro after three days unless it is turned back on. | |
| 309 | -* New: A switch on the Page Cache Compatibility card turns off the automatic page-cache clear that runs when MxChat settings are saved, for large sites that manage their own cache. | |
| 310 | -* New: Re-import affected entries can also refresh entries whose page was edited after it was imported, for sites that keep auto-sync off. | |
| 311 | -* Fixed: Gemini chatbots no longer stop with "The response format was unexpected" when Google's safety filter flags an ordinary answer. The filter now blocks only high-risk content. | |
| 312 | -* Fixed: A visitor message with a web link and a word like "read" or "documentation" is no longer treated as a PDF and answered with a PDF error. | |
| 313 | -* Fixed: MxChat's chat styles no longer change the rest of your site, such as code blocks on your own pages turning black. | |
| 314 | -* Fixed: On a page with an embedded chatbot, the floating bubble of the same bot is no longer added. It opened but could not send messages. | |
| 315 | -* Fixed: Links in the chat widget are correct for a www address at the end of a paragraph and for a web address written in bold. | |
| 316 | -* Fixed: WordPress Content import and auto-sync now include text from synced patterns and WoodMart HTML Blocks. Save or import a page again to update its entry. | |
| 317 | -* Fixed: Saving a product no longer removes its Custom Product Tabs text from the chatbot's knowledge. | |
| 318 | -* Fixed: With a Gemini 3 model, web search and image search use the key words of the visitor's request instead of the whole sentence. | |
| 319 | -* Fixed: The Knowledge list's PDF filter shows PDF pages again, and uploaded files appear by name instead of a View Source link that led nowhere. | |
| 320 | -* Fixed: Opening the Leads tab no longer writes a notice to the debug log when WordPress debugging is on. | |
| 321 | -* Improved: Gemini 2.5 Pro, Flash and Flash-Lite are marked as no longer offered to new Google API users, and the admin is warned by name if Google refuses the selected model. | |
| 322 | -* Improved: A chatbot still set to a retired AI model now uses that model's current replacement on every request. | |
| 323 | -* Improved: The Script Loading card explains that a cache plugin's Delay JavaScript setting must leave MxChat's chat script out, or the chatbot stays hidden until the visitor interacts. | |
| 324 | - | |
| 325 | -= 3.2.24 - October 2, 2026 = | |
| 326 | -* Fixed: A live-agent message Slack refuses (deleted or archived channel, revoked token) now tells the visitor instead of being reported as sent, ends the handoff so the chatbot takes over again, and shows the error on the Slack tab. Slack messages also no longer begin with stray characters. | |
| 327 | -* Fixed: The WordPress personal data export now includes visitors who filled in the pre-chat form without chatting (email, name and consent record). | |
| 328 | -* Fixed: A media file whose knowledge entry was deleted is indexed again the next time it is saved, instead of being skipped as unchanged. | |
| 329 | -* Fixed: View indexed content now works for entries whose address carries encoded characters (non-Latin pages, addresses with spaces) and for manually added Pinecone entries, and shows a long entry in full. | |
| 330 | -* Fixed: Links in chatbot replies now open in Safari on iPhone, iPad and Mac when Open Links in New Tab is on. Safari's pop-up blocker was silently blocking them. | |
| 331 | -* Fixed: The video card for a matching YouTube entry now appears on streamed answers from GPT-5 and GPT-6 models. Before, it needed AI Tools on or streaming off. | |
| 332 | -* Fixed: A chat message containing a document link no longer fails on chatbots embedded with MxChat Anywhere. | |
| 333 | -* Fixed: Answers name an uploaded document or PDF in plain text instead of showing its file name as a link, including files uploaded before this update. | |
| 334 | -* Fixed: A PDF added through PDF Upload keeps its file name. Its pages are listed under the file, answers name the file and page, and uploading the same PDF again replaces its pages instead of adding a second copy. PDFs uploaded earlier are left as they are: upload once more for a clean set, then delete the old pages. | |
| 335 | -* Fixed: On a Pinecone document index, part numbers and codes that start with digits are found again, such as an order number like 5872EF or 4471AB12 for a part printed 4471-AB-12. Entries written earlier keep their old codes: run Migrate again or re-save the entry to refresh them. | |
| 336 | -* Fixed: Sites embedding through a Custom Provider can add knowledge through the REST API without an OpenAI key, and a Pinecone document index is sized from the custom model's real dimension. The Knowledge listing, search, action phrases and import notice follow the custom model too. | |
| 337 | -* New: Document Upload and PDF Upload each have an optional Source URL field. Give the page the file lives on and answers drawn from it link to that page. | |
| 338 | -* New: WooCommerce product tags are included in each product's knowledge-base text, beside its categories. Re-save or re-import a product to pick them up. | |
| 339 | -* New: Re-import affected entries, on the Knowledge screen and as the wp mxchat kb-reimport command. It finds entries that earlier versions stored with currency signs or accents missing, HTML character codes left in, or right-to-left PDF text saved backwards. It shows the list first and changes nothing until you confirm. Uploaded files are not kept on the server, so for those only text direction can be repaired. | |
| 340 | -* Improved: Delete old index now refuses while Multi-Bot bots still use that index, and names them. | |
| 341 | -* Improved: With Multi-Bot on a site that keeps knowledge in the WordPress database, the Knowledge screen now says the content is shared with all bots. Per-bot separation needs Pinecone or an OpenAI Vector Store. | |
| 342 | -* Improved: Admin polish. The warning status pill is styled, the importer's selection counter has its spacing, the Pinecone card's status follows the host you typed, and namespace lists keep a stable order. | |
| 343 | - | |
| 344 | 325 | = 3.2.23 - September 29, 2026 = |
| 345 | 326 | * Fixed: Pressing Enter with an empty message no longer locks the chat input. The box stays usable, and only a real message disables it while the reply is generated. A message made only of spaces or blank lines now counts as empty too, so nothing is sent to the model for it. |
| 346 | 327 | * Improved: Pages imported from a web address or a sitemap now remember their own page title (from the page's title tag or its social-sharing title, with the site name trimmed off). Add-ons that name a source, such as MxChat AI Search's source cards, can show the real title instead of a guess made from the address. |
| 347 | 328 | * Improved: On a Pinecone document index, part numbers typed without their spaces, hyphens or dots now find the right record. R165321320 reaches the records that describe R1653 213 20 or the R1653 family, in any letter case, and an exact match always ranks above a family match. Records copied or added from now on carry the matching tokens; run Migrate again to add them to records copied earlier. |
| @@ -351,8 +332,9 @@ | ||
| 351 | 332 | * Improved: When AI Tools are on, the model is now told how many tool calls it may make for a message, is told how many remain after each round, and is asked for a single call when only one is left. Before, a model could request several lookups at once when only one was allowed, have the rest refused, and answer from partial results. |
| 352 | 333 | * Fixed: Delete old index now checks every namespace of the old vector index, not just the one copied last. It refuses, and names the namespace, while any namespace with records has no finished copy whose count matches. Before, a site with several namespaces (one per bot, or a namespace from an earlier setup) could delete records that were never copied. |
| 353 | 334 | * New: Migrate can copy every namespace of the vector index in one run. When the source index holds records in other namespaces, the Pinecone card offers a Copy every namespace switch beside Migrate. Each namespace is copied into the same-named namespace of the document index, so every bot keeps reading its own; the progress line shows which namespace is being copied and the counts for each, an interrupted copy continues with the right namespace, and a namespace already copied is kept rather than copied again. |
| 354 | 335 | |
| 336 | + | |
| 355 | 337 | = 3.2.22 - September 20, 2026 = |
| 356 | 338 | * New: An opt-in Pinecone Document index with full-text search, so a question carrying a part number, SKU or code finds the record that holds it. Create index for me, Check index and Migrate move an existing index across with no re-embedding, and classic vector indexes are untouched. |
| 357 | 339 | * New: The chatbot knows the current date and time in your site's timezone, so it can tell past events from upcoming ones. The line travels with each message and does not affect prompt caching; {current_date} and {current_datetime} also work as placeholders in the instructions. |
| 358 | 340 | * New: Knowledge base content can be restricted to any role on your site, including custom ones from User Role Editor, Members or a membership plugin. The built-in Subscribers and Above through Administrators Only choices behave exactly as before. |
| @@ -747,16 +729,11 @@ | ||
| 747 | 729 | Older releases are archived in the plugin's full version history on WordPress.org. |
| 748 | 730 | |
| 749 | 731 | == Upgrade Notice == |
| 750 | 732 | |
| 751 | -= 3.2.25 = | |
| 752 | -Fixes Gemini chatbots stopping with "The response format was unexpected" on ordinary answers, chat links and PDF detection, and chat styles changing the rest of your site. License holders can now turn MxChat Pro on or off for each site from their mxchat.ai account. Also adds a page-cache switch and better imports for synced patterns, WoodMart blocks and product tabs. | |
| 753 | - | |
| 754 | -= 3.2.24 = | |
| 755 | -Fixes links in chatbot replies not opening in Safari on iPhone, iPad and Mac, and live-agent messages being reported as sent when Slack refused them. Uploaded documents and PDFs are now named properly in answers, can carry a Source URL, and no longer duplicate when re-uploaded, and part numbers starting with digits work again on a Pinecone document index. Adds Re-import affected entries, which rebuilds knowledge entries that earlier versions stored with missing accents, HTML character codes or reversed right-to-left text. | |
| 756 | - | |
| 757 | 733 | = 3.2.23 = |
| 758 | 734 | Fixes the chat input locking up for good when a visitor pressed Enter on an empty message. On a Pinecone document index, Delete old index now refuses while any namespace is still uncopied, Migrate can copy every namespace in one run and continues where it stopped, part numbers typed without spaces find their records, and Create index for me suggests a free name instead of failing on an existing one. Adds the GPT-6 models (Astra, Sol and Luna) to the model picker, and tells the chatbot its AI Tools call budget so it no longer answers from partial results when only one call is allowed. |
| 735 | + | |
| 759 | 736 | |
| 760 | 737 | = 3.2.22 = |
| 761 | 738 | Adds the current date and time to every chat, knowledge restrictions for custom roles and single pages, media library imports with auto-sync, and an optional Pinecone full-text document index. Also hardens chat links and rate limiting, fixes function calling and underscore rendering, and adds Gemini 3.8 Flash. Now requires WordPress 5.3 and PHP 7.4. |
| 762 | 739 | |