=== Form Armour ===
Contributors: hyperpixelstudio, freemius
Tags: spam, anti-spam, contact form, turnstile, captcha
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.6.8
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A drag-to-verify slider that stops form spam on Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Elementor Pro and custom forms.

== Description ==

Form Armour adds a short drag-to-verify slider to the forms you choose and checks every submission on your server before it is sent or saved.

**Free**

* Local protection on every supported form plugin and custom forms: signed single-use tickets, a small puzzle the visitor's browser solves in the background, a minimum fill time, a honeypot, replay protection and per-address submission limits. No keys or external service.
* Optional paste blocking per form.
* Slider styling, alignment, pop-up display and every visitor-facing message.
* Smooth drag feedback: progress trail, snap-back, checking, success and error states, with reduced-motion support.

**Pro** (3-day free trial, no card needed)

* Cloudflare Turnstile mode, verified on your server.
* Per-form styling, handle icons, success and error colours and theme presets.
* Stats dashboard with daily chart, and CSV export.
* Priority email support.

Documentation: https://hyperpixel.com.au/form-armour/docs

Test on a staging site before using Form Armour on a live site. Form Armour is provided under the GPL without warranty, and you remain responsible for your site, its backups and the information your forms collect. See our Terms for the limits of our liability: https://hyperpixel.com.au/form-armour/terms/

Form Armour works on HTTP and HTTPS sites with nothing to set up on your server. It needs first-party cookies and JavaScript in the visitor's browser. No form contents or raw IP addresses are stored.

== Installation ==

1. Upload the plugin ZIP at Plugins → Add New → Upload Plugin, then activate it.
2. Open Form Armour → Forms, choose Local for a form and click Save.
3. Open Form Armour → Appearance to match the slider to your theme.
4. Clear page caches and send a test submission.

== Frequently Asked Questions ==

= Does it work without Cloudflare? =

Yes. Local mode needs no keys or external service. Turnstile mode (Pro) adds Cloudflare's bot check on top.

= Does my site need HTTPS? =

No. Form Armour works on HTTP and HTTPS, and you don't need to change anything on your host. HTTPS is still worth adding when you can, because it protects what visitors type.

= How do I protect a custom form? =

Register it on the Forms screen, render `[form_armour id="your-id"]` inside the form, and call `form_armour_validate('your-id')` in your submission handler before sending or saving anything.

== Changelog ==

= 0.6.8 =
* The Health check explains why HTTPS is still worth adding, for your forms and your site. Form Armour keeps working either way.
* Added a reminder to test on a staging site first, with a link to our Terms.

= 0.6.7 =
* Works on plain HTTP as well as HTTPS, with nothing to change on your server or host.
* Visitor addresses are worked out automatically behind a proxy on the host's network. On local networks, where no public address exists, each browser session gets its own limit.
* The Health check no longer asks you to contact your host. It shows what Form Armour found and confirms it's ready.

= 0.6.6 =
* New Form Armour logo and mascot across the plugin: the admin header, the WordPress menu icon and the Upgrade screen.

= 0.6.5 =
* Health check rewritten in plain language: each problem says what it means for your forms and what to ask your host, with the technical detail tucked under "Technical details". The alert bar names the problems instead of counting them.
* Trial status is now shown: "Trial pending" with a reminder to click the confirmation email, then "Trial · N days left" in the header and a banner on the Dashboard. Trial buttons disappear once a trial is requested or used.
* The slider's tinted trail now runs a little ahead of the handle.
* Rounded alert bars, more room around Pro upgrade cards inside settings, and a restyled "Start free trial" confirmation dialog.

= 0.6.4 =
* Notices: on Form Armour screens, only Form Armour's own urgent notices and errors stay in the page. Other notices (plugins, licensing, WordPress updates) wait in a Notices tray in the header, with a count.
* New Stats tab. On the free plan, the Stats tab and Dashboard show a blurred, clearly labelled sample of the stats screen behind the upgrade card. On Pro, the Dashboard shows totals and the Stats tab has the chart, details and CSV export.
* Forms: rows in every form plugin card share one column grid with Form, Protection and Paste headings, so names, menus and checkboxes line up. A custom form's shortcode sits under its name.
* "Block paste" is now "Block pasting", with an explanation: visitors must type instead of pasting, which slows copy-paste spam but can get in the way of password managers and assistive tools.

= 0.6.3 =
* Appearance: Layout, Slider, Colours, Visitor messages and Extras are now tabs in one card beside the live preview, with Save always in view. Saving still keeps every tab's settings.
* Forms: Local and Local + Turnstile are compared in one card. Each form plugin's forms sit in their own card, and "Add a form" has its own heading.

= 0.6.2 =
* Admin screens restyled: blue buttons, links and tabs, rounder corners and calmer fields.
* The slider's default accent colour is now blue (#2563eb). Sites that saved their own colours keep them.
* The Upgrade screen is restyled to match the plugin, with the Form Armour icon and without third-party trust badges.

= 0.6.1 =
* Handle icons turn dark automatically when the accent colour is light, such as lime or the Midnight preset's blue, so the arrow, chevrons, shield, padlock and checking spinner stay readable. The success tick does the same for a light success colour. The live preview on the Appearance screen follows as you edit colours.

= 0.6.0 =
* New: the visitor's browser solves a small single-use proof-of-work puzzle, started when they first touch the form, before a ticket is issued. Generic bots that only post the form never get a ticket.
* New: submissions sent less than 3 seconds after the visitor started on the form are rejected as "too fast". Real visitors who verify straight away see "Checking..." a moment longer instead of an error.
* Developers: tune with the `hfg_work_bits` (default 15) and `hfg_min_fill_seconds` (default 3) filters.
* These checks slow down bots written for this plugin but cannot stop them. Use Turnstile mode (Pro) for forms that attract targeted abuse.
* Clear page caches after updating so visitors receive the new script.

= 0.5.0 =
* Branded admin with getting-started checklist, Help tabs and setup guides.
* New drag feedback: progress trail, snap-back, checking, success and error states, optional vibration.
* Pro: handle icons, success and error colours, drag-trail colour, theme presets and a daily activity chart.
* Optional "Protected by Form Armour" credit link, off by default.

= 0.4.0 =
* Renamed to Form Armour. Freemius licensing with a free plan and a 3-day Pro trial.

= 0.3.2 =
* PHP 7.4 compatibility.
