=== spamex ===
Contributors: spamex
Tags: spam, contact form, contact form 7, wpforms, anti-spam
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Spam filtering for Contact Form 7 and WPForms with a reason for every verdict.

== Description ==

spamex checks every submission from Contact Form 7 and WPForms before it is sent. Bots are dropped silently, borderline messages are held for review, and real messages get through in about a millisecond.

Every verdict comes with a reason code you can read: a hidden field was filled in, the form was submitted faster than a person can type, the same message was sent to other sites, the sender has a spam history, or the classifier recognised an unsolicited pitch.

* Works with Contact Form 7 and WPForms out of the box; a filter lets you map other forms.
* Adds a hidden trap field and a timing signal to your forms automatically.
* Fails open: if spamex cannot be reached, your message is delivered.
* Keeps a log of the last 200 verdicts under Tools, where one click corrects a wrong one.

You need a spamex API key. The Free plan includes 1,000 checks a month: https://spamex.dev

== Installation ==

1. Upload the `spamex` folder to `/wp-content/plugins/` or install the zip from Plugins → Add New.
2. Activate the plugin.
3. Go to Settings → spamex and paste your API key from https://spamex.dev/dashboard/keys.
4. In the key's settings on spamex, set the honeypot field name to the one shown in the plugin (default `website`).

== Frequently Asked Questions ==

= What is sent to spamex? =
The submitted name, email, subject and message, the visitor's IP address and browser, and the hidden field and timing signals. Nothing else. Text is not retained by default.

= What happens when spamex is down? =
The message is delivered as if the plugin were not there. The timeout is five seconds and adjustable.

= Can I use it with other form plugins? =
Call `spamex_classify($fields)` from your own hook, or use the `spamex_cf7_fields` and `spamex_wpforms_fields` filters to change how fields are mapped.

== Changelog ==

= 1.0.0 =
First release: Contact Form 7, WPForms, hidden field, timing, verdict log with corrections.
