WordPress plugin · WooCommerce · Multisite

Clients point at it.
The ticket knows the site.

Install the plugin. A client clicks Report and points at what broke. The ticket has the element, the failing request, the PHP warning and what WordPress was running.

Your agent reads it over MCP and fixes it, or your team works from the ticket. Built for agencies running many client sites.

Michaela
“We cut our ‘cannot reproduce’ rate by 80%.”
Michaela, QA Engineer, Shed Collective

Or with WP-CLI

$wp plugin install snagrelay --activate

Then paste your project key under Settings → SnagRelay.

  • Free plugin
  • Any theme or builder
  • Clients install nothing
Example. A client clicks Place order on a WooCommerce shop and the cart fails. The picker outlines the button in red because admin-ajax returned 500. SnagRelay sends the button, the request, the PHP warning from checkout-plus and the WordPress snapshot. A coding agent reads the report over MCP, fixes cart.php in the plugin repository, and marks the ticket fixed so the client is emailed.

A client clicks Place order. The cart fails.

flavor.shop/checkout

Checkout

Shipping

Flat rate · €6.00Place order
Total€36.00

Oat soap

€12.00

Linen bag

€18.00

Gutenberg Elementor Bricks Divi WooCommerce Multisite Gutenberg Elementor Bricks Divi WooCommerce Multisite Gutenberg Elementor Bricks Divi WooCommerce Multisite Gutenberg Elementor Bricks Divi WooCommerce Multisite

The gap

The client says “it’s broken.” The log blames the wrong plugin.

You can spend the afternoon disabling plugins. The warning that mattered was on the request they already sent.

Today · what arrives

From the client · by email

“Checkout is broken AGAIN. Customers are calling us.”

Screenshot 2026-10-08.png

  • Which page?
  • Which plugin?
  • PHP log?
  • WP version?
  • Steps?

You

Can you turn on WP_DEBUG and send me the log? And which page were you on?

Then you disable plugins one by one on a live shop.

With SnagRelay · same bug

SITE-18 · “Checkout just spins”

Element
Checkout › “Place order” button
Request
POST admin-ajax.php → 500
PHP
Warning · checkout-plus/cart.php:88
Plugins
27 active · checkout-plus 1.4.0, updated today
Theme
Flavor 2.4.1 · parent 1.8.0
WordPress
6.8 · PHP 8.2 · WooCommerce 9.3

Your agent

checkout-plus was updated today and warns in cart.php:88 on that request. Fixing the plugin, not the theme.

No WP_DEBUG. No plugin roulette.

How it works

Install once. The client points. The ticket knows the site.

  1. 01

    Install the plugin

    From WordPress.org. Paste the project key in Settings → SnagRelay and choose who sees the button. No theme edit. For the WordPress snapshot, also paste the site URL and secret from Developer context into your SnagRelay project.

  2. 02

    The client points at it

    They click Report, then the button or section that broke. No WordPress login, no SnagRelay account.

  3. 03

    The ticket knows the site

    The element, the failing request, the PHP warning, plugins, theme and the WooCommerce cart. Attached.

Any other site, one script tag

What the ticket contains

WordPress-aware on every ticket.

Not “the only plugin that does this.” The report arrives with it attached.

Example · SITE-18

6.8

PHP 8.2 · MySQL 8.0 · multisite

WordPress, PHP, MySQL

Versions, and whether the site is multisite.

Flavor

2.4.1 · parent 1.8.0

Theme

Active theme and parent theme, with versions.

Elementor

3.24

Page builder

Elementor, Bricks or Divi: name and version. Not the clicked element’s id.

Plugins

Active plugins with versions, plus plugins and themes updated recently.

  • checkout-plus1.4.0 · today
  • woocommerce9.3.1
  • + 25 active27 in all

PHP from that request

Warning
plugins/checkout-plus/
cart.php:88

Warnings and fatals, plus notices when WP_DEBUG is on. Paths are relative to wp-content.

WooCommerce, when it is on

Version, currency, cart item count, coupon codes, shipping and payment method ids. No customer name or email.

  • 9.3
  • EUR
  • 2 items
  • SAVE10
  • flat_rate
  • stripe

Where it goes

The report lands where you already fix things.

Inbox

No tracker connected. The report waits in SnagRelay.

A tracker

Jira, Linear, GitHub, GitLab, Trello or Azure DevOps.

Your agent

Cursor, Claude Code or Codex read this ticket over MCP and fix the plugin or theme in your repository. No login to the client’s wp-admin.

When the fix ships, mark_issue_resolved comments on the ticket and can email the client who reported it. The next report on that checkout comes with what fixed it last time.

For agencies

Running client sites? This is built for you.

Not every client is on WordPress? One script tag covers Webflow, Shopify, React, Laravel and static sites. Before the plugin is in, the Chrome extension reports from the site as it is.

  • Clients never sign up

    They click Report on the site you built. No account, no wp-admin login, no seat.

  • One project per site

    Every client site is its own project with its own inbox or tracker. Clients report without a seat or an account.

  • Your brand, not ours

    The Agency plan removes the SnagRelay badge from the widget.

Why trust it

What a QA team saw after switching.

We switched from Usersnap primarily to cut costs, but were also impressed with the quality of the reports and level of detail the platform provides our devs.
Michaela
Michaela
QA Engineer, Shed Collective
We run our own UAT through SnagRelay. Every bug arrives reproducible. Clean releases out.
Igor
Igor
Founder and developer
@igoryussupov
The customisable widget fits perfectly with our brand, and the automatic sync keeps our entire team in the loop. An essential tool for any development team.
Eugene
Eugene
Product Manager, Prospex

FAQ

Before you install it on a client site.

Does the client need an account?
No. They tap Report on the site. No WordPress login and no SnagRelay account.
Can the client point at what broke?
Yes. The plugin loads the same widget as every SnagRelay project. The client clicks the button or section they mean, and the ticket names it. When the click caused a failed request or an error, that element is outlined in red.
Which builders does it work with?
Gutenberg, Elementor, Bricks, Divi and WooCommerce. When Elementor, Bricks or Divi is active, the ticket names that builder and its version.
What is in the snapshot?
WordPress, PHP and MySQL versions, multisite, the theme and parent theme, active plugins with versions, recent plugin and theme updates, PHP warnings from that request, and WooCommerce cart, coupon, shipping and payment method ids when WooCommerce is on. Each group can be switched off in Settings → SnagRelay. Nothing from the snapshot is printed on the public page.
Does it read debug.log?
No. It records PHP warnings and fatals on the request that was reported, and notices too when WP_DEBUG is on. WordPress masks them when it is off.
Will my agent edit the live site?
No. The plugin sends a snapshot with the report. It does not give an agent write access to the site, and it does not give the agent a login to wp-admin.
Does it work on staging or localhost?
The widget and the report work anywhere. The WordPress snapshot is fetched by SnagRelay over the internet, so the site has to be publicly reachable. Local sites and sites behind a firewall or HTTP login send the report without the snapshot.
Do I need Jira?
No. The report can stay in the SnagRelay inbox. A tracker is optional.
Some of our client sites are not WordPress.
One script tag covers Webflow, Shopify, a React or Laravel app, or a static site. Same inbox, same agent. Only the plugin attaches the WordPress snapshot.

Put it on one client site this week.

Install the free plugin