{"id":296547,"date":"2026-04-12T17:22:31","date_gmt":"2026-04-12T17:22:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpbugpost\/"},"modified":"2026-04-12T17:23:27","modified_gmt":"2026-04-12T17:23:27","slug":"bugpost","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bugpost\/","author":23475123,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"BugPost","header_author":"Joshua Skellett","header_description":"Simple frontend bug reporting overlay for WordPress. Visitors submit reports with auto-captured browser context and console errors.","assets_banners_color":"b3b1b6","last_updated":"2026-04-12 17:23:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpbugpost.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.2":{"tag":"1.2.2","author":"wpbugpost","date":"2026-04-12 17:23:27"}},"upgrade_notice":{"1.2.2":"<p>Addresses WordPress.org review feedback: proper CSS enqueueing and input sanitization.<\/p>","1.2.1":"<p>Resolves plugin checker warnings.<\/p>","1.2.0":"<p>Plugin renamed from WPBugPost to BugPost. Updated slug, text domain, and all prefixes.<\/p>","1.1.2":"<p>Security hardening for file uploads \u2014 adds MIME verification and filename sanitization.<\/p>","1.1.1":"<p>Minor display fix on the Summary page heading.<\/p>","1.1.0":"<p>File attachments are now available for free. Reporters can attach images and documents to their bug reports.<\/p>","1.0.0":"<p>Initial release of BugPost. Install to start collecting bug reports from your site visitors.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3504601,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3504601,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3504601,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3504601,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3504601,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.PNG":{"filename":"screenshot-1.PNG","revision":3504601,"resolution":"1","location":"assets","locale":""},"screenshot-2.PNG":{"filename":"screenshot-2.PNG","revision":3504601,"resolution":"2","location":"assets","locale":""},"screenshot-3.PNG":{"filename":"screenshot-3.PNG","revision":3504601,"resolution":"3","location":"assets","locale":""},"screenshot-4.PNG":{"filename":"screenshot-4.PNG","revision":3504601,"resolution":"4","location":"assets","locale":""},"screenshot-5.PNG":{"filename":"screenshot-5.PNG","revision":3504601,"resolution":"5","location":"assets","locale":""},"screenshot-6.PNG":{"filename":"screenshot-6.PNG","revision":3504601,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"The \"Report\" tab on the frontend \u2014 always accessible on the right side of the page.","2":"The bug report overlay panel with description field and optional reporter info.","3":"The admin reports list table showing status, page, reporter, and \"me too\" counts.","4":"The report detail view with full auto-captured browser context.","5":"The settings page with visibility mode and button color options.","6":"The summary page with total reports, status breakdown, and most-reported pages."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[253348,14791,27555,108,7615],"plugin_category":[42],"plugin_contributors":[260045],"plugin_business_model":[],"class_list":["post-296547","plugin","type-plugin","status-publish","hentry","plugin_tags-bug-report","plugin_tags-bug-tracking","plugin_tags-error-reporting","plugin_tags-feedback","plugin_tags-qa","plugin_category-contact-forms","plugin_contributors-wpbugpost","plugin_committers-wikifleeksmedia","plugin_committers-wpbugpost"],"banners":{"banner":"https:\/\/ps.w.org\/bugpost\/assets\/banner-772x250.png?rev=3504601","banner_2x":"https:\/\/ps.w.org\/bugpost\/assets\/banner-1544x500.png?rev=3504601","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/bugpost\/assets\/icon.svg?rev=3504601","icon":"https:\/\/ps.w.org\/bugpost\/assets\/icon.svg?rev=3504601","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-1.PNG?rev=3504601","caption":"The \"Report\" tab on the frontend \u2014 always accessible on the right side of the page."},{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-2.PNG?rev=3504601","caption":"The bug report overlay panel with description field and optional reporter info."},{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-3.PNG?rev=3504601","caption":"The admin reports list table showing status, page, reporter, and \"me too\" counts."},{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-4.PNG?rev=3504601","caption":"The report detail view with full auto-captured browser context."},{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-5.PNG?rev=3504601","caption":"The settings page with visibility mode and button color options."},{"src":"https:\/\/ps.w.org\/bugpost\/assets\/screenshot-6.PNG?rev=3504601","caption":"The summary page with total reports, status breakdown, and most-reported pages."}],"raw_content":"<!--section=description-->\n<p>BugPost adds a lightweight bug reporting button to your site's frontend. When clicked, it opens a clean overlay panel where visitors or team members can describe an issue. Browser details, operating system, viewport size, page URL, page load time, and JavaScript console errors are captured automatically \u2014 no extra effort needed from the reporter.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>One-click reporting<\/strong> \u2014 A \"Report\" tab on the right side of every page opens a simple form.<\/li>\n<li><strong>Auto-captured context<\/strong> \u2014 Browser name and version, OS, viewport dimensions, page URL, page load time, and console errors are sent along with every report.<\/li>\n<li><strong>Console error capture<\/strong> \u2014 JavaScript errors and unhandled promise rejections are logged automatically and attached to the report.<\/li>\n<li><strong>Reporter fields<\/strong> \u2014 Optional name and email fields let reporters identify themselves.<\/li>\n<li><strong>Honeypot spam protection<\/strong> \u2014 A hidden field traps bots without annoying humans with CAPTCHAs.<\/li>\n<li><strong>Rate limiting<\/strong> \u2014 3 reports per IP per hour prevents abuse.<\/li>\n<li><strong>\"Me too\" duplicate grouping<\/strong> \u2014 When multiple reports target the same page, earlier open reports get a +1 count so you can see which issues affect the most people.<\/li>\n<li><strong>Visibility modes<\/strong> \u2014 Choose Beta (logged-in users only) or Public (everyone). Turn it off entirely when not needed.<\/li>\n<li><strong>Admin dashboard<\/strong> \u2014 All reports in a familiar WordPress list table with status badges, reporter info, page URL, and date columns.<\/li>\n<li><strong>Report detail view<\/strong> \u2014 Each report has a full meta box showing all captured context data.<\/li>\n<li><strong>Status workflow<\/strong> \u2014 Mark reports as New, Acknowledged, In Progress, Resolved, or Closed.<\/li>\n<li><strong>CSV export<\/strong> \u2014 Download all reports as a CSV file for use in spreadsheets or external tools.<\/li>\n<li><strong>Customizable button color<\/strong> \u2014 Match the report button to your site's brand via a color picker.<\/li>\n<li><strong>Fully translatable<\/strong> \u2014 All strings use WordPress i18n functions with the <code>bugpost<\/code> text domain.<\/li>\n<\/ul>\n\n<p><strong>What this plugin does NOT do (by design):<\/strong><\/p>\n\n<ul>\n<li>No external API calls, no tracking, no phoning home.<\/li>\n<li>No CDN dependencies \u2014 all assets are bundled locally.<\/li>\n<li>No account required to use the plugin.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bugpost<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to <strong>BugPost &gt; Settings<\/strong> to choose your visibility mode and button color.<\/li>\n<li>Visit your site's frontend \u2014 you should see the \"Report\" tab on the right side of the page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20visitors%20submit%20a%20bug%20report%3F\"><h3>How do visitors submit a bug report?<\/h3><\/dt>\n<dd><p>A \"Report\" button appears as a vertical tab on the right edge of every page (when the widget is enabled). Clicking it opens an overlay panel with a text area to describe the issue, plus optional name and email fields. Browser details and console errors are captured automatically.<\/p><\/dd>\n<dt id=\"what%20data%20is%20captured%20automatically%3F\"><h3>What data is captured automatically?<\/h3><\/dt>\n<dd><p>Each report includes: the page URL, page title, browser name and version, operating system, viewport size (width x height), page load time, and any JavaScript console errors that occurred before the report was submitted.<\/p><\/dd>\n<dt id=\"how%20does%20spam%20protection%20work%3F\"><h3>How does spam protection work?<\/h3><\/dt>\n<dd><p>The plugin uses two mechanisms: a honeypot field (invisible to humans, filled by bots) and IP-based rate limiting (3 reports per hour per IP address). No CAPTCHA is needed.<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20reports%3F\"><h3>Can I export the reports?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>BugPost &gt; Summary<\/strong> and click \"Export All Reports as CSV.\" The export includes all report fields, context data, and status information.<\/p><\/dd>\n<dt id=\"what%20are%20the%20visibility%20modes%3F\"><h3>What are the visibility modes?<\/h3><\/dt>\n<dd><ul>\n<li><strong>Off<\/strong> \u2014 The widget is completely hidden.<\/li>\n<li><strong>Beta<\/strong> \u2014 The widget appears only for logged-in WordPress users. Great for internal QA testing.<\/li>\n<li><strong>Public<\/strong> \u2014 The widget appears for all visitors.<\/li>\n<\/ul><\/dd>\n<dt id=\"does%20this%20plugin%20make%20external%20requests%3F\"><h3>Does this plugin make external requests?<\/h3><\/dt>\n<dd><p>No. BugPost does not load any external scripts, stylesheets, fonts, or make any API calls to outside servers. Everything is self-contained.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20caching%20plugins%3F\"><h3>Is this plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The widget is loaded via standard WordPress script enqueueing and uses AJAX for submissions. It works with all popular caching plugins.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20more%20features%3F\"><h3>Where can I get more features?<\/h3><\/dt>\n<dd><p>The paid versions at <a href=\"https:\/\/wpbugpost.com\/pricing.html\">wpbugpost.com<\/a> add screenshot capture, annotation tools, custom categories and priorities, GitHub\/Jira\/Linear integrations, email digests, Slack notifications, and more.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fixed inline CSS to use wp_add_inline_style() instead of echoing style tags.<\/li>\n<li>Improved input sanitization: POST data sanitized with map_deep() at access time.<\/li>\n<li>Improved file upload sanitization: each $_FILES field sanitized individually at access.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Removed deprecated load_plugin_textdomain() call.<\/li>\n<li>Resolved plugin checker warnings for file upload handling and query performance.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed plugin from WPBugPost to BugPost.<\/li>\n<li>Updated slug, text domain, constants, and all prefixes to <code>bugpost<\/code>.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Security: Added server-side MIME type verification for file uploads via wp_check_filetype_and_ext().<\/li>\n<li>Security: Added filename sanitization before upload processing via sanitize_file_name().<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: Summary page heading now renders em dash correctly instead of showing raw HTML entity.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: File attachments \u2014 reporters can attach images, PDFs, and documents to bug reports.<\/li>\n<li>New: Configurable attachment settings (max files, max size, allowed types).<\/li>\n<li>Improved: Submission now uses FormData for reliable file upload support.<\/li>\n<li>Updated: Removed file attachments from paid-only features list.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Frontend bug reporting overlay widget.<\/li>\n<li>Auto-captured browser, OS, viewport, page URL, load time, and console errors.<\/li>\n<li>Reporter name and email fields.<\/li>\n<li>Honeypot spam protection.<\/li>\n<li>Rate limiting (3 per IP per hour).<\/li>\n<li>\"Me too\" duplicate grouping.<\/li>\n<li>Admin reports list table with status, page, reporter, and date columns.<\/li>\n<li>Report detail meta boxes.<\/li>\n<li>Status workflow: New, Acknowledged, In Progress, Resolved, Closed.<\/li>\n<li>CSV export of all reports.<\/li>\n<li>Visibility modes: Off, Beta (logged-in), Public.<\/li>\n<li>Customizable button color.<\/li>\n<li>Summary page with stats and most-reported pages.<\/li>\n<li>Full i18n support.<\/li>\n<\/ul>","raw_excerpt":"Simple frontend bug reporting overlay for WordPress. Visitors submit reports with auto-captured browser context and console errors.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296547","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=296547"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpbugpost"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296547"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296547"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296547"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296547"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296547"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}