This page walks through installing the Pitchbar WordPress plugin on a fresh WP site, connecting it to your Pitchbar workspace, and verifying that the widget actually loads on the front end.
Total time: about 3 minutes on a vanilla WordPress + WooCommerce install. The plugin is fully self-contained — no composer install, no build step, no external CDN dependency.
pitchbar-{version}.zip archive — see "Where do I get the zip?" below.Three paths, pick whichever matches your setup:
/admin/integrations/wordpress, clicks Build latest, then Download. The archive lives at storage/app/private/wp-plugin-builds/pitchbar-{version}.zip server-side.php artisan pitchbar:build-wp-plugin writes the zip and prints its path.pitchbar-{version}.zip and click Install Now.The plugin registers itself with no front-end behaviour until step 3 — until you save a workspace URL + token, the widget never renders.
shop.example.com).wp:integration ability.pbar_ + 48 alphanumeric characters. Copy it now — only the SHA-256 hash is persisted, so if you lose the plaintext you have to revoke and reissue.
The same screen also generates a shopper_signing_secret
on token create, which the plugin picks up automatically on its
first handshake (you never have to paste it). See the
REST API reference
for what the secret is used for.
https://app.pitchbar.example) into Pitchbar base URL. Trailing slashes are trimmed automatically.wp_options.post + page. Custom post types and (when WooCommerce is active) product appear as additional checkboxes.
If the widget never appears, check
Troubleshooting
— the most common cause is a theme that omits wp_footer(),
or a caching plugin that's serving a stale HTML snapshot.
Two pieces live in WordPress' wp_options table under
the key pitchbar_settings (plaintext, as WordPress
options aren't encrypted at rest):
wp-config.php secret. Revoke from your Pitchbar workspace anytime to instantly invalidate it.shopper_signing_secret — the per-token plaintext secret Pitchbar uses to HMAC-sign callbacks to your WP site (order lookup, coupon apply, lead push). Captured automatically on the first Test connection.Uninstalling the plugin via the WordPress dashboard deletes both options. Deactivating only leaves them in place so re-activating doesn't lose the connection.
If the plugin is already configured at activation time (a
deactivate → activate cycle on an existing install), a one-off
full sync is scheduled 30 seconds out via
wp_schedule_single_event on the pitchbar_run_full_sync_event
hook. When WooCommerce is active, a second event for products is
scheduled 60 seconds out (so posts finish first). This means
uploading a new plugin version doesn't strand stale content; the
next wp-cron tick refreshes the agent's knowledge base.
Deactivating the plugin clears both scheduled hooks via
wp_clear_scheduled_hook so nothing fires after the
plugin is off.
pitchbar_lead_id + pitchbar_conversation_id in user meta.
The Settings page and all AJAX actions require the
manage_options capability — the same one WordPress
uses for "General Settings". Editors, authors, and contributors
cannot reach it. Multisite super_admins also pass the check.
REST endpoints (/wp-json/pitchbar/v1/*) are public on
purpose (permission_callback => __return_true) and
instead authenticate by HMAC signature on every request. See
REST API reference.
uninstall.php which removes the pitchbar_settings option and the pitchbar_activation_flag flag./settings/api-tokens on Pitchbar so the plaintext that lived in wp_options is dead immediately.Knowledge that the plugin already pushed to Pitchbar stays in the knowledge base — uninstalling the plugin doesn't delete the agent's Sources or Documents. Remove those from the Pitchbar admin if you want a full teardown.