= 3.1.0 =
* Updated Freemius SDK to the latest version
* Added: Training Data tab under Settings → Anti-Spam (Pro). Shows what the spam checker has learned, split between entries supplied with the plugin and entries marked on your own site, with export to JSON and import (merge or replace) so a corrected file can be loaded back.
* Added: bulk Mark as Spam, Mark as Ham and Delete on the email log (Pro), so training the checker no longer means marking one email at a time.
* Added: sites still using the hosted AI classification see a notice with a one-click switch to local spam checking (Pro). It loads the training data supplied with the plugin and then turns transmission off, ahead of the hosted service being retired.
* Changed: the training data now ships inside the plugin (Pro), so a new install can classify from the start and no longer downloads training data from Fullworks every day. Both supplied data sets are loaded, giving the checker nearly 3,000 examples, and they refresh on each plugin update without touching anything you have marked yourself. The load runs in the admin or on cron, never on a visitor's page view.
* Changed: marking a submission as spam or ham no longer sends it to Fullworks. It is recorded on your own site only, and only the message text is kept, not the submitter's name, email address or IP.
* Fixed: marking spam or ham from the email log list now trains the checker. Previously only the single-email view did, and the list only changed the label.
* Fixed: messages in non-Latin scripts (for example Korean, Arabic or Russian) were corrupted or silently dropped when marked as spam or ham, so international sites were training on incomplete data.
* Fixed: the free version no longer tries to save classifications to a training table it does not have.
* Fixed: a PHP warning, and an empty link in the spam statistics, for form plugins that have no spam screen of their own (for example WooCommerce and Quick Event Manager).
* Fixed: activating Pro while the free version was still active printed a block of "already defined" warnings as unexpected output. Pro now hands over to Freemius before loading anything, and the free version is switched off cleanly.
* Fixed: deleting a site on a multisite network failed with a fatal error. The plugin's tables for that site are now removed with it.
* Fixed: deleting the plugin now also removes its allow/deny list table, which was previously left behind.

= 3.0.2 =
* Fix: spam tagging could appear on the wrong email. Where a form plugin sent
  more than one email in a single request (for example Contact Form 7 with an
  autoresponse), the "[SPAM review]" style subject prefix and X-Spam headers
  could be applied to the reply sent to the person who submitted the form,
  instead of only the site owner's notification.
* Fix: with "Send spam email to" set, that same fault could silently redirect
  the submitter's autoresponse to the quarantine address, so they received
  nothing at all.
* Fix: submitted message content and the submitter's email address are no
  longer attached as headers to unrelated emails sent later in the same request.

== Changelog ==
= 3.0.1 =
* Fix: Quarantine / Audit detail view no longer adds a stray "non" item to the admin menu (Pro). The hidden detail page is now hung off the same hidden parent the email view uses, so it stays reachable by link but never shows in the sidebar.

= 3.0.0 =
* CHANGE: New installs now use only the privacy-focussed options. Spam classification runs entirely on your own server using on-site Machine Learning that learns from the spam you classify - visitor messages are never transmitted to any external service. The remote classification option and its setting are no longer shown on new installs.
* CHANGE: Existing installs are unaffected - every current option, setting and choice (including remote classification) remains available exactly as before.
* Improvement: Pro upgrade and settings wording clarified throughout to describe the private, on-server Machine Learning - no external cloud service, no data sharing.
* Fix: Corrected a malformed privacy-plan check in the mark-as-spam handler.

= 2.6.5 =
* NEW: Quarantine / Audit log (Pro) - full traceability of every submission the plugin checks, allowed or blocked. See exactly what was caught and why - bot trap, ML human-spam score, single-word, your deny rules, real-time IP blocklist, or allow list - along with the analysed content, masked IP and country.
* NEW: One-click allow/deny actions directly from the Quarantine / Audit log (by email, content keyword or IP) feeding the existing allow/deny lists.
* NEW: Automatic 30-day retention and privacy-safe masked IP display for the audit log.

= 2.6.4 =
* Fix: Spurious "GDPR requires..." error shown when saving settings on sites with no email-log-capable forms installed (Pro only)

= 2.6.3 =
* Fix: Fluent Forms 6.2.0 compatibility - resolves fatal error in form validation hook caused by Fluent Forms passing a Model object instead of an array (legacy Fluent Forms versions still supported)
* Fix: Undefined array key warning in email reports when a form integration was registered after settings were last saved (e.g. Fluent Forms)

= 2.6.2 =
* Fix: WS Forms integration loading error when WS Form plugin not active
* Fix: Translation loading too early warning in WordPress 6.7+
* Fix: Database error on activation for email log table
* Fix: Undefined array key warning for form alert settings

= 2.6.1 =
* Fix: Translation strings consolidated and improved for better internationalization
* Fix: WS Forms integration namespace issues resolved

