=== Feedback Magic ===
Contributors: brincore
Tags: feedback, survey, nps, changelog, testimonials
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.3.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add Feedback Magic widgets to your site: a feedback button, surveys/CSAT/NPS, visual annotation, a changelog, a voting board and testimonial collection.

== Description ==

Feedback Magic is a suite of embeddable widgets plus a triage dashboard. This
plugin drops any of its **six** widgets onto every page of your WordPress site —
no theme edits, no code:

* **Feedback** — a floating button for bug reports, ideas, and general feedback,
  with an optional auto-captured screenshot and browser/device info.
* **Survey / Poll / CSAT** — NPS, CSAT, star ratings, scales, and multiple-choice
  polls that appear on a trigger, with a results dashboard and .xlsx export.
* **Visual annotation** — visitors drag a box on the page and file a precise edit
  request with a cropped screenshot (great for website review with clients).
* **Changelog** — a "What's new" button with an unread dot, showing your published
  release notes.
* **Voting board** — a public idea board where visitors post feature requests and
  upvote each other's, so you can see what's most wanted.
* **Testimonials** — collect quotes with consent recorded at submission, then
  publish a wall of the ones you approve.

Everything lands in your Feedback Magic dashboard for triage. Add one, some, or
all six widgets — each is identified by its own **publishable key** (`fm_pub_…`),
and each has its own field on the settings screen.

You need a Feedback Magic account. Create one at https://feedback-magic.com,
open a widget, and copy its key from **Install**.

Why you'll like it:

* Paste a key per widget — that's the whole setup.
* Per-widget launcher position (bottom-right / right-center / bottom-left / top-right).
* Open the widget from your own menu item or link instead of the floating button.
* Nudge the floating button clear of a chat bubble or cookie bar.
* Optionally pre-fill the submitter email for logged-in WordPress users.
* Widgets are hosted by Feedback Magic and load asynchronously (deferred), so they
  never block your pages. The screenshot library is fetched only on demand.

Publishable keys are safe to expose — they only allow *submitting* to that one
widget, never reading your data. Reading/triaging requires signing in to the
dashboard.

== Installation ==

1. Install the zip via **Plugins → Add New → Upload Plugin** (or upload the
   `feedback-magic` folder to `/wp-content/plugins/`).
2. Activate the plugin on the Plugins screen.
3. Go to **Settings → Feedback Magic**. There is one key field per widget type.
   Paste the publishable key (`fm_pub_…`) for each widget you want; leave a key
   blank to skip that widget entirely.
4. Save. The widgets appear on the front end of your site. The settings screen
   then shows exactly which script tags are being injected, so you can confirm
   the plugin is doing what you expect.

== Frequently Asked Questions ==

= Where do I get a publishable key? =

Sign in at https://feedback-magic.com, open the widget you want, and copy
the key that starts with `fm_pub_` from its **Install** tab.

= Can I add more than one widget? =

Yes — the plugin has a key field for each of the six widget types (feedback,
survey/CSAT, visual annotation, changelog, voting board, testimonials). Fill in
the ones you want; blanks are skipped.

= Is the publishable key a secret? =

No. It only permits submitting to that widget. Reading and triaging requires
signing in to the dashboard.

= Does it slow down my site? =

Widgets load asynchronously (deferred) from Feedback Magic's servers. The feedback
and annotation widgets fetch the ~200KB screenshot library only on demand — the
initial scripts are tiny (~34–37KB).

= Can I change where a widget appears? =

Yes — set a position per widget under Settings → Feedback Magic, or leave it on
"Use dashboard setting" to control it from your dashboard.

= Where does the data go? Any third parties? =

Submissions go only to Feedback Magic (feedback-magic.com), where you
triage them. The widget scripts and the on-demand screenshot library are served
from the same host. No other third-party services are contacted.

== External services ==

This plugin relies on Feedback Magic, a third-party service, to render its widgets
and store what visitors submit. It is not usable without an account there.

What is loaded, and when: on every page where you have configured a widget key,
the plugin enqueues that widget's script from https://cdn.feedback-magic.com
(for example widget.js or survey.js). The script renders the widget in the
visitor's browser.

What is sent, and when: nothing is sent until a visitor actively submits the
widget's form. At that point the text they entered, and — depending on how you
have configured the widget — an optional email address, an optional screenshot,
and automatically captured technical context (page URL, browser, operating
system, screen size) are sent to Feedback Magic so the submission appears in your
dashboard. Anti-abuse checks (Cloudflare Turnstile) run in an iframe served from
the same host. No other third-party services are contacted, and the plugin sends
nothing when a visitor merely views the page.

Service provider: Feedback Magic, operated by Brincore.
Terms of service: https://feedback-magic.com/terms.html
Privacy policy: https://feedback-magic.com/privacy.html

== Screenshots ==

1. Settings → Feedback Magic: paste a publishable key and pick a position for each widget.
2. The feedback button on the front end, with an auto-captured screenshot.
3. A survey / CSAT prompt collecting a rating.
4. Visual annotation: a visitor boxes an element and files a precise edit request.
5. The Feedback Magic dashboard where every submission is triaged.

== Changelog ==

= 1.3.1 =
* Documentation: the description said the plugin offered three widget types. It has
  offered six since 1.2.0 — voting board and testimonials were missing from the list.
* Front end: our data-* attributes are now added to the script tag WordPress
  generates, instead of replacing that tag. Core's attributes, and any added by
  another plugin, are preserved.
* Front end: deferred loading now uses the `strategy` argument of wp_enqueue_script()
  on WordPress 6.3 and above.

= 1.3.0 =
* New: open a widget from an element already on your site. Give a CSS selector under
  Settings → Feedback Magic and the floating button is not shown at all — your own
  menu item, footer link or button opens the widget instead. Useful when none of the
  four corners suits your theme.
* New: nudge the floating button. Set an across/up-down offset in pixels to clear a
  chat bubble or cookie bar without changing corner.
* Both settings are per widget type, and both are optional — leave them blank and
  nothing changes.

= 1.2.1 =
* Widget scripts now load from cdn.feedback-magic.com instead of
  feedbackmagic.brincore.com. No action needed — existing keys are unchanged and
  the previous host keeps working.


= 1.1.0 =
* Support four widget types (Feedback, Survey/CSAT, Visual annotation, Changelog) — a
  publishable key + position per widget.
* Per-widget script injection; renamed the advanced setting to "Widget host."

= 1.0.0 =
* Initial release: feedback widget injection with publishable key, position,
  logged-in email pass-through, and an advanced widget URL.

== Upgrade Notice ==

= 1.1.0 =
Adds Survey/CSAT and Visual-annotation widgets alongside Feedback. Your existing
feedback key is preserved; add the other keys under Settings → Feedback Magic.
