Chat Nasi Prov1.1.0

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.

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
Good to know

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.

RequirementDetails
WordPress5.8 or newer
PHP7.2 or newer
Free pluginChat Nasi, installed and active. Pro has no features of its own without it.
License keyOne key activates one site at a time. See License.
OptionalWPML or Polylang for translated chat text. See Languages.

Install the plugin

  1. 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 with click counters, a clicks chart and a quick setup checklist
    The free Chat Nasi dashboard. Its tabs are Overview, General, Appearance, Visibility, Business Hours, Agents, Analytics and Advanced.
  2. 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 the chat-nasi-pro folder to /wp-content/plugins/ and activate it from the Plugins screen.

  3. 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.

  4. Activate your license

    Continue with the next section.

If the free plugin is missing, WordPress shows an error notice saying Chat Nasi Pro requires the free plugin. Pro then appears as its own top-level menu instead of a submenu, and nothing changes on your site until the free plugin is active.

License

A license key unlocks the Pro features on one website at a time.

The License tab showing an active lifetime license with a masked key and a Deactivate License button
The License tab after activation. The key is masked, and lifetime licenses show “no expiry”.

Activate a key

  1. Open the License tab

    Go to Chat Nasi Pro License.

  2. Paste your key

    Keys look like NASI-XXXX-XXXX-XXXX-XXXX. Select Activate License.

  3. 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

StatusWhat you seeWhat to do
ActiveGreen dot, masked key, expiry date or “Lifetime license”.Nothing. Pro features are on.
Invalid or expiredThe server's message above the key field.Check the key, renew it, or deactivate it on the other site first.
ErrorA 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 activatedAn 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

AreaBehaviour
Your siteStatus labels, colours, extra channels, the lead form and translations are all off. The free plugin keeps working as normal.
ShortcodesVisitors see nothing. Administrators see a short hint asking them to activate the license.
SettingsThe Pro tabs are dimmed and Save Pro Settings is disabled.
LeadsYou 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.

  1. 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.

    The free plugin's Agents tab with three team members and their WhatsApp numbers
    Team members live in the free plugin's Agents tab. Pro reads this list.
  2. Activate your Pro license

    See License.

  3. Set who is available when

    Open Pro Agents & Availability and choose an availability mode for each person. See Agents & availability.

  4. Match your brand

    Open the Appearance tab, pick colours, and watch the live preview. See Appearance.

  5. 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.

Tip

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

The Team availability card with one panel per agent, availability mode, timezone and weekly hours
Agents & Availability tab. Each agent has an availability mode, an optional timezone and weekly hours, and an optional language filter.

Status display

SettingWhat it does
Show statusShows an online or offline indicator on each agent. On by default.
Show the text labelAdds the words next to the dot, such as “Online”. On by default.
Show when they are backFor offline agents, adds the next opening time, such as “Back Mon 8:00 am”. On by default.
LabelsThree 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 offlineChoose Show greyed out, still clickable (default), Show greyed out and not clickable, or Hide them.
Panel textA custom Title and Intro text for the chat panel. The title defaults to the free plugin's button label.
Hide them

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:

ModeBehaviour
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 onlineShown as online at all times.
Custom hours for this personTheir 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 openingLabel
Later todayOffline · Back 8:00 am
TomorrowOffline · Back tomorrow 8:00 am
Two or more days awayOffline · 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

Sarah's availability

Appearance

Match the chat box to your brand. The defaults already use WhatsApp green.

The Appearance tab with colour pickers, shape settings and a live preview of the chat box
Appearance tab. The live preview on the right updates as you change a colour or a shape setting.

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.

SettingDefaultWhere it shows
Header background#075E54Top bar of the chat panel, shortcode box
Header text#FFFFFFPanel title and close button
Panel background#FFFFFFPanel body, shortcode box, lead form card
Agent name#111827Agent names and the form heading
Job title / secondary text#6B7280Roles, intro text and status text
Agent row hover#F0FDF4Highlight when a visitor points at an agent
Online colour#25D366Status dot and the ring around online photos
Offline colour#9CA3AFStatus dot of offline agents, offline shortcode button
Floating button when everyone is offline#9CA3AFThe main floating button when nobody is available
Shortcode button / form button#25D366Single-button shortcode and the lead form's submit button
Button text#FFFFFFText on those buttons

Shape

SettingRangeDefault
Corner radius0 to 32 px16 px
Box width240 to 420 px300 px
Photo shapeCircle, rounded square or squareCircle
Tip

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.

The chat panel on a website with three agents, and a row of WhatsApp, Telegram, Messenger, SMS and email buttons below it
The chat panel with all four extra channels enabled.

Set up a channel

  1. Open the tab

    Pro Channels & Lead Form

  2. Tick Enable

    Then fill in the field next to it.

  3. Save

    Select Save Pro Settings.

ChannelWhat to enterOpens
TelegramYour username without the @. Only letters, numbers and underscores are kept.t.me/username
MessengerYour Facebook Page username or ID.m.me/page
SMSA phone number with country code, such as +2547XXXXXXXX.The visitor's messaging app (sms: link)
EmailA 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.
Analytics

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.

The Before we chat form with name, email, phone and message fields and a green Start Chat button
The form a visitor sees. It uses your panel and button colours.

What happens on submit

  1. The visitor clicks a WhatsApp link

    The floating button, an agent row, or a shortcode link.

  2. The form opens

    They fill it in and select Start Chat.

  3. 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.

