Automate client feedback with our MCP serverLearn more!
WordPress problems are easier to fix when the report says exactly where they came from.
One snippet in the head, with nothing new to keep updated.
Child theme, snippets plugin or Google Tag Manager, whichever suits the site.
Print the script only where the environment type is staging.
JavaScript errors are logged on tasks on Mega and above.
Feedback lands on the block that broke, whichever builder made it.
Browser, OS and screen size arrive with each task on Lite and above.
Add the QualityHive script to the of your WordPress staging site and reviewers can click any element to raise a task with a screenshot. It is a script rather than a plugin, so there is nothing extra to keep updated. If you cannot edit the site at all, the Chrome, Firefox or Edge extension needs no site changes.
Copy the script from your project's widget setup, then pick one route. The tracking code guide covers the QualityHive side.
Route | Best for | Watch out for |
Child theme | Sites with a code deploy | Edits to a parent theme are lost when it updates |
Snippets plugin | Sites with no file access | Free tiers differ on what they can insert |
Google Tag Manager | Sites already running a container | Nothing is live until you publish the container |
Hook wp_head from your child theme'sfunctions.php. The hook works on classic and block themes, so you never need to touch header.php. This version only prints the script on staging:
add_action( 'wp_head', function () { if ( 'staging' !== wp_get_environment_type() ) { return; } ?>wp_get_environment_type() returns production unless WP_ENVIRONMENT_TYPE is set, so define it in the staging site's wp-config.php or the script will not print.
WPCode's free version has a Scripts in Header field, so paste the script there. Code Snippets keeps JavaScript snippets for its Pro version, so on the free version add the PHP above as a snippet.
Add a Custom HTML tag containing the script, set it to fire on all pages, then publish the container. Changes can take a few minutes to appear.
Check Settings, then Reading. "Discourage search engines" belongs on staging and must come off at launch.
Send a test through every form and confirm staging emails reach you, and never real customers.
After the database moves to live, search menus and page content for the staging URL.
Purge the page cache after adding the script, or the cached HTML will not include it.
Review in a private window as well, because many caching setups treat logged-in users differently.
WP Rocket's Delay JavaScript execution holds scripts back until someone interacts with the page. If the widget appears late, add the nowprocket attribute to the script tag.
Check responsive visibility settings at each device width, since builders can hide a section on mobile.
Raise feedback on a global header or template once, fix it once, then confirm it on another page that uses it.
If styles look out of date, regenerate the builder's CSS. On Elementor the command is wp elementor flush-css --regenerate.
After any plugin update, retest forms, menus and anything built on a shortcode.
Troubleshooting mode in Health Check disables plugins for your session only, so you can isolate a conflict without affecting visitors.
On Mega and above, tasks log JavaScript errors, which can point at the plugin behind a problem. Our guide to console errors and warnings explains how to read them.
Before go-live, work through our WordPress launch checklist.
No. It is a script you add to the head of the site, or a browser extension that needs no site changes. You can add the script with a snippets plugin if that is easier, but there is no QualityHive plugin to install.
Purge your caching plugin and any server or CDN cache first, because cached pages will not include the new script. Google Tag Manager changes can take a few minutes. Also check you are signed in to QualityHive and that a Content Security Policy is not blocking connector.qualityhive.com or app.qualityhive.com.
Yes, on Lite and above. Turn on guest feedback and share the link, and they need no login and do not use a seat. If a security plugin or your host sends strict X-Frame-Options or CSP headers, those need to allow app.qualityhive.com and connector.qualityhive.com.
No. It is invisible to the public unless they have the guest link. You can still print the script on staging only if you prefer, using the snippet above.
The widget runs on the page the browser renders, so the builder behind it should not matter. Try pinning a task on a deeply nested section when you first install it.
Remove it if the project is finished. If you keep running reviews on the live site it can stay, because the public will not see the widget.