= 2.6 =
* NEW: Contact Form 7 bot protection added to free version!
* NEW: WPForms Lite bot protection added to free version!
* NEW: Jetpack Contact Form protection added to free version!
* NEW: Fluent Forms protection added to free version!1
* NEW: SureForms protection added to free version!
* Improved bot detection algorithm
* Performance optimizations
* Improved browser compatibility and page caching support

= 2.5.1 =
* Fix spam transmission checkbox not persisting in free version

= 2.5 =
* Add dashboard widget showing spam protection status and statistics
* Update Freemius configuration

= 2.4 =
* Add remote debug capabilities with comprehensive diagnostics and reporting
* Fix translation loading warnings in WordPress 6.7
* Fix single word detection for QCF forms

= 2.3.12 =
* Update libraries

= 2.3.11 =
* Fix text domain warning introduced in  WordPress 6.7

= 2.3.10 =
* Fix issue with reporting spam

= 2.3.9 =
* improve IP blocklist logic ( Pro Only )

= 2.3.8 =
* improve spam alert cron ( Pro Only )
* fix Gravity Forms spam alerts ( Pro Only )

= 2.3.7 =
* update tested 6.7
* upgrade freemius library

= 2.3.6 =
* Change bot detection messages for improved clarity

= 2.3.5 =
* Fix issue with comment saving
* change honeypot sensitivity

= 2.3.4 =
* Fix issue with CF7 and PHP 7.4.33 ( Pro Only )

= 2.3.3 =
* Fix issue where badly configured CF7 reCaptcha bypasses Fullworks Anti Spam ( Pro Only )

= 2.3.2 =
* Improve industry IP blocklists to reduce false positives ( Pro Only )

= 2.3.1 =
* Fix Gravity form specific selector ( Pro Only )

= 2.3 =
* Add integration of WSForm
* Add GDPR+ Pro level  ( Pro Only )

= 2.2.1 =
* Ensure comment spam protection applied, even if comments closed on new posts

= 2.2 =
* Add spam level property ( Pro Only )
* tidy up some warnings

= 2.1.4 =
* add extra comment form selector,
* fix bug when two anti spam systems running
* fix possible fatal error in free version

= 2.1.3 =
* Add stricter type checking due to PHP 7.4 inconsistencies

= 2.1.2 =
* improve bot detection when cache plugins used

= 2.1.1 =
* remove unused action_scheduler library

= 2.1 =
* Add API to allow any form system or plugin to utilize Fullworks Anti Spam if installed
* Make `single word is spam` optional
* Import and export CSV of Allow Deny Rules to make custom configuration scalable

= 2.0.1 =
* update honeypot mutation observer to better handle Gravity Forms Legacy markup ( Pro Only )

= 2.0 =
* Added Allow Deny lists for IP addresses, email patterns and text patterns
* Opt in or out to share spam or ham data with our spam detection server to help with privacy compliance
* Add form level control over protection for Gravity Forms ( Pro Only )
* Add email logging for Contact Forms 7 and WP Forms Lite ( Pro Only )
* Added  AI Server detections of human spam and other features ( Pro Only )
* Added Fluent Forms ( Pro Only )

= 1.3.12 =
* Freemius SDK library update to 2.6.2

= 1.3.11 =
* Freemius SDK library update to 2.6.0

= 1.3.10 =
* Freemius SDK update to 2.5.10

= 1.3.9 =
* Fix monthly report template

= 1.3.8 =
* Handle wpDiscuz comments

= 1.3.7 =
* updated translation strings
* added JetPack contact form protection ( Pro )

= 1.3.6 =
* fix another SQL issue in log purge

= 1.3.5 =
* fix SQL error in log purge

= 1.3.4 =
* remove unused directory

= 1.3.3 =
* improve blacklist and human spam features ( Pro )

= 1.3.2 =
* Security update

= 1.3.1 =
* Add missing  css / js assets for opt-in /out

= 1.3 =
* Refactor js so the checks are applied even if a form is added after the initial page load, e.g. lazy load comments plugin

= 1.2.7 =
* Adjust blacklist check ( Pro only )

= 1.2.6 =
* Add trackback and pingback spam to Pro

= 1.2.5 =
* Do not call server for contextual human spam when no content to actually check (Pro)

= 1.2.4 =
* Avoid trapping pingbacks & trackbacks in comment spam
* Improve Quick Contact Form Spam processing and reporting ( Pro only )

= 1.2.3 =
* Updated Caldera Spam processing  ( Pro only )

= 1.2.2 =
* Add blacklist checking ( Pro only )

= 1.2.1 =
* Library Update

= 1.2.0 =
* Added single word text area detection ( premium )

= 1.1.2 =
* Change to free trial info

= 1.1.1 =
* Add auto purge of spam comments

= 1.1.0 =
* added Woocomerce protection to pro

= 1.0.2 =
* corrected error message
* ignore comment replies submitted from admin pages

= 1.0.1 =
* changed links

= 1.0.0 =
* updated minorlogic

= 0.0.3 =
* Add settings link to plugin action link

= 0.0.2 =
* Tidy integration

= 0.0.1 =
* First release