=== smartEngin Forms ===
Contributors: smartengin
Tags: contact form, form builder, spam protection, captcha, gdpr
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.19.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Contact form builder with spam protection, captcha, file uploads and opt-in to external newsletter services (Brevo, Mailchimp, MailerLite).

== Description ==

**smartEngin Forms** is a lightweight contact form plugin with a German-language admin interface. Build as many forms as you like by clicking them together, style them without code and embed them with a shortcode.

= Features =

* **Drag-and-drop form builder**: text, email, phone, number, date/time, choice fields (dropdown/multi-select/radio/checkbox), file upload, first & last name, GDPR consent and more.
* **Preconfigured quick fields** (salutation, subject, budget, message and more).
* **Design without code**: colours, spacing, radius and shadows via sliders and colour pickers, plus an optional two-part "hero card" with content widgets.
* **Delivery** to multiple recipients, reply-to and subject placeholders.
* **Confirmation email** to the sender with its own block editor and field placeholders.
* **Automatic spam protection**: nonce (CSRF), honeypot, timestamp check, per-IP rate limit and block lists (emails/words/IPs).
* **Optional captcha**: Cloudflare Turnstile (recommended), hCaptcha or Google reCAPTCHA v2 – enabled per form, invisible mode supported.
* **Newsletter opt-in**: forward a subscription to an external service (Brevo, Mailchimp or MailerLite) – only when the visitor ticks the newsletter consent box.
* **File uploads** with type, size and count limits and a protected storage location.
* **Submissions** are stored, viewable in the admin area and removed automatically after a configurable retention period (including their upload files).
* **GDPR**: configurable retention periods, separate consents, no external scripts unless explicitly enabled.
* Deliverability: emails are sent as multipart (HTML + plain text), based on `wp_mail()` (compatible with SMTP plugins).

= External services =

This plugin loads **no** external scripts on its own. Only when you enable a **captcha** in a form does it load the script of the provider you selected and transmit the visitor's IP address to that service for verification:

* **Cloudflare Turnstile** – script `challenges.cloudflare.com`, verification via `challenges.cloudflare.com/turnstile/v0/siteverify`. Privacy policy: https://www.cloudflare.com/privacypolicy/
* **hCaptcha** – script `js.hcaptcha.com`, verification via `hcaptcha.com/siteverify`. Privacy policy: https://www.hcaptcha.com/privacy
* **Google reCAPTCHA v2** – script `google.com/recaptcha`, verification via `google.com/recaptcha/api/siteverify`. Privacy policy: https://policies.google.com/privacy

Add the provider you enable to your site's privacy policy.

If you connect a **newsletter service** under "Newsletter" and enable it for a form, the submitted email address (and, if present, the name) is sent to that service to create/update a contact – but only when the visitor ticks the newsletter consent box:

* **Brevo** – contact sent to `api.brevo.com/v3/contacts`; lists loaded from `api.brevo.com/v3/contacts/lists`. Privacy policy: https://www.brevo.com/legal/privacypolicy/
* **Mailchimp** – contact sent to `<dc>.api.mailchimp.com/3.0/lists/…/members`; audiences loaded from `<dc>.api.mailchimp.com/3.0/lists`. Privacy policy: https://www.intuit.com/privacy/statement/
* **MailerLite** – subscriber sent to `connect.mailerlite.com/api/subscribers`; groups loaded from `connect.mailerlite.com/api/groups`. Privacy policy: https://www.mailerlite.com/legal/privacy-policy

No newsletter data is sent unless you configure a provider, enable it for a form and the visitor consents. Add the provider you use to your privacy policy and data-processing records.

== Installation ==

1. Upload the plugin via **Plugins → Add New** (or install it from the directory) and activate it.
2. Under **smartEngin Forms → Kontaktformulare** create a form and assemble the fields in the builder.
3. In the **Einstellungen** tab enter the recipient email address.
4. Insert the shortcode shown (for example `[smartengin_form id=1]`) into a page.
5. Optionally set up a captcha under **Sicherheit** and enable it per form.

== Frequently Asked Questions ==

= My form does not submit. =
Check whether a captcha is active and configured correctly (site/secret key correct, domain allowed at the provider). Reload the page and submit again.

= The notification email does not arrive. =
Check the recipient address in the settings. For reliable delivery we recommend an SMTP plugin and a sender address on your own domain.

= Is data transmitted to third parties? =
Only if you enable a captcha (see "External services"). Without a captcha the plugin loads no external scripts.

= Which languages does the admin interface support? =
German and English. The interface follows the WordPress language: set the site language under Settings → General, or your personal language under Users → Profile. No extra option is required.

= Can I connect the form to my newsletter tool? =
Yes. Under "Newsletter" choose a provider (Brevo, Mailchimp or MailerLite), enter your API key and use "Test connection" to load your lists. Then enable it per form under Settings → Newsletter and set the list ID. Sign-ups are only forwarded when the visitor ticks the newsletter consent box.

= Can I remove the plugin cleanly? =
Yes. By default your forms and submissions are kept when you uninstall. Under **Sicherheit → Deinstallation** you can choose to remove all data when the plugin is deleted.

== Screenshots ==

1. Drag-and-drop form builder.
2. Design settings with live preview.
3. Security: configuring the captcha provider.
4. Finished contact form on the front end.

== Changelog ==

= 0.19.0 =
* Menu streamlined for the free version; added a "smartEngin Pro" info page. Design tab: note that the Container settings only apply to single-part forms (without the hero card).

= 0.18.0 =
* New: full English translation of the admin interface. The backend follows the WordPress user/site language (German or English) – no extra setting needed.

= 0.17.0 =
* New: connect the newsletter consent checkbox to an external service (Brevo, Mailchimp or MailerLite). Opt-in only – data is sent solely when the visitor consents. Includes a "Test connection" button that loads the available lists.

= 0.16.2 =
* Compliance pass for the WordPress.org directory: escaping, i18n and file-system fixes; English readme; header metadata updated.

= 0.16.0 =
* Release preparation: readme.txt, multipart emails (HTML + plain text), double-click protection, clean uninstall with optional data removal, extension hook `sef_after_submission`.

= 0.15.1 =
* Cloudflare Turnstile: new "interaction-only" mode (invisible for regular visitors).

= 0.15.0 =
* New "Security" module: captcha (Cloudflare Turnstile, hCaptcha, reCAPTCHA v2), enabled per form. Upload file cleanup. Help page with troubleshooting.

== Upgrade Notice ==

= 0.18.0 =
The admin interface is now available in English and German (follows your WordPress language).

= 0.17.0 =
Adds optional newsletter opt-in to Brevo, Mailchimp and MailerLite.

= 0.16.2 =
Compliance update for the WordPress.org plugin directory.
