Chat Nasi Pro
Show which teammates are online, capture leads before the chat starts, add Telegram, Messenger, SMS and email buttons, and place your chat box anywhere with a shortcode. This guide covers every setting.
- Version 1.1.0
- Needs free Chat Nasi
- WordPress 5.8+
- PHP 7.2+
- One site per license
Overview
Chat Nasi Pro is an add-on for the free Chat Nasi plugin. It turns a single floating WhatsApp button into a small support desk.
Team availability
Every teammate shows as online or offline from their own weekly hours and timezone. The main button turns grey when nobody can reply.
Your colours
Eleven colours, corner radius, box width and photo shape, with a live preview.
Extra channels
Telegram, Messenger, SMS and email buttons beside WhatsApp.
Pre-chat form
Ask for a name, email, phone or topic, then open WhatsApp.
Leads you keep
Every lead is stored, exportable, and can be sent to Zapier, Make or your CRM.
Shortcodes
Place the chat box or a single button in any page, post, widget or page-builder block.
Multilingual
Agent names, messages and labels are translatable with WPML and Polylang. Agents can be limited to a language.
How it fits with the free plugin
Chat Nasi Pro never edits the free plugin's files. It reads the free plugin's settings and decorates what it prints, so you can update either one on its own.
Stays in Chat Nasi (free)
- WhatsApp number and welcome message
- Team members: name, job title, photo, number, prefilled message
- Business hours and timezone
- Floating button position, size, colour and animation
- Tooltip, visibility rules and click analytics
Added by Chat Nasi Pro
- Per-person availability and status labels
- Colours, shape and panel text
- Telegram, Messenger, SMS and email buttons
- Pre-chat lead form, leads table, email alerts and webhooks
- Shortcodes and WPML / Polylang support
Team members are managed in the free plugin. Pro stores each person's availability separately, keyed by their agent ID, so nothing you set in Pro is lost when you edit an agent.
Requirements & install
Chat Nasi Pro is sold separately and is not distributed on WordPress.org. You install it from the zip file you received.
| Requirement | Details |
|---|---|
| WordPress | 5.8 or newer |
| PHP | 7.2 or newer |
| Free plugin | Chat Nasi, installed and active. Pro has no features of its own without it. |
| License key | One key activates one site at a time. See License. |
| Optional | WPML or Polylang for translated chat text. See Languages. |
Install the plugin
- Install and set up the free Chat Nasi plugin
Activate it, then open Chat Nasi in the admin menu and enter your WhatsApp number. The free plugin's dashboard looks like this:
The free Chat Nasi dashboard. Its tabs are Overview, General, Appearance, Visibility, Business Hours, Agents, Analytics and Advanced. - Upload Chat Nasi Pro
Go to Plugins › Add New › Upload Plugin, choose
chat-nasi-pro.zip, select Install Now, then Activate. You can also upload thechat-nasi-profolder to/wp-content/plugins/and activate it from the Plugins screen. - Open the Pro screen
Go to Chat Nasi › Pro. You can also use the Pro Settings link under the plugin's name on the Plugins screen. Until a license is active, the menu item shows a small ! badge.
- Activate your license
Continue with the next section.
License
A license key unlocks the Pro features on one website at a time.
Activate a key
- Open the License tab
Go to Chat Nasi › Pro › License.
- Paste your key
Keys look like
NASI-XXXX-XXXX-XXXX-XXXX. Select Activate License. - Check the status
A green dot and “License active” confirm it. If activation fails, the message from the license server appears above the form. The most common cause is a key that is already active on another site.
What the status means
| Status | What you see | What to do |
|---|---|---|
| Active | Green dot, masked key, expiry date or “Lifetime license”. | Nothing. Pro features are on. |
| Invalid or expired | The server's message above the key field. | Check the key, renew it, or deactivate it on the other site first. |
| Error | A message that the license server could not be reached, or gave an unexpected reply. | Try again later. Your host may be blocking outgoing requests. |
| Not activated | An empty key field and an admin notice with an “Activate your license” link. | Enter a key. |
How checking works
- Pro re-checks your key once a day in the background. Your visitors never wait for it.
- A refunded or expired key switches Pro features off within 24 hours.
- If the license server is briefly unreachable, Pro keeps the last known status and tries again the next day.
Move to a new domain
Select Deactivate License on the old site first. That frees the slot, and you can activate the same key on the new site. Deactivating the plugin from the Plugins screen also frees the slot.
What happens without an active license
| Area | Behaviour |
|---|---|
| Your site | Status labels, colours, extra channels, the lead form and translations are all off. The free plugin keeps working as normal. |
| Shortcodes | Visitors see nothing. Administrators see a short hint asking them to activate the license. |
| Settings | The Pro tabs are dimmed and Save Pro Settings is disabled. |
| Leads | You can still view and delete leads. CSV export needs an active license. |
Quick start
Five steps from a fresh install to a working team chat.
- Add your team in the free plugin
Open Chat Nasi › Agents, turn on Enable multi-agent panel, and add each person's name, role, photo, WhatsApp number and prefilled message. Select Save Changes.
Team members live in the free plugin's Agents tab. Pro reads this list. - Activate your Pro license
See License.
- Set who is available when
Open Pro › Agents & Availability and choose an availability mode for each person. See Agents & availability.
- Match your brand
Open the Appearance tab, pick colours, and watch the live preview. See Appearance.
- Turn on the extras and save
Enable any extra channels or the pre-chat form on the Channels & Lead Form tab. Select Save Pro Settings, then open your site in a private window to check the result.
One Save Pro Settings button stores every settings tab at once. You do not need to save each tab separately.
Agents & availability
Show visitors who can reply right now. Each teammate appears as online (green) or offline (grey).
Status display
| Setting | What it does |
|---|---|
| Show status | Shows an online or offline indicator on each agent. On by default. |
| Show the text label | Adds the words next to the dot, such as “Online”. On by default. |
| Show when they are back | For offline agents, adds the next opening time, such as “Back Mon 8:00 am”. On by default. |
| Labels | Three text fields: the online label, the offline label, and the “Back” word. Defaults are Online, Offline and Back. All three are translatable. |
| When an agent is offline | Choose Show greyed out, still clickable (default), Show greyed out and not clickable, or Hide them. |
| Panel text | A custom Title and Intro text for the chat panel. The title defaults to the free plugin's button label. |
Hidden agents stay hidden only while someone else is online. If everyone is offline, all agents stay visible so the panel is never empty.
Availability for each person
Every agent from the free plugin gets a card. Choose one of three modes:
| Mode | Behaviour |
|---|---|
| Follow business hours (free plugin) | Uses the weekly hours and timezone from the free plugin's Business Hours tab. If business hours are switched off there, this person is always online. |
| Always online | Shown as online at all times. |
| Custom hours for this person | Their own weekly schedule and timezone. Reveals the Timezone and Weekly hours fields. |
Custom hours
- Timezone: start typing a city, such as
Africa/Nairobi. Leave it empty to use the business-hours timezone. - Weekly hours: tick the days this person works and set a start and end time. New schedules default to Monday to Friday, 08:00 to 17:00, with the weekend off.
- Same-day ranges only. The start must be earlier than the end. A shift that runs past midnight is not supported.
- Boundaries count as open. A person with hours ending at 17:00 still shows online at 17:00 and switches to offline at 17:01.
- Show only in languages: optional. See Languages.
The “Back” label
Pro looks up to a week ahead for the next opening time and words it for the visitor:
| Next opening | Label |
|---|---|
| Later today | Offline · Back 8:00 am |
| Tomorrow | Offline · Back tomorrow 8:00 am |
| Two or more days away | Offline · Back Mon 8:00 am |
Times follow Settings › General › Time format. If the format includes am/pm you get “8:00 am”, otherwise “08:00”. Day names follow your site language.
Floating button when nobody is available
When every agent is offline, the main floating button turns grey (and stops pulsing). With a single number and no agents, the button follows the main number's status. You can change the grey in Appearance.
Try it
This demo uses the same rules as the plugin. Johnson follows the default weekly hours (Monday to Friday, 08:00 to 17:00). Change Sarah's mode, the day and the time to see how the panel and the main button respond.
Simulate a visit
Appearance
Match the chat box to your brand. The defaults already use WhatsApp green.
Colours
Open Pro › Appearance, pick a colour, and check the live preview. Select Reset colours to default to go back to the table below. Only valid hex colours are saved.
| Setting | Default | Where it shows |
|---|---|---|
| Header background | #075E54 | Top bar of the chat panel, shortcode box |
| Header text | #FFFFFF | Panel title and close button |
| Panel background | #FFFFFF | Panel body, shortcode box, lead form card |
| Agent name | #111827 | Agent names and the form heading |
| Job title / secondary text | #6B7280 | Roles, intro text and status text |
| Agent row hover | #F0FDF4 | Highlight when a visitor points at an agent |
| Online colour | #25D366 | Status dot and the ring around online photos |
| Offline colour | #9CA3AF | Status dot of offline agents, offline shortcode button |
| Floating button when everyone is offline | #9CA3AF | The main floating button when nobody is available |
| Shortcode button / form button | #25D366 | Single-button shortcode and the lead form's submit button |
| Button text | #FFFFFF | Text on those buttons |
Shape
| Setting | Range | Default |
|---|---|---|
| Corner radius | 0 to 32 px | 16 px |
| Box width | 240 to 420 px | 300 px |
| Photo shape | Circle, rounded square or square | Circle |
The colour of the main floating button itself, its size, position and animation are set in the free plugin's Appearance tab. Pro styles the panel and the extras around it.
Extra channels
Give visitors a second way to reach you. Each enabled channel adds a small round button next to the WhatsApp button.
Set up a channel
- Open the tab
Pro › Channels & Lead Form
- Tick Enable
Then fill in the field next to it.
- Save
Select Save Pro Settings.
| Channel | What to enter | Opens |
|---|---|---|
| Telegram | Your username without the @. Only letters, numbers and underscores are kept. | t.me/username |
| Messenger | Your Facebook Page username or ID. | m.me/page |
| SMS | A phone number with country code, such as +2547XXXXXXXX. | The visitor's messaging app (sms: link) |
| A valid email address. | The visitor's email app (mailto: link) |
Where the buttons appear
- They sit beside the main floating button on the same side, and never on top of the agent panel. On the right side they line up to the left of the main button. On the left side they line up to its right.
- Their size matches the free plugin's button size (small, medium or large), and they use the same z-index.
- They show only on pages where the free plugin shows its floating button. If a page is excluded by the free plugin's visibility rules, the extras are hidden there too.
- Each channel keeps its own brand colour.
Channel buttons open their app directly. Chat Nasi's click analytics count WhatsApp clicks only.
Pre-chat lead form
Ask for a few details before WhatsApp opens. Every submission is saved as a lead.
What happens on submit
- The visitor clicks a WhatsApp link
The floating button, an agent row, or a shortcode link.
- The form opens
They fill it in and select Start Chat.
- WhatsApp opens at once
The lead is saved in the background, so a slow server never delays the chat.
Settings
Open Pro › Channels & Lead Form › Pre-chat lead capture form.
| Setting | Default | Notes |
|---|---|---|
| Enable form | Off | Turns the form on for every WhatsApp link. |
| Heading & button | Before we chat… and Start Chat | Both are translatable. |
| Name | Required | Untick to hide it. |
| Off | When on, it is required and must be a valid address. | |
| Phone | Off | When on, it is required and needs at least six digits. |
| Topic drop-down | Off | Tick it and list one topic per line, for example Sales, Support, Billing. It shows only when at least one topic is listed. |
| Message | Always shown | Optional free text. |
| Consent | Off | Adds a required checkbox for GDPR. Default text: “I agree to be contacted about my enquiry.” The answer is stored as yes or no. |
What lands in WhatsApp
Pro builds the visitor's first WhatsApp message from the form:
| Visitor typed | WhatsApp message |
|---|---|
| A message | Amina (Sales): I would like a quote |
| No message | The agent's own prefilled message, unchanged |
Spam protection
- A hidden honeypot field catches most bots. Their submissions are quietly discarded.
- Each visitor can send 5 submissions per 10 minutes. After that the server replies “Too many requests”.
- Every request carries a security nonce, and the server repeats the form's checks before saving.
Email & webhooks
Get told about each new lead, or send it straight to the tools you already use.
Email notification
Tick Email me every new lead under Lead delivery. Add an address, or leave it empty to use the site's admin email. Each message has the subject [Your site name] New chat lead and lists the name, email, phone, topic, agent, page and message.
Webhook
Tick Send every lead to Zapier, Make or your CRM as JSON and paste the webhook URL. Pro sends a POST request with a JSON body each time a lead is saved. The request does not wait for a reply, and only public http and https addresses work.
{
"name": "Amina Otieno",
"email": "amina@example.com",
"phone": "+254 700 000 000",
"topic": "Sales",
"message": "I would like a quote",
"page_url": "https://example.com/pricing/",
"agent_id": "agent_1789854149016_0",
"agent_name": "Sarah",
"consent": true,
"site": "https://example.com",
"timestamp": "2026-09-20 10:42:07"
}Verify the signature
Add a signing secret (up to 128 characters) and Pro signs every request. The header is X-Chat-Nasi-Signature and its value is sha256= followed by the HMAC-SHA256 of the raw request body, using your secret as the key. Compare it on your server before trusting the request.
const crypto = require('crypto');
function isValid(rawBody, header, secret) {
const expected = 'sha256=' +
crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(expected);
const b = Buffer.from(header || '');
return a.length === b.length && crypto.timingSafeEqual(a, b);
}$raw = file_get_contents( 'php://input' );
$expected = 'sha256=' . hash_hmac( 'sha256', $raw, $secret );
$given = $_SERVER['HTTP_X_CHAT_NASI_SIGNATURE'] ?? '';
if ( ! hash_equals( $expected, $given ) ) {
http_response_code( 401 );
exit;
}Developers can change the payload with the chnasipro_lead_payload filter. See the Developer reference.
Leads & CSV export
Every form submission is stored in your own WordPress database.
The Leads tab
Open Pro › Leads. Leads are listed newest first, 25 per page.
| Column | Shows |
|---|---|
| Date | When the lead was saved, in your site's time. |
| Contact | Name, with email and phone underneath when given. |
| Topic | The chosen topic, if the drop-down is on. |
| Message | What the visitor typed. |
| Agent | The teammate whose link they clicked. |
| Page | A link to the page the visitor was on. |
- Delete removes one lead after a confirmation.
- Delete all leads permanently removes every lead after a confirmation. This cannot be undone.
Export to CSV
Select Export all (CSV) to download every lead, not just the current page. The file is named chat-nasi-leads-YYYY-MM-DD.csv and has these columns:
Date, Name, Email, Phone, Topic, Message, Agent, Page URL, Consent, Channel- The file starts with a UTF-8 byte-order mark so Excel shows accents correctly.
- Any cell that starts with
=,+,-or@gets a leading apostrophe. This stops a malicious lead from running as a formula when you open the file in Excel or Google Sheets. - Export needs an active license.
What is stored
| Field | Limit |
|---|---|
| Name, email, topic, agent name | 190 characters each |
| Phone | 50 characters; digits, +, -, spaces and brackets only |
| Message | 2,000 characters |
| Page URL | 500 characters |
| Consent | Yes or no |
Shortcodes
Place the chat box or a single button anywhere: a page, a post, a widget or a page-builder block.
Use [chnasi_chat]. The alias [chat_nasi] works the same way. The shortcode uses your agents, hours and colours, and works whether or not the floating button is shown on that page. If the pre-chat form is on, it opens from shortcode links too.
Build a shortcode
Options
All attributes
| Attribute | Default | What it does |
|---|---|---|
layout | box | box shows the list of agents. button shows one button. |
agents | all | Box only. all, or agent IDs separated by commas. |
agent | empty | Button only. One agent ID. Empty uses the main number. |
title | empty | Box heading. Falls back to the Pro panel title, then the free plugin's button label. |
intro | empty | Text under the box heading. Falls back to the Pro intro text. |
label | empty | Button text. Falls back to the free plugin's button label, then “Chat on WhatsApp”. |
phone | empty | Button only. Overrides the WhatsApp number. |
message | empty | Button only. Overrides the prefilled message. |
align | left | left, center or right. |
show_status | Pro setting | no, false, 0 or off hides the status. Anything else shows it. |
class | empty | Extra CSS classes for your own styling. |
Each agent's ID is shown under their name on the Agents & Availability tab, and next to their name on the Shortcode & Languages tab. IDs look like agent_1789854149016_0.
Examples
[chnasi_chat]
[chnasi_chat agents="agent_1789854149016_0,agent_1789854149016_2"]
[chnasi_chat title="Sales team" intro="Pick someone to chat with." align="center"]
[chnasi_chat layout="button" label="Chat now"]
[chnasi_chat layout="button" agent="agent_1789854149016_0" align="right"]
[chnasi_chat layout="button" phone="254700000000" message="Hi, I need a quote"]Use it in a theme file
Call the template helper. It accepts the same arguments as the shortcode.
<?php echo chnasipro_get_chat( array( 'layout' => 'button', 'label' => 'Chat now' ) ); ?>Argument values cannot contain double quotes or square brackets. Pro removes them.
The generator in the dashboard
The Shortcode & Languages tab has a built-in generator with the same options. Choose a layout, tick the agents, pick an alignment, then select Copy.
Good to know
- Visitors see nothing if the license is not active. Administrators see a short hint instead.
- If no agents are set up in the free plugin, the box falls back to the main WhatsApp number.
- Administrators also see a hint when the agent IDs in
agentsmatch nobody, or when a button has no number. - When click tracking is on in the free plugin, clicks on shortcode links are counted in its analytics too.
Languages
Every visitor-facing string, from both plugins, can be translated with WPML or Polylang. No changes to the free plugin are needed.
Translate the chat text
- Save your settings once
Pro registers the strings whenever you save settings, and whenever you open a Chat Nasi or Chat Nasi Pro screen while the license is active.
- Open your translation screen
WPML: WPML › String Translation, domain “Chat Nasi”.
Polylang: Languages › Translations, group “Chat Nasi”. - Translate and save
Visitors now see the text in their own language. The Languages section of the Shortcode & Languages tab shows which plugin was detected and how many strings are registered.
Which strings are translatable
| Source | Strings |
|---|---|
| Free plugin | Welcome message, button label, tooltip text, offline message |
| Each agent | Name, job title, prefilled message |
| Pro status | Online label, offline label, “Back” word |
| Pro panel | Panel title, intro text |
| Pro lead form | Heading, button label, consent text, each topic |
Show an agent in some languages only
On the Agents & Availability tab, fill in Show only in languages with language codes such as en, fr. On any other language the agent is not shown. Leave it empty to show the agent everywhere. A French-speaking agent, for example, can appear only on your French pages.
Pro finds the visitor's language from Polylang first, then WPML, then the first two letters of the site locale.
Other translation plugins
Hook the chnasipro_translate_string filter. It runs for every string on the public site.
add_filter( 'chnasipro_translate_string', function ( $value, $name, $context ) {
// $value Current string. $name is a stable key such as 'pro_online_label'.
// $context Group name, always 'Chat Nasi'.
return my_translation_lookup( $value, $name );
}, 10, 3 );Translate the Pro screens themselves
Chat Nasi Pro's own admin text uses the text domain chat-nasi-pro and loads translations from the plugin's languages folder. To make a template, run this from the plugin folder:
wp i18n make-pot . languages/chat-nasi-pro.potDeveloper reference
For developers who extend, style or debug Chat Nasi Pro.
How Pro plugs into the free plugin
- Pro loads on
plugins_loadedat priority 20, after the free plugin and most other plugins. - It reads the free plugin's options through
CHNASI_Settingsand translates them through theoption_chnasi_settingsfilter, on the public site only. - Its CSS, JS and footer output run at priority 20. Pro knows the floating button is showing when the free plugin's
chnasi-frontendstylesheet is enqueued, so every free display rule is respected. - Its script finds the free plugin's markup through these attributes:
[data-chnasi-root],[data-chnasi-agent-panel],.chnasi-agent-panel-bodyanda[data-chnasi-agent-id]. If you customise the free plugin's markup, keep them. - Availability is computed in the visitor's browser from a config printed by PHP, and refreshed every 60 seconds. That keeps status correct on full-page-cached sites.
Files
chat-nasi-pro/
├─ chat-nasi-pro.php bootstrap, constants, template helper
├─ uninstall.php removes data when the plugin is deleted
├─ admin/
│ ├─ class-chnasipro-admin.php menu, tabs, AJAX save, CSV export, lead deletion
│ └─ views/ page-dashboard.php, partial-hours.php
├─ includes/
│ ├─ class-chnasipro-license.php activation, daily check, deactivation
│ ├─ class-chnasipro-settings.php defaults, sanitising, option storage
│ ├─ class-chnasipro-availability.php schedules, online/offline logic
│ ├─ class-chnasipro-i18n.php WPML / Polylang registration and translation
│ ├─ class-chnasipro-leads-db.php leads table and queries
│ ├─ class-chnasipro-frontend.php CSS tokens, channels, lead form, lead endpoint
│ └─ class-chnasipro-shortcode.php [chnasi_chat] and [chat_nasi]
├─ assets/ css/ (admin-pro, frontend-pro) js/ (admin-pro, frontend-pro)
└─ languages/Hooks and functions
| Name | Type | Purpose |
|---|---|---|
chnasipro_translate_string | Filter | Translate a string. Arguments: $value, $name, $context. |
chnasipro_lead_payload | Filter | Change the webhook JSON. Arguments: $payload, $lead. |
chnasipro_get_chat( $args ) | Function | Returns the chat box or button markup. Same arguments as the shortcode. |
chnasipro_license_daily_check | Cron event | Daily license re-check. Cleared when the plugin is deactivated. |
add_filter( 'chnasipro_lead_payload', function ( $payload, $lead ) {
$payload['source'] = 'website-chat';
return $payload;
}, 10, 2 );AJAX and admin-post actions
| Action | Who can call it | Protection |
|---|---|---|
chnasipro_submit_lead | Any visitor | Nonce chnasipro_public_nonce, honeypot, rate limit, license check |
chnasipro_save_settings | Administrators | Nonce chnasipro_admin_nonce, manage_options, active license |
chnasipro_export_leads_csv | Administrators | Nonce, manage_options, active license |
chnasipro_delete_lead, chnasipro_clear_leads | Administrators | Nonce, manage_options |
chnasipro_activate_license, chnasipro_deactivate_license | Administrators | Nonce, manage_options |
Stored data
| Name | Holds |
|---|---|
chnasipro_settings | All Pro settings, including per-agent availability. Separate from the free plugin's chnasi_settings. |
chnasipro_license_* | Key, status, message, instance ID, expiry and last-checked time. |
chnasipro_leads_db_version | Schema version. The leads table upgrades itself after a plugin update. |
{prefix}chnasipro_leads | The leads table: id, name, email, phone, topic, message, page_url, channel, agent_id, agent_name, consent, created_at. |
Style it yourself
The appearance settings are printed as CSS custom properties on :root. Override them in your theme to go beyond the dashboard.
| Property | Setting |
|---|---|
--chnasipro-header-bg, --chnasipro-header-text | Header background, header text |
--chnasipro-panel-bg, --chnasipro-hover | Panel background, row hover |
--chnasipro-name, --chnasipro-role | Agent name, secondary text |
--chnasipro-online, --chnasipro-offline, --chnasipro-bubble-offline | Status colours, grey main button |
--chnasipro-btn-bg, --chnasipro-btn-text | Shortcode and form button |
--chnasipro-radius, --chnasipro-width, --chnasipro-avatar-radius | Corner radius, box width, photo shape |
Useful classes: .chnasipro-online and .chnasipro-offline on each agent link, .chnasipro-all-offline on the floating button, .chnasipro-box and .chnasipro-inline-btn for shortcodes, and .chnasipro-prechat-modal for the form.
Security
- Every admin action checks a nonce and the
manage_optionscapability. - All input is sanitised field by field before it is saved, and all output is escaped.
- The public lead endpoint has a honeypot, a rate limit and a nonce, and repeats the form's checks on the server.
- CSV export neutralises spreadsheet formulas.
Deactivate versus delete
| Action | Result |
|---|---|
| Deactivate | Your data stays. The daily license check stops and the license slot is released so the key can be used elsewhere. |
| Delete | The leads table, all Pro settings and all license options are removed. This cannot be undone. |
Troubleshooting
Answers to the questions that come up most.
Pro features do not show on my site
Check these in order:
- Is the license active? A ! badge on the Pro menu item means it is not.
- Is the free Chat Nasi plugin active?
- Is the free floating button visible on that page? Extra channels and the form follow the free plugin's device, page and business-hours rules.
- Purge your cache and any minified or combined JavaScript files.
An agent shows the wrong online or offline status
Status is worked out in the timezone set for that agent. If the agent uses Follow business hours, check the timezone on the free plugin's Business Hours tab. If they use Custom hours, check the timezone field on their card. Visitors' own timezones never matter.
An agent is missing from the Pro screen
Agents come from the free plugin. Add the person there and save, then reload the Pro screen. Pro keeps settings only for agents that still exist in the free plugin.
My shortcode shows nothing
Visitors see nothing when the license is inactive. Log in as an administrator to see a hint that names the problem: an inactive license, no matching agents, or no number for a button.
The lead form looks dark or unreadable on my theme
The form's fields inherit their colours from your theme, so a dark theme can make them dark. Give them an explicit background and text colour in your theme's Additional CSS:
.chnasipro-prechat-box form input,
.chnasipro-prechat-box form select,
.chnasipro-prechat-box form textarea {
background: #fff;
color: #111827;
}WhatsApp did not open after the form on an iPhone
Version 1.1.0 fixed this for Safari and iOS. Update to the latest version.
Leads stopped saving but WhatsApp still opens
WhatsApp opens first and the lead is saved in the background. Two causes are common: the visitor hit the limit of 5 submissions per 10 minutes, or a page cache is serving a page whose security nonce has expired. WordPress nonces last about a day, so purge the cache or shorten its lifetime.
My colours do not change
Select Save Pro Settings after picking colours, then purge your cache. Only valid hex colours such as #075E54 are saved.
I am moving to a new domain
Open the License tab on the old site and select Deactivate License. Then activate the same key on the new site.
Activation says the license server could not be reached
Your hosting may block outgoing requests. Ask your host to allow outgoing HTTPS connections from WordPress, then try again.
Changelog
What changed in each release.
1.1.0 Current
New
- Per-agent availability with online and offline status
- Custom colours
- WPML and Polylang support
- The
[chnasi_chat]shortcode - More lead form fields, email notifications and signed webhooks
- Leads paging and deletion
Fixed
- Extras and the form no longer show on pages where the free button is hidden
- WhatsApp opens reliably on Safari and iOS after the lead form
- Channel buttons no longer overlap the agent panel, and the left side is supported
- The leads table now upgrades on plugin update
- CSV export is safe from formula injection
- The daily license check is cleared on deactivation
- The license key is masked in wp-admin
1.0.0
- Initial release.