{"id":375447,"date":"2026-09-30T14:18:18","date_gmt":"2026-09-30T14:18:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shopbouncer\/"},"modified":"2026-09-30T14:18:03","modified_gmt":"2026-09-30T14:18:03","slug":"shopbouncer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/shopbouncer\/","author":23573650,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"ShopBouncer","header_author":"ShopBouncer","header_description":"See which AI agents visit and shop your store, which ones prove who they are, and which are just using a famous agent's name.","assets_banners_color":"131c33","last_updated":"2026-09-30 14:18:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/shopbouncer.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":57,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"karan08","date":"2026-09-30 14:18:03","revision":3721440}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3721440,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3721440,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3721440,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3721440,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3721440,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3721440,"resolution":"1","location":"assets","locale":"","width":1226,"height":1045},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3721440,"resolution":"2","location":"assets","locale":"","width":804,"height":397},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3721440,"resolution":"3","location":"assets","locale":"","width":804,"height":451},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3721440,"resolution":"4","location":"assets","locale":"","width":304,"height":445},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3721440,"resolution":"5","location":"assets","locale":"","width":388,"height":500}},"screenshots":{"1":"The AI Shoppers dashboard: a one-line summary, real vs fake for every AI agent, and sales sent by AI assistants (sample data).","2":"Visits per day split by verdict, and the parts of the store AI agents went to (sample data).","3":"Orders placed by AI agents, with the identity check behind each one (sample data).","4":"The AI agent evidence box on an order (sample data).","5":"The setup check, which tests impostor detection live on your server (sample data)."}},"plugin_section":[],"plugin_tags":[246305,232,22770,216196,286],"plugin_category":[36,45],"plugin_contributors":[283710],"plugin_business_model":[],"class_list":["post-375447","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-agents","plugin_tags-analytics","plugin_tags-bot-detection","plugin_tags-chatgpt","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-karan08","plugin_committers-karan08"],"banners":{"banner":"https:\/\/ps.w.org\/shopbouncer\/assets\/banner-772x250.png?rev=3721440","banner_2x":"https:\/\/ps.w.org\/shopbouncer\/assets\/banner-1544x500.png?rev=3721440","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/shopbouncer\/assets\/icon.svg?rev=3721440","icon":"https:\/\/ps.w.org\/shopbouncer\/assets\/icon.svg?rev=3721440","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shopbouncer\/assets\/screenshot-1.png?rev=3721440","caption":"The AI Shoppers dashboard: a one-line summary, real vs fake for every AI agent, and sales sent by AI assistants (sample data)."},{"src":"https:\/\/ps.w.org\/shopbouncer\/assets\/screenshot-2.png?rev=3721440","caption":"Visits per day split by verdict, and the parts of the store AI agents went to (sample data)."},{"src":"https:\/\/ps.w.org\/shopbouncer\/assets\/screenshot-3.png?rev=3721440","caption":"Orders placed by AI agents, with the identity check behind each one (sample data)."},{"src":"https:\/\/ps.w.org\/shopbouncer\/assets\/screenshot-4.png?rev=3721440","caption":"The AI agent evidence box on an order (sample data)."},{"src":"https:\/\/ps.w.org\/shopbouncer\/assets\/screenshot-5.png?rev=3721440","caption":"The setup check, which tests impostor detection live on your server (sample data)."}],"raw_content":"<!--section=description-->\n<p>ChatGPT, Claude, Perplexity and Meta AI now browse stores and place orders for real customers. Google Analytics can't show you most of that traffic, and anything can call itself \"ChatGPT\".<\/p>\n\n<p>ShopBouncer adds an <strong>AI Shoppers<\/strong> dashboard to WooCommerce (or to Tools on any WordPress site):<\/p>\n\n<ul>\n<li><strong>Which AI agents visit<\/strong>, split into agents shopping for a person and crawlers that index or train.<\/li>\n<li><strong>Verified or not, and by whom.<\/strong> Agents that sign their requests with Web Bot Auth (RFC 9421 HTTP Message Signatures), such as ChatGPT's agent and Google's agent, are checked cryptographically against their operator's published keys, and the dashboard names the operator that signed.<\/li>\n<li><strong>Impostors spotted.<\/strong> OpenAI, Anthropic and Perplexity publish the IP ranges their agents use. A visitor calling itself ChatGPT, Claude or Perplexity from outside those ranges is flagged as an impostor; one from inside them is marked verified by IP. Agents whose operator publishes neither keys nor ranges are marked \"unverified (name only)\".<\/li>\n<li><strong>Sales sent by AI assistants.<\/strong> How much shoppers who clicked through from ChatGPT, Perplexity, Gemini, Claude, Copilot and other assistants spent, read from WooCommerce's own Order Attribution. ShopBouncer adds no tracking of its own.<\/li>\n<li><strong>Where they go<\/strong>: product pages, cart, checkout, customer accounts, APIs.<\/li>\n<li><strong>Orders placed by AI agents<\/strong> and the revenue they bring, with the agent's identity check and signature headers saved on each order as evidence, shown in an \"AI agent evidence\" box on the order screen.<\/li>\n<li><strong>Alerts<\/strong> when impostors visit and when unverified agents reach your checkout.<\/li>\n<li><strong>A setup check<\/strong> that proves everything works on your own server: the official IP lists download, a real and a fake \"ChatGPT\" visit get the right verdicts, and your proxy settings are right.<\/li>\n<li><strong>An optional weekly AI Shopper Report<\/strong> by email, sent by your own site.<\/li>\n<\/ul>\n\n<h4>Privacy by design<\/h4>\n\n<ul>\n<li>No IP addresses or visitor identifiers are stored. An agent's IP is compared with its operator's published ranges in memory; only the outcome is kept.<\/li>\n<li>Human visitors are never recorded.<\/li>\n<li>Visit history is deleted automatically after 90 days (configurable).<\/li>\n<li>No data is sent to ShopBouncer. See \"External services\" below.<\/li>\n<li>The weekly report (off until you enter an address) is sent by your own site with WordPress's mail function.<\/li>\n<\/ul>\n\n<h4>Built to stay out of the way<\/h4>\n\n<p>Human requests cost one string check. Agent visits are written after the page has been sent. The plugin is compatible with WooCommerce High-Performance Order Storage and the Cart and Checkout blocks.<\/p>\n\n<h3>External services<\/h3>\n\n<p>ShopBouncer connects to the services below, and only to them. None of these requests contains any data about your store's visitors, customers or orders. Like any web request, each one reveals your server's IP address and the user agent \"ShopBouncer\/1.1.0 (+https:\/\/shopbouncer.com)\". Everything downloaded is public data, cached on your site, and used only to check whether a visiting AI agent is who it claims to be.<\/p>\n\n<h4>OpenAI<\/h4>\n\n<p>What: the IP address lists OpenAI publishes for its agents (ChatGPT-User, OAI-SearchBot, GPTBot), and the public signing keys of ChatGPT's agent.\nWhy: to check whether a visitor calling itself ChatGPT really came from OpenAI.\nWhat is sent, and when: a plain download request, with no data from your site, to https:\/\/openai.com\/chatgpt-user.json, https:\/\/openai.com\/searchbot.json or https:\/\/openai.com\/gptbot.json when a visitor claiming to be that agent arrives and the cached copy is more than 6 hours old (also when you open the AI Shoppers setup check); and to https:\/\/chatgpt.com\/.well-known\/http-message-signatures-directory when a signed request names chatgpt.com and the cached keys are more than an hour old.\nTerms of use: https:\/\/openai.com\/policies\/row-terms-of-use\/\nPrivacy policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/p>\n\n<h4>Anthropic (claude.com)<\/h4>\n\n<p>What: the IP address list Anthropic publishes for its agents (Claude-User, Claude-SearchBot, ClaudeBot). claude.com is Anthropic's website.\nWhy: to check whether a visitor calling itself Claude really came from Anthropic.\nWhat is sent, and when: a plain download request, with no data from your site, to https:\/\/claude.com\/crawling\/bots.json when a visitor claiming to be one of those agents arrives and the cached copy is more than 6 hours old (also when you open the setup check).\nTerms of service: https:\/\/www.anthropic.com\/legal\/consumer-terms\nPrivacy policy: https:\/\/www.anthropic.com\/legal\/privacy<\/p>\n\n<h4>Perplexity<\/h4>\n\n<p>What: the IP address lists Perplexity publishes for Perplexity-User and PerplexityBot.\nWhy: to check whether a visitor calling itself Perplexity really came from Perplexity.\nWhat is sent, and when: a plain download request, with no data from your site, to https:\/\/www.perplexity.ai\/perplexity-user.json or https:\/\/www.perplexity.ai\/perplexitybot.json when a visitor claiming to be that agent arrives and the cached copy is more than 6 hours old (also when you open the setup check).\nTerms of service: https:\/\/www.perplexity.ai\/hub\/legal\/terms-of-service\nPrivacy policy: https:\/\/www.perplexity.ai\/hub\/legal\/privacy-notice<\/p>\n\n<h4>Google<\/h4>\n\n<p>What: the public signing keys of Google's AI agent (Google-Agent).\nWhy: to verify requests that Google's agent signs with Web Bot Auth.\nWhat is sent, and when: a plain download request, with no data from your site, to https:\/\/agent.bot.goog\/.well-known\/http-message-signatures-directory when a signed request names agent.bot.goog and the cached keys are more than an hour old.\nTerms of service: https:\/\/policies.google.com\/terms\nPrivacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>Links only (no data is sent)<\/h4>\n\n<p>The dashboard links to shopbouncer.com: the free store scanner, the IP checker and the design-partner program. Nothing is sent unless you click a link. Privacy notice: https:\/\/shopbouncer.com\/privacy<\/p>\n\n<p>The optional weekly report is sent by your own site with WordPress's mail function, to the address you enter. It does not go through ShopBouncer or any other service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open <strong>WooCommerce \u2192 AI Shoppers<\/strong> (or <strong>Tools \u2192 AI Shoppers<\/strong> without WooCommerce).<\/li>\n<li>Visits appear as soon as an AI agent loads a page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20block%20anything%3F\"><h3>Does it block anything?<\/h3><\/dt>\n<dd><p>No. This plugin only observes and reports. It never changes what visitors or agents see.<\/p><\/dd>\n<dt id=\"how%20do%20you%20know%20an%20agent%20is%20really%20chatgpt%3F\"><h3>How do you know an agent is really ChatGPT?<\/h3><\/dt>\n<dd><p>An agent is verified in one of two ways. If it signs its request with Web Bot Auth, the signature is checked against the public keys its operator publishes; ShopBouncer only uses the key directories of operators that document them (OpenAI for ChatGPT's agent, Google for Google-Agent), and the dashboard names the operator that signed. If it doesn't sign, its IP address is checked against the ranges its operator publishes: inside means verified by IP, outside means impostor. A user-agent string with nothing to check it against is recorded as \"unverified (name only)\", because anyone can send it.<\/p><\/dd>\n<dt id=\"my%20site%20is%20behind%20cloudflare%20or%20another%20proxy.%20does%20the%20ip%20check%20still%20work%3F\"><h3>My site is behind Cloudflare or another proxy. Does the IP check still work?<\/h3><\/dt>\n<dd><p>Yes, once you tell ShopBouncer where the visitor's IP arrives: open the AI Shoppers page and set \"Visitor IP comes from\" to Cloudflare, X-Forwarded-For or X-Real-IP. The page warns you when it detects a proxy header. Until then, requests from private addresses are left unchecked rather than flagged.<\/p><\/dd>\n<dt id=\"where%20does%20the%20%22sales%20sent%20by%20ai%20assistants%22%20figure%20come%20from%3F\"><h3>Where does the \"sales sent by AI assistants\" figure come from?<\/h3><\/dt>\n<dd><p>From WooCommerce's built-in Order Attribution (WooCommerce 8.5 and later), which already records where each order came from. ShopBouncer counts the paid orders whose source is an AI assistant's website, such as chatgpt.com or perplexity.ai. If Order Attribution is switched off, the dashboard tells you where to turn it on.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20store%20down%3F\"><h3>Does it slow my store down?<\/h3><\/dt>\n<dd><p>No measurable impact for human visitors. Agent visits are recorded after the response is finished.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%3F\"><h3>What happens when I uninstall?<\/h3><\/dt>\n<dd><p>The visit table and settings are deleted. Evidence saved on agent orders stays on those orders, because it is part of the order record.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: sales sent by AI assistants (ChatGPT, Perplexity, Gemini, Claude, Copilot and more), from WooCommerce Order Attribution.<\/li>\n<li>New: redesigned dashboard: a one-line summary, a real-vs-fake bar for every agent, and daily visits split by verdict.<\/li>\n<li>New: setup check that tests impostor detection live on your server.<\/li>\n<li>New: optional weekly AI Shopper Report email.<\/li>\n<li>Improved: IP lists are accepted only when complete, so a partly downloaded list can never create false impostors.<\/li>\n<li>Improved: signatures are checked only against documented key directories (OpenAI for ChatGPT's agent, Google for Google-Agent). Keys are matched by thumbprint or key id, and expired keys are ignored.<\/li>\n<li>Improved: all request data is sanitized with WordPress functions and then validated.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release: AI Shoppers dashboard, Web Bot Auth signature verification, impostor detection against operators' published IP ranges, agent order tagging with an evidence box on each agent order.<\/li>\n<\/ul>","raw_excerpt":"AI shopper analytics for WooCommerce: see which AI agents visit and buy, which prove who they are, and which only borrow a famous name.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375447"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/karan08"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375447"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375447"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375447"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375447"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375447"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}