PSBDx Smart Report Management
PSBDx Smart Report Management

PSBDx Smart Report Management

0/5 (0 ratings) — active installs Updated Aug 10, 2026
Frontend report button and modal form on a product page.

Frontend report button and modal form on a product page.

PSBDx Smart Report Management turns any WordPress site into a lightweight support desk. Customers report a problem — with an order, a product, a course, or anything else — through a fast AJAX modal that never reloads the page, and every submission lands in a clean, organized admin inbox your team actually enjoys working from.

No support-ticket plugin bloat, no separate helpdesk to learn, no per-agent pricing. Just a focused, fast, genuinely useful report and complaint management system that plugs straight into WooCommerce and LearnPress — and, when you want it, hands the busywork of sorting and prioritizing incoming reports to AI.

Why site owners choose it

  • It’s instant. Reports submit over AJAX with no page reload, so customers actually finish the form instead of abandoning it.
  • It sorts itself. Turn on AI-assisted classification and every new report gets a suggested category and priority (Low / Medium / High) automatically — you triage a full inbox in minutes, not hours.
  • It gives customers a reference. Every report gets its own unique, human-readable Ticket ID, so a customer can follow up by email or phone and your team can find the exact report instantly.
  • It already knows your store. Reports from a WooCommerce order page auto-link to that order; reports from LearnPress courses, lessons, and quizzes are just as seamless.
  • It fits your workflow, not the other way around. Custom statuses, custom categories, per-form rate limiting, captcha, and a drag-and-drop form builder mean the plugin adapts to how you already work.

Key Features

  • AJAX-powered modal report form — no page reload, works anywhere via shortcode
  • Optional AI-assisted triage (WordPress 7.0+): automatically suggests a category and priority for every new report using the built-in WordPress AI Client — gracefully disabled with no impact on the rest of the plugin if you’re on an older WordPress version or haven’t connected a provider
  • “Summarize with AI” on the report edit screen — a plain-language explanation of what the customer is actually reporting, for reports that are long or vaguely worded
  • AI Response Log: a rolling 3-hour audit trail of every AI request and response, so you can see exactly what the AI decided and why
  • Unique, human-readable Ticket ID on every report — the customer’s reference for following up, shown in their confirmation and report history
  • Admin-defined report Categories and Low/Medium/High Priority, settable manually or by AI, editable any time from the report edit screen
  • Drag-and-drop Form Builder: ten field types (name, email, phone, text, paragraph, number, select, radio, checkboxes, captcha), fully reorderable, mobile-friendly
  • Five built-in report statuses with colour-coded badges (Processing, Contacting, Waiting, Solved, Failed), plus unlimited custom statuses
  • E-commerce order auto-link — reports from an order page are automatically linked to that order in the admin, HPOS-compatible
  • Per-form cooldown / rate limiting enforced on both the frontend and the server, so the same user can’t spam a form
  • Captcha support: Google reCAPTCHA, hCaptcha, and Cloudflare Turnstile
  • Admin dashboard widget and admin-bar shortcut with live, at-a-glance unsolved-report counts
  • Built-in FAQ builder with a [psbdx_faq] accordion shortcode for your own site’s visitors
  • Mobile-first responsive design throughout, including iOS safe-area support and a touch-friendly admin experience
  • LearnPress course, lesson, and quiz page support, alongside WooCommerce
  • Reporter identity (name and email) collected server-side from the WordPress session — never editable by the user, so it can’t be spoofed
  • Shortcodes: [psbdx_report id="X"], [psbdx_user_reports], and [psbdx_faq]

Also configurable, per form

  • Fully custom report reasons (comma-separated, “Other” always appended)
  • Optional extra fields (e.g. Transaction ID, Coupon Code)
  • Contact field with a required/optional toggle
  • Show or hide the reporter identity card in the form
  • Auto-display on all products/orders/courses, or assign a form per item

Perfect for

  • WooCommerce stores that need a fast, structured way for customers to report an order or product problem
  • Online course sites (LearnPress) fielding student questions about a specific course, lesson, or quiz
  • Any WordPress site that wants a lightweight complaint/report/support-ticket system without a heavyweight external helpdesk

Shortcodes

[psbdx_report id="X"]

Display a report button and modal form. Replace X with the Report Form post ID shown in the Shortcode box.

[psbdx_user_reports]

Display a paginated table of the currently logged-in user’s report history, including their ticket IDs.

[psbdx_faq]

Display your admin-managed FAQ as a clean accordion, anywhere on your site.

Developer Hooks

For developers building integrations or extensions on top of this plugin.

Report status changes

Instead of polling the database, listen for these action hooks — they fire from the one place in the plugin that ever writes a report’s status, so they’re guaranteed to fire exactly once per real change:

psbdx_srm_report_status_changed( $report_id, $old_status, $new_status, $context )

Fires for every status change, whatever the new status is.

psbdx_srm_report_status_changed_to_{$new_status}( $report_id, $old_status, $context )

Fires only for one specific new status (status run through sanitize_key()), e.g. psbdx_srm_report_status_changed_to_solved. Use this instead of the generic hook if you only care about one transition.

$context is an associative array:
  • report_id (int) — same as the first hook argument, included for convenience.
  • ticket_id (string) — the report’s human-readable ticket ID.
  • submitter_id (int) — numeric WP user ID of whoever filed the report, or 0 for a guest.
  • submitter_email (string) — the reporter’s email address, if one was collected.
  • old_status (string|null) — the previous status key, or null if this report never had one before (i.e. this is the very first status it’s ever had, from a brand-new submission).
  • new_status (string) — the new status key.
  • changed_by (int) — numeric WP user ID of whoever triggered the change (typically the logged-in admin editing the report), or 0 for a guest’s own submission or an automated process.
  • updated_at (string) — MySQL datetime in GMT/UTC.
  • updated_at_local (string) — MySQL datetime in the site’s local timezone.
  • source (string) — where the change came from: submission (a brand-new report), admin (the report edit screen), or another value a specific integration may pass.

Example:

add_action( 'psbdx_srm_report_status_changed', function( $report_id, $old_status, $new_status, $context ) {
    error_log( sprintf(
        'Ticket %s (user #%d): %s -> %s',
        $context['ticket_id'],
        $context['submitter_id'],
        $context['old_status'] ?? '(new)',
        $new_status
    ) );
}, 10, 4 );

Note: bulk/maintenance operations that write status directly to the database (CSV import, and the Repair & Reset page’s “fix invalid status values” tool) intentionally do not fire these hooks, since they’re bulk restores rather than individual live status changes.

Upcoming Features

The following features are planned for future releases:

  • Email Notifications — Notify the admin on new submissions, and send a confirmation email to the reporter.
  • Status Change Emails — Email the reporter automatically when their report status is updated.
  • CSV Export — Export all report logs as a CSV file from the admin screen.
  • File / Screenshot Attachment — Let users attach a screenshot or file to their report. (Added ✅)
  • Internal Admin Notes — Private notes on each report log, visible only to admins.
  • Report Categories / Tags — Organise reports with admin-defined categories for easier filtering. (Added ✅)
  • Guest Email Verification — Allow non-logged-in users to submit with email verification before saving. (Added ✅)
  • Duplicate Detection — Alert admins when a new report closely matches an existing open one. (Added ✅)
  • Report Priority Levels — Assign Low / Medium / High priority to reports, manually or via AI. (Added ✅)
  • REST API Endpoints — Query and manage reports programmatically via the WordPress REST API.
  • AI Knowledgebase Suggestions — Recommend existing help-article answers to reporters based on their report content. (Settings AI Knowledgebase — coming soon)