PSBDx Smart Report Management gives your customers a clean, fast way to report issues directly from your site — no page reloads, no clunky forms, no leaving the page.
Reports are submitted via AJAX and stored in a dedicated admin interface, where your team can track statuses and update them. An admin dashboard widget gives you an at-a-glance overview at all times.
Key Features
- AJAX-powered modal report form — no page reload
- Mobile-first responsive design with iOS safe-area support
- Reporter identity collected server-side from WordPress session (name and email are never editable by users)
- Admin toggle to show or hide the reporter identity card in the form
- Per-form cooldown / rate limiting (enforced on both frontend and server)
- E-commerce order auto-link — reports from order pages are automatically linked to the order in the admin
- Admin dashboard widget with live status counts and recent reports
- Fully configurable report reasons (comma-separated, "Other" always appended)
- Optional extra fields (e.g. Transaction ID, Coupon Code)
- Configurable contact field with required/optional toggle
- Five report statuses with colour-coded badges (Processing, Contacting, Waiting, Solved, Failed)
- Admin list table columns: Reporter (with avatar), Linked Order, Status, Reported Item
- Shortcodes:
[psbdx_report id="X"] and [psbdx_user_reports]
- HPOS (High-Performance Order Storage) compatible
- LearnPress course, lesson, and quiz pages supported
- Auto-display on all products/courses or assign a form per-item
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.
- Upload the
psbdx-smart-report-management folder to /wp-content/plugins/.
- Activate the plugin through Plugins > Installed Plugins.
- Go to Report Forms in the admin sidebar and click Add New Form.
- Configure the form, then copy the shortcode from the Shortcode meta box.
- Paste the shortcode on any page, post, or widget area.
Alternatively, enable global auto-display in the form settings to show the report button on all product or order pages automatically.
1.1.0
Admin menu and navigation
- New top-level PSBDx Reports menu groups Report Forms and Report Logs in one place for easier management.
-
Settings and Repair & Reset appear under this menu (requires manage_options).
Settings page (tabbed)
-
Status — Add unlimited custom report statuses (label plus background and text colours). Built-in statuses remain fixed; custom rows can be removed with a Remove action and saved to delete them from storage.
- Global Rate Limiting — Site-wide default cooldown (minutes) for logged-in users; use 0 to disable globally. Per-form cooldown in each Report Form still overrides the global value when set on the form.
- Captcha — Placeholder tab (“Coming soon”).
-
Email — Placeholder tab (“Coming soon”).
Repair & Reset
-
Read-only diagnostic scan (database connectivity, posts table, CPT registration, global form options, report counts, invalid status meta, rate-limit option rows).
- Clear rate-limit transients — Removes stored cooldown entries (
psbdx_cd_*) from the options table.
-
Fix invalid status meta — Normalizes unknown stored status values back to “Processing”.
Conflict guard
-
After another plugin is activated, a lightweight health check runs; if this plugin’s post types or helpers fail to load, that plugin is automatically deactivated and an admin notice names it (filter
psbdx_srm_conflict_guard_enabled to disable).
Plugin row action links
-
On Plugins → Installed Plugins, administrators see Settings, Repair & Reset, and Documentation next to Activate/Deactivate.
Custom statuses (frontend and admin)
-
Custom statuses merge with the five built-in statuses everywhere (meta boxes, list tables, dashboard widget,
[psbdx_user_reports] chips).
Performance
-
Dashboard status totals use a single aggregated query instead of many separate queries.
-
Published report forms list is cached per request where selectors need it (e.g. WooCommerce, LearnPress).
Multisite / network
-
Plugin header Network: true for WordPress.org compatibility.
-
New blogs on a network use
active_sitewide_plugins to detect network activation when stamping review-notice activation time.
Other fixes
-
Ensure the main plugin file starts with
<?php only (no stray characters before the opening tag) to prevent “headers already sent” warnings.
1.0.1
Learn more (full release story): https://dev.psbdx.xyz/v1-0-1-summary-psrm/
New: Admin Review Notice
- Added a dismissible admin panel notification that appears 24 hours after plugin activation, asking the site admin to leave a review on WordPress.org.
- Three response options:
- "Yes, you deserve it!" — Opens the WordPress.org review page in a new tab and permanently dismisses the notice.
- "Nope, I'll review later" — Snoozes the notice for 7 days, after which it reappears.
- "I already reviewed" — Permanently dismisses the notice without any redirect.
- Dismiss state is stored per-site (not network-wide), so each site on a multisite network manages its own notice independently.
- Notice is only shown to users with the manage_options capability.
-
All AJAX requests are nonce-verified for security.
New: Documentation Link on Plugins Page
-
Added a Documentation link next to the Deactivate/Activate action on the WordPress Plugins page, linking directly to the plugin's documentation at dev.psbdx.xyz.
Improved: Multisite Compatibility
-
Activation hook now handles network-wide activation on multisite — iterates every site using switch_to_blog / restore_current_blog to write per-site options correctly.
- New sites added to a network where the plugin is already network-active automatically receive their own activation timestamp via the wp_insert_site hook.
- Plugin text domain is now loaded inside plugins_loaded so per-site language settings are respected on multisite.
- Backward-compatible lazy activation stamping — existing sites active before v1.1.0 receive a timestamp on first load with no manual action required.
1.0.0
Learn more (launch overview): https://dev.psbdx.xyz/v1-0-0-summary-psrm/
- Initial release.
- Full multi-file plugin architecture following WordPress coding standards.
- AJAX report modal with mobile-first responsive design.
- Server-side identity collection (name and email never from form input).
- Admin toggle to show/hide reporter identity card.
- Per-form rate limiting using WordPress transients.
- WooCommerce / e-commerce order auto-link with HPOS support.
- Admin dashboard widget with status counts and recent reports.
- Configurable reasons, extra fields, contact field, and cooldown per form.
- Five report statuses with colour-coded admin badges.
[psbdx_report] and [psbdx_user_reports] shortcodes.
- LearnPress course, lesson, and quiz page integration.