Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/winatecommerce96/fop-wordpress-chat/archive/refs/heads/main.zipFront Office Pilot Chat (WordPress plugin)
Puts your Front Office Pilot AI chat assistant on your WordPress site. Visitors get a chat bubble that answers from your business's own knowledge, around the clock.
You need a Front Office Pilot account. Your site key, the list of website addresses allowed to show the chat, and the download link for this plugin are all on your dashboard's Chat widget page: https://app.frontofficepilot.com/chat-widget
Requires WordPress 6.4+ and PHP 7.4+. Licensed GPLv2 or later (see LICENSE).
Install
- Download
front-office-pilot-chat-<version>.zip(or build it, see below). - In WordPress: Plugins → Add New → Upload Plugin, choose the zip, Install Now, then Activate.
- Go to Settings → Front Office Pilot Chat.
- Paste your site key (from your Front Office Pilot dashboard under Chat widget; it looks like
fop_pk_plus 32 letters and numbers) and click Save Changes. - The page now shows one of two notices:
- "Chat is live on https://your-site." You are done.
- "Add https://your-site in your Front Office Pilot dashboard under Chat widget." Open https://app.frontofficepilot.com/chat-widget, add that exact address, save, and reload the settings page.
To remove the widget, clear the field and save, or deactivate the plugin. Deleting the plugin removes its option (on multisite, from every site).
What it sends
Two external services are involved. Nothing is sent until a site key is saved.
Front Office Pilot (chat.frontofficepilot.com)
-
From visitors' browsers, on every front-end page: the widget script loads from
https://chat.frontofficepilot.com/widget/v1/fop-chat.js, then requests/widget/v1/configwith the site key and the page's origin (the browser'sOriginheader). -
From your WordPress server, only when an administrator opens Settings → Front Office Pilot Chat with a key saved:
GET https://chat.frontofficepilot.com/widget/v1/config?k=<site key> Origin: <your site origin, from home_url()>It has a 3 second timeout, follows no redirects and reads at most 8 KB. The answer only decides which notice is shown.
-
Terms: https://frontofficepilot.com/terms-of-service/. Privacy: https://frontofficepilot.com/privacy-policy/.
Vapi (api.vapi.ai)
- From visitors' browsers only, when a visitor chats: the chat messages they type, the page path (current path
and first path of the visit, at most 100 characters each and blanked if they look like an email address or phone
number) and the Google Analytics cookie IDs
_gaand_ga_<id>when they look like GA cookies. Your server sends nothing to Vapi. - Terms: https://vapi.ai/terms-of-service. Privacy: https://vapi.ai/privacy.
The plugin itself has no tracking or telemetry, stores no other options, and registers no AJAX or REST endpoints.
Troubleshooting
- "That is not a valid site key." The key must be exactly
fop_pk_followed by 32 letters and numbers (case-sensitive). Your previous key is kept. - "Add https://... in your Front Office Pilot dashboard" after you already added it: addresses are exact.
https://example.comandhttps://www.example.comare separate entries; there is no path, no port and no wildcard. Check Settings → General → Site Address (URL) matches what you added. - "The chat widget needs your site on https without a custom port": the site address is
http://or has a port (for examplehttp://localhost:8888). Such addresses cannot be added in the dashboard, so the widget stays hidden there and the plugin skips the status check. - The status check failed (timeout, firewall blocking outbound requests): the page shows the "Add ..." notice. The widget on the front end does not depend on this check; open your site in a browser to confirm.
- No widget and no script tag in the page source: check the key is saved, and that a caching or optimisation
plugin is not stripping or delaying the
fop-chatscript. Clear page caches after saving. - Widget appears twice? It cannot: the widget mounts once per page even if the tag is duplicated.
Development
How it works
The plugin enqueues the hosted script with strategy => async in the footer and adds data-site-key through the
wp_script_attributes filter, so WordPress prints
<script src="https://chat.frontofficepilot.com/widget/v1/fop-chat.js" id="fop-chat-js" async data-wp-strategy="async" data-site-key="fop_pk_..."></script>
on every front-end page. That is the whole plugin: one setting, one script tag, and a status check on its own settings
page. The plugin slug and text domain are front-office-pilot-chat; the GitHub repository is fop-wordpress-chat.
Requires PHP 7.4+ and Composer. No WordPress install is needed: tests/bootstrap.php stubs the WordPress functions the
plugin uses.
composer install
vendor/bin/phpunit
CI (.github/workflows/test.yml) runs the suite on PHP 7.4 and 8.3.
Build the release zip (version read from the front-office-pilot-chat.php header):
bin/build-zip.sh # -> dist/front-office-pilot-chat-<version>.zip
The zip has one top-level front-office-pilot-chat/ folder with front-office-pilot-chat.php, uninstall.php, readme.txt, LICENSE and
includes/ only.