SettingDefaultNotes
Enable formOffTurns the form on for every WhatsApp link.
Heading & buttonBefore we chat… and Start ChatBoth are translatable.
NameRequiredUntick to hide it.
EmailOffWhen on, it is required and must be a valid address.
PhoneOffWhen on, it is required and needs at least six digits.
Topic drop-downOffTick it and list one topic per line, for example Sales, Support, Billing. It shows only when at least one topic is listed.
MessageAlways shownOptional free text.
ConsentOffAdds 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 typedWhatsApp message
A messageAmina (Sales): I would like a quote
No messageThe 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.
Privacy: leads contain personal data. If you ask for consent, the answer is stored with each lead. You can delete a single lead or all leads at any time under Leads.

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.

Example payload
{
  "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.

Node.js
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);
}
PHP
$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.

ColumnShows
DateWhen the lead was saved, in your site's time.
ContactName, with email and phone underneath when given.
TopicThe chosen topic, if the drop-down is on.
MessageWhat the visitor typed.
AgentThe teammate whose link they clicked.
PageA 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:

CSV 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

FieldLimit
Name, email, topic, agent name190 characters each
Phone50 characters; digits, +, -, spaces and brackets only
Message2,000 characters
Page URL500 characters
ConsentYes 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

Layout
Alignment
Your shortcode
[chnasi_chat]

All attributes

AttributeDefaultWhat it does
layoutboxbox shows the list of agents. button shows one button.
agentsallBox only. all, or agent IDs separated by commas.
agentemptyButton only. One agent ID. Empty uses the main number.
titleemptyBox heading. Falls back to the Pro panel title, then the free plugin's button label.
introemptyText under the box heading. Falls back to the Pro intro text.
labelemptyButton text. Falls back to the free plugin's button label, then “Chat on WhatsApp”.
phoneemptyButton only. Overrides the WhatsApp number.
messageemptyButton only. Overrides the prefilled message.
alignleftleft, center or right.
show_statusPro settingno, false, 0 or off hides the status. Anything else shows it.
classemptyExtra CSS classes for your own styling.
Where do I find agent IDs?

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

Shortcodes
[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
<?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.

The Shortcode and Languages tab with layout, agents and alignment options, a generated shortcode and a Copy button
Shortcode & Languages tab. Leave every agent unticked to include all of them.

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 agents match 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

  1. 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.

  2. Open your translation screen

    WPML: WPML String Translation, domain “Chat Nasi”.
    Polylang: Languages Translations, group “Chat Nasi”.

  3. 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.

Your originals are safe. Translations are swapped in on the public site only. In wp-admin you always see and edit the original text, so a translation can never be saved over it.

Which strings are translatable

SourceStrings
Free pluginWelcome message, button label, tooltip text, offline message
Each agentName, job title, prefilled message
Pro statusOnline label, offline label, “Back” word
Pro panelPanel title, intro text
Pro lead formHeading, 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.

PHP
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-CLI
wp i18n make-pot . languages/chat-nasi-pro.pot

Developer reference

For developers who extend, style or debug Chat Nasi Pro.

How Pro plugs into the free plugin

  • Pro loads on plugins_loaded at priority 20, after the free plugin and most other plugins.
  • It reads the free plugin's options through CHNASI_Settings and translates them through the option_chnasi_settings filter, 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-frontend stylesheet 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-body and a[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

Plugin structure
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

NameTypePurpose
chnasipro_translate_stringFilterTranslate a string. Arguments: $value, $name, $context.
chnasipro_lead_payloadFilterChange the webhook JSON. Arguments: $payload, $lead.
chnasipro_get_chat( $args )FunctionReturns the chat box or button markup. Same arguments as the shortcode.
chnasipro_license_daily_checkCron eventDaily license re-check. Cleared when the plugin is deactivated.
Add a field to the webhook
add_filter( 'chnasipro_lead_payload', function ( $payload, $lead ) {
    $payload['source'] = 'website-chat';
    return $payload;
}, 10, 2 );

AJAX and admin-post actions

ActionWho can call itProtection
chnasipro_submit_leadAny visitorNonce chnasipro_public_nonce, honeypot, rate limit, license check
chnasipro_save_settingsAdministratorsNonce chnasipro_admin_nonce, manage_options, active license
chnasipro_export_leads_csvAdministratorsNonce, manage_options, active license
chnasipro_delete_lead, chnasipro_clear_leadsAdministratorsNonce, manage_options
chnasipro_activate_license, chnasipro_deactivate_licenseAdministratorsNonce, manage_options

Stored data

NameHolds
chnasipro_settingsAll 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_versionSchema version. The leads table upgrades itself after a plugin update.
{prefix}chnasipro_leadsThe 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.

PropertySetting
--chnasipro-header-bg, --chnasipro-header-textHeader background, header text
--chnasipro-panel-bg, --chnasipro-hoverPanel background, row hover
--chnasipro-name, --chnasipro-roleAgent name, secondary text
--chnasipro-online, --chnasipro-offline, --chnasipro-bubble-offlineStatus colours, grey main button
--chnasipro-btn-bg, --chnasipro-btn-textShortcode and form button
--chnasipro-radius, --chnasipro-width, --chnasipro-avatar-radiusCorner 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_options capability.
  • 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

ActionResult
DeactivateYour data stays. The daily license check stops and the license slot is released so the key can be used elsewhere.
DeleteThe 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:

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.