=== PrivateStater ===
Contributors: gpdir16
Tags: analytics, captcha, feedback
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Privacy-friendly analytics, Captcha, and feedback widget for WordPress. Enter a website name and PrivateStater works on public-facing pages.

== Description ==

PrivateStater is a privacy-friendly SaaS that combines three things you usually need three separate services for:

* **Analytics** — page views, sessions, and click tracking, without cookies.
* **Captcha** — protect WordPress comments, login/registration, and Contact Form 7 forms with a no-image puzzle + proof-of-work challenge.
* **Feedback widget** — a floating button that lets visitors send text feedback, ratings, or screenshots.

Once activated, paste your website name and PrivateStater loads on every public-facing page. The Captcha integrations stay off until you turn them on.

= Why PrivateStater? =

* No cookies. No cross-site tracking. No data sold to third parties.
* One small script for all three features.
* I run PrivateStater myself — questions go directly to a real person, not a ticket queue.

== Installation ==

1. Upload the plugin ZIP via **Plugins → Add New → Upload Plugin**, or copy the `privatestater` folder into `wp-content/plugins/`.
2. Activate **PrivateStater** through the WordPress Plugins menu.
3. Go to **Settings → PrivateStater** and paste your website name from the [PrivateStater dashboard](https://privatestater.com/dashboard/*/*/project/settings).
4. Optional: enable Contact Form 7, comment, or login Captcha protection from the same settings page.

= Adding Captcha to a Contact Form 7 form =

Edit any CF7 form and add the form tag `[privatestater_captcha]` where you want the Captcha to appear. The plugin verifies the token server-side on submit.

== Frequently Asked Questions ==

= Do I need a PrivateStater account? =

Yes. The plugin connects WordPress to the PrivateStater SaaS, so a PrivateStater account and website name are required. All plugin code is available without local feature locks.

= Does this plugin send any data to third parties? =

The plugin loads `privatestater.js` from `privatestater.com` after a site administrator enters a website name, and verifies Captcha tokens against `privatestater.com/api/captcha/validate` when Captcha protection is enabled. PrivateStater does not sell or share visitor data with third parties. See <https://privatestater.com/privacy>.

= Will it slow my site down? =

The script is loaded with `async` and weighs about 36 KB. Analytics requests run in the background.

= Does it work with caching plugins? =

Yes. The script tag is added with `data-no-optimize="1"` so optimization plugins do not break it.

== External services ==

This plugin connects to PrivateStater's servers to provide analytics, Captcha, and feedback functionality. It does the following:

* Loads the PrivateStater script (`https://privatestater.com/privatestater.js`) on every public-facing page after a site administrator enters a website name. The script provides visitor analytics, the feedback widget, and (when enabled) the Captcha widget.
* Sends analytics and feedback events to PrivateStater's servers. Depending on which dashboard features are enabled, this can include page URLs, referrers, browser and device details, click events, feedback text, ratings, and visitor-provided screenshots.
* Sends Captcha verification requests to `https://privatestater.com/api/captcha/validate` when a protected form is submitted. The request includes the configured website name and the Captcha token returned by the visitor's browser.

For details on what data is collected and how it is processed, see:

* Terms of service: <https://privatestater.com/terms>
* Privacy policy: <https://privatestater.com/privacy>

== Changelog ==

= 1.0.0 =
* Initial release: analytics + feedback widget auto-injection, optional Captcha for Contact Form 7, WordPress comments, and login/registration forms.

== Upgrade Notice ==

= 1.0.0 =
First release.
