აღწერა
Sohay adds an AI chat widget to your WordPress site that answers visitor questions from the articles you publish. You write articles in the built-in Knowledge Base, and the chatbot looks up the best matches before it replies — so it stays on-topic and uses your real content instead of guessing.
On a WooCommerce store, the chatbot shops with your visitors. It searches your catalog, pulls up a product with its size and colour options, reads live stock and prices, answers shipping, returns, and refund questions from your store’s own pages, and adds, changes, or removes items in the shopper’s cart — without them leaving the conversation. Every cart change comes with an Undo button, and every price and stock status is read from your store rather than invented. On sites without WooCommerce, none of it appears.
Every conversation is saved in a built-in inbox under Sohay Conversations — your team can read, search, filter, assign, and reply from one place.
Why site owners pick Sohay
- Answers from your own content — the chatbot reads the articles you publish in your Knowledge Base. It doesn’t make up product details or invent prices.
- Sells, not just supports — on a WooCommerce store the chatbot searches your catalog, checks stock and prices, and fills the shopper’s cart inside the conversation. Declares HPOS and Cart-Checkout-Blocks compatibility. On sites without WooCommerce the shopping tools stay hidden and everything else works the same.
- No coding to set up — paste an OpenAI or Google Gemini API key, publish a few articles, click “Sync All Articles”. The widget appears on every page.
- A real inbox for your team — every conversation is saved. Search, filter by status, assign one to a teammate, or reply yourself.
- Predictable costs — set a daily token cap and the plugin stops calling your AI provider for the rest of the day once you hit it. A runaway loop or a hostile bot can’t drain your account overnight.
- GDPR-friendly out of the box — conversations are stored on your own site, in your own database. Signed-in visitors’ chats flow through WordPress’s built-in Export / Erase Personal Data tools; anonymous guest chats (which have no email to match on) are erased by deleting them from the Conversations inbox. See Privacy below.
What’s included
- A chat widget that drops into every page (you can hide it on pages you don’t want it on).
- WooCommerce shopping tools (WooCommerce 7.0 or later) — catalog search and browse, product and variant lookup, live stock and prices, shipping/returns/refund answers, and add, change, or remove in the shopper’s cart. Each result renders as a card in the chat rather than a wall of text.
- A Knowledge Base section in the WordPress admin, with a “Sync All Articles” button.
- A Conversations admin where you can read, search, filter, assign, reply, pin, and close chats.
- An AI Settings screen for picking the AI provider and model, writing the welcome message, and setting daily spend caps.
- A Diagnostics screen that shows today’s token usage and the most recent plugin log entries.
- Fast page loads — the chat code only downloads when a visitor actually opens the chat, not on every page view.
- Your API keys are encrypted in the database and never shown in the admin UI after you save them.
You’ll need
- A WordPress site running version 6.6 or later, on PHP 8.1 or later.
- An account and API key with OpenAI or Google (Gemini). You pay that provider directly for the model usage — Sohay does not resell access. A typical small support site stays in single-digit dollars per month. If you use the Knowledge Base, you need an OpenAI key regardless of which provider answers the chat — see External services.
- Optional — WooCommerce 7.0 or later, if you want the shopping tools. Everything else works without it.
External services
Sohay sends data to an AI provider to generate chat answers, and to OpenAI to index and search your Knowledge Base. Without an account and API key for at least one provider, the plugin has no upstream model to call and the chat widget cannot answer questions.
Which service receives your visitors’ messages depends on the provider you select under Sohay AI Settings:
- OpenAI (https://openai.com) — the default.
- Google (Gemini) (https://ai.google.dev) — optional alternative.
Knowledge Base indexing and search always go to OpenAI, whichever provider answers the chat. If you select Google and switch the Knowledge Base on, keep an OpenAI key saved as well; without one the chatbot answers without consulting your articles.
What is sent, and when
- When a visitor sends a chat message — the message text and recent conversation history are forwarded over HTTPS to the selected provider and processed by the model configured under Sohay AI Settings. That is
https://api.openai.com/v1/responsesfor OpenAI, orhttps://generativelanguage.googleapis.com/v1beta/models/*:streamGenerateContentfor Google. - When you publish or update a Knowledge Base article — the title and body are sent in the background to OpenAI Files and Vector Stores (
https://api.openai.com/v1/files,/v1/vector_stores,/v1/vector_stores/*/files) so the chat can retrieve them. The sync runs in the background, not while you click Save. This happens on OpenAI regardless of which provider answers the chat. - When the chatbot looks something up in your Knowledge Base — the visitor’s question is sent to
https://api.openai.com/v1/vector_stores/*/searchto find matching articles, and the matched article text is then sent on to whichever provider is generating the reply. - On a WooCommerce store, when the chatbot uses a shopping tool — the answer it looks up is sent back to the model so it can reply, in the same conversation as the message that prompted it. Depending on the tool, that is: product names, descriptions, prices, sale prices, stock status, categories, tags, option names and values (size, colour), product page and image URLs; the text of the store pages you have set as Terms, Privacy, Refunds and Returns, plus any Knowledge Base articles matched to a shipping, returns or refund question; and the contents of the shopper’s cart — the items in it, their quantities and options, and the cart totals. This happens only on stores running WooCommerce, and only for the tools the chatbot actually calls in that conversation.
What is not sent. The cart data describes the basket, not the shopper: no name, email address, postal address, phone number, or payment details are included. Sohay never sends order history, customer records, or anything from WooCommerce’s checkout to your AI provider, because none of the shopping tools read them.
Where it goes
All requests go over HTTPS to api.openai.com and, if you select Google, generativelanguage.googleapis.com. The plugin does not contact any other external service — no analytics, no telemetry, no third-party fonts or CDN assets, and no phone-home for updates. Updates come from WordPress.org.
How your API keys are handled
The API key you enter for a provider under AI Settings authenticates that provider’s requests. Keys are encrypted at rest (AES-256-GCM) in your WordPress database, masked in the admin UI after the first save, and excluded from the WordPress REST API. A key is only ever sent to the service it belongs to. Saving a key for a provider you have not selected stores it but does not use it — that is what lets you switch back without re-entering it.
Your responsibilities
Before activating the plugin, please review the terms of the provider you select — OpenAI’s Terms of Use and Privacy Policy, and if you use Gemini, Google’s Gemini API Additional Terms of Service and Privacy Policy. Note that Google applies different data-handling terms to free-tier and paid API keys; read the terms for the tier you are on. Because Knowledge Base indexing runs on OpenAI either way, a site with the Knowledge Base switched on shares data with OpenAI even when Gemini answers the chat. Site owners are responsible for obtaining the appropriate legal basis (consent, contract, legitimate interest, etc.) to share visitor messages with these services under GDPR, CCPA, and other applicable privacy regimes in the jurisdictions they operate in. On a WooCommerce store that basis needs to cover the shopping tools too — what a visitor has put in their cart is information about that visitor, even though no name or address is attached to it. If you would rather it never left your site, the shopping tools can be switched off individually in code; see the FAQ below.
Privacy
Conversations and messages are stored in custom database tables on your own site.
For signed-in visitors, the plugin registers WordPress’s personal-data exporter and eraser, so the standard Tools Export Personal Data and Tools Erase Personal Data flows include their Sohay conversations, matched on their account email.
Anonymous (logged-out) visitors’ chats aren’t tied to an email address, so those email-based tools can’t locate them. To erase a specific guest conversation, open it under Sohay Conversations and delete it (available to users with the AI-settings capability); it leaves the inbox immediately and is permanently purged after the retention window — 30 days by default, filterable in code. A visitor can also delete their own chat from the widget, and every soft-delete follows the same purge path.
On a WooCommerce store, the chatbot’s shopping tools read your catalog, your policy pages, and the visitor’s own cart. What they find is sent to your AI provider so the model can answer, and it is also saved with the conversation — that is what lets the product card or cart summary still be there when the visitor scrolls back. So a stored conversation on a WooCommerce store can contain a snapshot of what that visitor had in their cart at the time. It is covered by the same export, erase and retention paths as the rest of the conversation: erasing the chat erases the snapshot with it. No customer name, address, or payment detail is involved — see External services for the exact list.
See the External services section above for what gets sent, and to which service.
ეკრანული სურათები








დაყენება
- From the Plugins Add New screen, search for Sohay and click Install Now, then Activate. A new Sohay menu appears in your WordPress admin sidebar.
- Visit Sohay AI Settings, choose your AI provider, and paste that provider’s API key into its field. (If you don’t have one yet, create an OpenAI key at platform.openai.com or a Gemini key at aistudio.google.com/apikey.) Click Save. Keys are stored encrypted — the field shows a masked placeholder from now on.
- While still on AI Settings, pick the model you want to use, set a daily token cap under Spend protection, and (optionally) write a welcome message that greets visitors when they open the chat.
- Add at least one article under KB Articles Add New. This is the content the chatbot draws from. You can write as many as you like; longer-form support articles work best.
- Visit Sohay KB Settings Dashboard and click Sync All Articles. The sync runs in the background — articles become searchable to the chatbot within a minute or two.
- Visit your site’s front-end. The chat launcher appears in the bottom-right corner. Click it to open the chat and try a question your Knowledge Base can answer.
ხდკ
-
Which AI provider should I pick, and can I switch later?
-
Sohay works with OpenAI or Google (Gemini) — choose one under Sohay AI Settings. OpenAI is the default. You can switch at any time; each provider’s key and model choice are stored separately, so switching back does not mean re-entering anything.
One thing to know before choosing: the Knowledge Base indexes and searches your articles through OpenAI whichever provider answers the chat. If you select Gemini and use the Knowledge Base, keep an OpenAI key saved as well. Without one, the chatbot still replies but stops consulting your articles.
-
Do I need an account with an AI provider?
-
Yes. Sohay is a front-end for someone else’s models — without an API key the plugin has no model to call and the chat cannot answer questions. The provider bills you directly per token; Sohay does not resell access. The Spend protection controls under AI Settings let you cap daily token usage to keep costs predictable.
-
How much will it cost me?
-
Providers charge per token, and the per-token rate depends on the model you pick (the cheaper models cost a fraction of a cent per chat reply). A small support site typically stays in single-digit dollars per month. The Spend protection controls under AI Settings let you cap daily token usage — once the cap is hit, the plugin stops calling the provider for the rest of the day. The Diagnostics page shows today’s usage so you can spot a runaway loop or a hostile bot before it costs you real money.
-
Will the chatbot make things up?
-
The chatbot is grounded in the articles you publish — if it can’t find a matching article, it tells the visitor it doesn’t know instead of inventing an answer. To improve answer quality, publish articles covering the questions you actually get asked, and write a fallback “Contact us” article so the chatbot can route off-topic questions to your human support team.
-
Where can I see what visitors are asking?
-
Sohay Conversations lists every chat — search them, filter by status, assign a chat to a teammate, or reply yourself. Turn on human handoff and you also get views for visitors waiting to talk to a person and for conversations your team has handled. The Diagnostics page shows OpenAI errors if you’re investigating a technical problem.
-
Can a real person take over a chat from the assistant?
-
Yes. Turn on Human handoff under Sohay Settings, and your team can step into any conversation. While someone is handling a chat the assistant stops replying, and the visitor sees that person’s name and picture on the answers rather than the AI marker. Hand it back and the assistant picks up again, with the whole exchange still in front of it.
Visitors can ask for a person with a button above the message box, the assistant can fetch one when it gets stuck, and you can simply jump in — replying to a conversation takes it over.
The setting is off until you switch it on, because handing someone to a person who is not there is worse than not offering it. Set the hours your team actually covers; outside them the widget stops offering, and anyone who asks anyway gets a message you write.
-
How do I know when somebody is waiting to talk to us?
-
Four ways, so you don’t have to sit watching the inbox. A Waiting for a Person view in Sohay Conversations lists them oldest first. The browser tab shows a count, so a background tab still tells you. An email goes out when a request comes in — to addresses you choose, or whoever the conversation is assigned to. And the conversation itself carries a banner with a Take over button.
If nobody picks it up within the time you set (10 minutes by default), the assistant takes the conversation back and tells the visitor honestly that nobody was available, rather than leaving them waiting.
-
Does human handoff slow my site down?
-
Only while it’s switched on, and only for visitors with the chat window actually open — those windows quietly check for new replies. Nothing checks while the chat is closed, while the browser tab is in the background, or after ten quiet minutes.
If your host is tight on resources, that background checking is the thing to weigh. A developer can slow it down without touching the plugin’s code. The full arithmetic is in the handoff documentation in the plugin’s GitHub repository.
-
Will my visitors’ chats be visible to other admins?
-
By default, every WordPress administrator can read every conversation. The plugin ships with five granular capabilities so you can delegate access — for example, give a support agent the ability to read and reply to chats without granting them access to AI Settings. See the developer questions below for an overview, and the capability documentation in the plugin’s GitHub repository for the full matrix with worked role-configuration examples.
-
Does this slow down my site?
-
A tiny launcher (~8 KB) loads on every page. The full chat code only downloads when a visitor actually clicks to open the chat, so most visitors never download it. No third-party scripts, fonts, or trackers are loaded from external CDNs.
-
Why don’t my translation or session-recording plugins see the chat widget?
-
The chat renders inside an isolated container so that your theme’s styling cannot break the chat, and the chat’s styling cannot change your site’s fonts, colours, borders, or spacing. That isolation is deliberate — it is what makes the widget look and behave the same way on every theme.
The trade-off is that other plugins and scripts which scan your pages for content do not look inside that container. In practice:
- Translation plugins (TranslatePress, Weglot, and similar) will not translate the chat’s own wording. This does not affect your visitors’ answers — the chatbot replies in the language the visitor writes in — and Sohay’s own buttons and labels are translated through WordPress’s standard translation files.
- Session-replay and heatmap tools (Hotjar, Clarity, FullStory) record the widget as a blank area.
- Accessibility overlays that restyle a page from the outside will not restyle the chat.
Screen readers and keyboard navigation are unaffected — assistive technology reads the accessibility tree, which the isolation does not hide.
The container is open rather than sealed, so a script that explicitly supports this kind of isolation can still reach the chat’s content. Most third-party scripts do not.
-
What can shoppers do in the chat on a WooCommerce store?
-
On stores running WooCommerce 7.0 or later, a shopper can:
- Search and browse your catalog — “show me waterproof jackets under $100”, “what’s new?”, “what’s on sale?” — results come back as product cards with photo, price, and stock.
- Look at one product in detail, including its options, so they can pick a size or colour without leaving the chat.
- See live stock and prices, read from your store at the moment they ask.
- Ask about shipping, returns, refunds, and payment — answered from your WooCommerce store pages first, then from Knowledge Base articles you’ve tagged “policy” or “faq”.
- Manage their cart — add an item, change a quantity, or remove a line, each with an Undo button.
The chatbot cannot take payment or place an order. When the shopper is ready it hands them to your normal WooCommerce checkout.
-
Does the plugin work without WooCommerce?
-
Yes. The chat widget, Knowledge Base, and Conversations inbox work on any WordPress site — the shopping tools simply never appear. On stores running WooCommerce 7.0 or later they switch on by themselves, with no configuration. The plugin also declares HPOS and Cart-Checkout-Blocks compatibility so stores don’t see an “uncertified plugin” banner.
-
Can I hide the widget on specific pages?
-
Uncheck Show widget under Sohay AI Settings to hide it everywhere. To hide it only on certain pages or post types, see the developer questions below.
-
Can I customize the welcome message and system prompt?
-
Yes. Sohay AI Settings has a Welcome Message field (max 280 characters). Sohay KB Settings Settings has a Custom System Prompt field (max 4000 characters) for the instructions the chatbot follows when it generates answers. The Custom System Prompt field recognises
{site_name}and{current_date}placeholders — they are replaced with your site’s title and today’s date before the prompt is sent to the model. -
Where can visitors read my Knowledge Base?
-
At /knowledge-base/ on your site. The page lists your KB categories as cards with an article count on each, a search box, and the articles filed under each category. Clicking a card opens that category; searching stays inside the Knowledge Base rather than dropping visitors into your site-wide search results.
These pages are public and indexable on purpose — support articles answer the questions people type into search engines, and the chatbot cites the same URLs when it uses an article to answer.
-
Can I change the Knowledge Base URL?
-
Yes. Sohay KB Settings Settings has a URL Base field. Set it to
docs,help,support— whatever suits your site — and the index and every article move together, from/knowledge-base/getting-started/to/docs/getting-started/.Two things worth knowing before you change it. Links to the old addresses stop working, including any a search engine has already indexed, so if the Knowledge Base has been public for a while consider adding redirects. And a base that’s already taken — by one of your pages, by another plugin, or by WordPress itself (
category,author,tag, and so on) — is refused with an explanation rather than accepted; pick another, or move the page that’s using it first.Category pages have their own Category URL Base field just below, defaulting to
kb-category. It has to stay separate from the base above — a value equal to it, or sitting inside it, is refused, because the two would compete for the same URLs.You don’t need to re-save your permalinks afterwards. Sohay rebuilds the URL rules itself.
-
Can I change how the Knowledge Base pages look?
-
They’re deliberately plain, and they inherit your theme’s fonts, colours, and link styling so they don’t look bolted on. If you want to go further, your theme can replace any of it: copy
archive-kb.php,taxonomy-kb-category.php,search-kb.php, or any file fromparts/out of the plugin’stemplates/folder into asohaychat/folder in your theme, and Sohay will use yours instead. Block themes that define their own Knowledge Base template keep it untouched.docs/KB-ARCHIVE.mdin the GitHub repository documents each template and what it receives. -
Where are my API keys stored?
-
Encrypted with AES-256-GCM in your WordPress database. The admin UI shows a masked placeholder once you’ve saved a key, and the values are excluded from the WordPress REST API. Each key is only ever sent to the service it belongs to.
-
What happens to my data if I uninstall Sohay?
-
Uninstalling deletes the plugin’s own database tables (conversations, messages, sync jobs, diagnostic logs), its settings, and the capabilities it added. Your Knowledge Base articles are kept — they’re regular WordPress content, so removing the plugin doesn’t delete them, and they’re still there if you reinstall. If you want them gone too, delete the articles under KB Articles before you uninstall.
-
Does Sohay work on WordPress Multisite?
-
Yes. Each site in the network keeps its own conversations, Knowledge Base, and settings — nothing is shared across the network. Network-activate to enable Sohay everywhere (each site sets itself up on first load) or activate it per-site. Uninstalling from the network removes Sohay’s data from every site.
-
For developers
-
The questions below cover code-level customization. Sohay exposes 57 filters and 15 actions in total; the most-used ones appear here, and the full catalog lives in
docs/HOOKS.mdin the plugin’s GitHub repository, alongsidedocs/CAPABILITIES.mdfor the full capability matrix anddocs/KB-ARCHIVE.mdfor the Knowledge Base templates. -
How do I customize the plugin with code?
-
The most commonly customized filters:
sohaychat_should_render_widget(bool) — per-request gate on the chat widget. Combine withis_singular()/is_product()to scope the widget to specific pages.sohaychat_allowed_openai_models/sohaychat_allowed_google_models(string[]) — allowlist of model slugs the proxy may call for each provider. Restrict to cheaper models to cap spend.sohaychat_default_ai_provider(string) — which provider answers the chat when no choice is saved in the admin.sohaychat_provider_options(array) — provider-specific request settings, such as Gemini’s safety thresholds, thinking budget, or search grounding.sohaychat_help_urlandsohaychat_upgrade_url(string) — override the admin-header “Help” and “Upgrade” links for resellers.sohaychat_admin_conversation_scope— restrict which conversations a non-admin operator can see.sohaychat_tools— the resolved tool list for the request. Remove an entry and the chatbot is never told that tool exists, so it can neither call it nor send its data to your AI provider.
Example — keep the WooCommerce catalog answers but never let the cart leave the site:
add_filter( 'sohaychat_tools', function ( $tools ) { unset( $tools['sohaychat-wc/get-cart'], $tools['sohaychat-wc/update-cart'] ); return $tools; } );The keys are the tool names:
sohaychat-wc/search-catalog,sohaychat-wc/lookup-catalog,sohaychat-wc/get-product,sohaychat-wc/search-shop-policies-and-faqs,sohaychat-wc/get-cart,sohaychat-wc/update-cart, andsohaychat-kb/get-informationfor the Knowledge Base lookup. Returning an empty array disables tool use entirely — the chatbot still replies, just with no way to look anything up.Example — hide the widget everywhere except the WooCommerce shop and product pages:
add_filter( 'sohaychat_should_render_widget', function ( $enabled ) { if ( ! $enabled ) { return false; } return function_exists( 'is_shop' ) && ( is_shop() || is_product() ); } );The constants on
Bengal_Studio\Sohaychat\Sohaychat_Hooksare the recommended form for new code; the legacy literal form continues to work across releases. -
How do I delegate access to non-admin roles?
-
Five granular capabilities let you delegate parts of the plugin to non-admin roles:
sohaychat_manage— AI Settings page, provider selection, API key entry, model selection. Implicitly grants all four other plugin caps.sohaychat_view_conversations— Sohay menu, Dashboard + Conversations submenus (read-only). Non-admin users with this cap are scoped to “assigned to me or unassigned” conversations.sohaychat_reply_conversations— everythingsohaychat_view_conversationsgrants, plus operator reply, assignee changes, pin / unpin, close / reopen. Implicitly grantssohaychat_view_conversations.sohaychat_manage_kb— KB Settings admin page and KB sync routes.sohaychat_view_logs— Diagnostics admin page (read-only). Clearing the log buffer is escalated tosohaychat_managefor forensics integrity.
WordPress’s built-in
manage_optionscapability implicitly grants all five, so administrators keep working unchanged. Use Members, User Role Editor, or WP-CLI (wp cap add <role> sohaychat_view_conversations) to delegate caps to non-admin roles. Seedocs/CAPABILITIES.mdin the GitHub repository for the full matrix, every REST route’s required cap, three worked role-configuration examples, and the conversation-scope filter contract. -
How do I adjust rate limits or the daily OpenAI token budget in code?
-
Three independent limiter filters. The chat-message rate limit (
limitrequests per rollingwindowseconds, per visitor):add_filter( 'sohaychat_rate_limit_options', function ( $opts ) { $opts['limit'] = 60; $opts['window'] = 60; return $opts; } );Behind Cloudflare or another reverse proxy, enable proxy-aware client-IP detection so per-visitor limits key off the real visitor rather than the proxy:
add_filter( 'sohaychat_rate_limit_options', function ( $opts ) { $opts['proxy_support'] = true; return $opts; } );Enable
proxy_supportonly when your site is reachable exclusively through the trusted proxy, and that proxy overwrites theCF-Connecting-IP/X-Real-IP/X-Forwarded-Forheaders on every request. On an origin that’s also reachable directly, a visitor could forge those headers to sidestep per-visitor limits; the site-wide daily token budget still caps total spend.The public
/auth/guest-tokenmint rate limit (separate so token-mint amplification protection can be tuned independently):add_filter( 'sohaychat_auth_rate_limit_options', function ( $opts ) { $opts['limit'] = 5; $opts['window'] = 60; return $opts; } );The daily OpenAI token budget (caps also configurable under AI Settings Spend protection; ceilings reset at UTC midnight; setting either value to 0 disables that particular ceiling):
add_filter( 'sohaychat_usage_tracker_options', function ( $opts ) { $opts['site_cap'] = 5000000; $opts['actor_cap'] = 25000; return $opts; } );The live readout on the Diagnostics page shows today’s usage so you can spot a runaway loop before it 429s real visitors.
-
Can I disable the KB search cache?
-
KB vector-search results are memoized in the
sohaychat_kbobject-cache group for 5 minutes by default. To shorten the window, lengthen it, or disable the cache entirely, use thesohaychat_kb_search_cache_ttlfilter (return 0 to disable):add_filter( 'sohaychat_kb_search_cache_ttl', '__return_zero' );KB sync events flush the cache automatically, so content updates don’t get masked.
-
Why does the streaming response cut off behind my CDN?
-
The plugin sets
Cache-Control: no-cache,X-Accel-Buffering: no, and clears output buffers, but some CDNs still buffer Server-Sent Events. If your CDN supports it, mark the chat REST route as bypassing the cache and disable transformations on the response. -
Where can I see streaming/proxy errors?
-
Sohay Diagnostics shows the last 100 plugin log entries with timestamps and context. Each entry also fires the
sohaychat_log_erroraction for integration with Sentry, Stackdriver, Query Monitor, etc.
მიმოხილვები
There are no reviews for this plugin.
მონაწილეები & დეველოპერები
“Sohay — AI Chatbot for Knowledge Base and WooCommerce” ღია პროგრამული უზრუნველყოფაა. შემდეგმა ადამიანებმა წვილი შეიტანეს მის განვითარებაში.
მონაწილეებიგადათარგმნეთ Sohay — AI Chatbot for Knowledge Base and WooCommerce თქვენს ენაზე.
დაინტერესებული ხართ დეველოპმენტით?
დაათვალიერეთ კოდი, შეამოწმეთ SVN რეპო, ან გამოიწერეთ შექმნის ჟურნალი : RSS.
ცვლილებები
1.3.0
- New — a real person can take over a chat. When the chatbot isn’t enough, one of your team can step into the conversation: the visitor sees that person’s name and picture on the replies, new messages arrive without a page reload, and the chatbot stays quiet until the chat is handed back. Switched off by default — turn it on under Sohay Settings.
- Three ways a handoff starts — a “Talk to a person” button in the chat, the chatbot asking for someone when it can’t resolve a question, and a “Take over” button on the conversation. Replying to a conversation takes it over as well.
- Set the hours your team is around, week by week, in your site’s own timezone, with your own message for visitors who ask outside them. A request nobody answers goes back to the chatbot after a timeout you set, and the visitor waits out a short cooldown before asking again.
- New “Waiting for a Person” and “Handled by a Person” views in Sohay Conversations, each with a count. Waiting lists the longest wait first, so nobody jumps ahead of someone who has waited longer.
- Four ways to notice a waiting visitor — the Waiting view, a count in the browser tab, a banner on the conversation, and an email to addresses you choose (falling back to whoever the chat is assigned to, then the site admin). One email per conversation, and none at all if a colleague has already picked it up.
- New — the Knowledge Base has a real index. It now has a landing page of its own: your categories as cards with an article count on each, a search box, and the articles filed under each category. Category pages and Knowledge Base searches get matching pages. Until now these addresses fell through to whatever your theme does with an archive, which for most themes meant a bare reverse-chronological list of titles.
- New — the Knowledge Base address is yours to choose. Sohay KB Settings Settings has a URL Base field: set it to
docs,help,support, whatever suits. The index and every article move together and the URL rules rebuild themselves, with no need to re-save your permalinks. A base already taken by one of your pages, another plugin, or WordPress itself is refused with an explanation rather than quietly breaking that address. Sites that never touch the setting stay on/knowledge-base/. - Your theme can replace any of the new Knowledge Base pages — copy a template out of the plugin’s
templates/folder into asohaychat/folder in your theme and Sohay uses yours instead. Block themes that already define their own Knowledge Base template keep it untouched. - Changed — Knowledge Base addresses no longer sit under your permalink prefix. On sites whose permalinks start with a fixed prefix such as
/blog/, the Knowledge Base was being served from/blog/knowledge-base/; it now sits at/knowledge-base/. Most sites, which use a prefix-free permalink structure, are unaffected. If the old addresses are linked or already indexed, add redirects for them. - Fixed — replies you type in Sohay Conversations were coming back labelled “AI Draft” with the chatbot’s avatar, so your own message looked like machine output. They now carry your name and picture, on both the admin thread and the visitor’s.
- Fixed — PHP 8.4 was printing a deprecation notice on every request that loaded the chatbot’s tools.
- Fixed — WordPress was printing a “translation loaded too early” notice above every page, front end and admin alike, on sites with debugging switched on.
- Security — the message endpoint no longer takes a staff identity from the visitor’s browser, so a crafted request can’t post a message that renders as coming from a named member of your team, nor fake a “joined the conversation” event. The chat endpoint also drops any instructions a crafted client tries to slip in alongside your own chatbot instructions.
- For developers — eight new hooks for handoff (
sohaychat_handoff_available,sohaychat_handoff_timeout,sohaychat_handoff_poll_intervals,sohaychat_handoff_notify_recipients,sohaychat_handoff_rate_limit_options,sohaychat_handoff_requested,sohaychat_handoff_started,sohaychat_handoff_ended) and four for the Knowledge Base index (sohaychat_kb_slug,sohaychat_kb_category_slug,sohaychat_kb_reserved_slugs,sohaychat_kb_articles_per_section). This release also runs a one-time, automatic database update on upgrade.
1.2.0
- New — pick your AI provider. Choose OpenAI or Google (Gemini) under Sohay AI Settings, paste that provider’s API key, and choose its model. Each provider’s key and model are stored separately, so switching back later doesn’t mean re-entering anything. Existing sites keep using OpenAI, with no migration and no change in how the chatbot behaves.
- Knowledge Base users, please note — indexing and search always run on OpenAI, whichever provider answers the chat. If you select Gemini and use the Knowledge Base, keep an OpenAI key saved as well. Without one the chatbot still replies but stops consulting your articles, and the Knowledge Base lookup now switches itself off cleanly instead of failing partway through an answer.
- Changed — the chat widget now renders in an isolated container, so your theme can no longer change how the chat looks, and the chat can no longer change your site’s fonts, colours, borders, or spacing. The trade-off is that plugins which scan your pages for content — translation plugins, session recorders, and accessibility overlays — no longer see inside the chat. Screen readers and keyboard navigation are unaffected. See the FAQ for the details.
- Fixed — right-to-left languages now get the mirrored layout. Arabic, Hebrew, Persian, and other RTL sites were being served the left-to-right stylesheet in both the chat widget and the Sohay admin screens.
- Changed — the plugin is now listed as “Sohay — AI Chatbot for Knowledge Base and WooCommerce”, so the name says what it does on a store. Nothing under the name moves: your settings, saved conversations, Knowledge Base articles, and the Sohay admin menu are all unchanged, and the update installs over your existing copy with no migration.
- For developers — five new filters for choosing and configuring the service behind the chat:
sohaychat_allowed_ai_providers,sohaychat_default_ai_provider,sohaychat_provider_options,sohaychat_allowed_google_models, andsohaychat_default_google_model.
Older releases are listed in changelog.txt.
