=== Sendtim – Signup Forms ===
Contributors: sendtim
Tags: newsletter, signup forms, email marketing, popup, subscribers
Requires at least: 6.5
Requires PHP: 7.4
Tested up to: 7.1
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Give every visit a next step: Sendtim signup forms, automatic pop-ups, editor blocks and sidebar widgets, made for WordPress.

== Description ==

A visitor reads something useful. A well-placed invitation turns that moment into a lasting connection. Sendtim – Signup Forms helps you build that invitation without leaving WordPress.

Create a form with your own words, colors and fields, or connect a published embedded form from your Sendtim account. Choose the list that receives subscribers and let readers select additional interests. Place your form with a Gutenberg block, shortcode, classic editor button or sidebar widget.

Published Sendtim pop-ups and slide-ins appear automatically when enabled in the plugin settings. Their display timing, scroll triggers and exit intent follow the form settings in Sendtim. A dismissal is remembered for the browser session.

Features:

* Connect using an encrypted, server-side Sendtim API key.
* Create custom signup forms with a title, description, button text and success message.
* Map text, paragraph, phone, number, dropdown and checkbox fields to contact fields or custom properties.
* Offer optional interest groups using additional Sendtim lists.
* Connect published embedded Sendtim forms and keep their definitions in sync.
* Automatically show published Sendtim pop-ups and slide-ins.
* Insert forms using the block editor, classic editor, shortcode or widget.
* Enable double opt-in for every custom WordPress form.
* Preserve existing contact properties and respect bounced/complained status.
* Use existing Sendtim list-based automations for welcome emails.

WooCommerce is not required. This plugin has separate settings from the Sendtim WooCommerce integration and can run alongside it.

== Installation ==

1. Upload sendtim-signup-forms.zip using Plugins > Add New > Upload Plugin, then activate.
2. Create an API token in your Sendtim account under Integrations > Sendtim API.
3. Open Sendtim > Settings, paste your token, and click Save & verify connection.
4. Open Sendtim > Signup forms and add a custom form or connect a published embedded form.
5. Place it using the Sendtim signup form block, the classic editor Sendtim button, a sidebar widget, or [sendtim_form id="123"].

Account form discovery and automatic pop-ups require the Sendtim /api/v1/forms endpoint supplied with this release. Custom forms use the existing contacts and lists API. See README.md in the source project for backend deployment instructions.

== Frequently Asked Questions ==

= Do I need WooCommerce? =

No. This plugin works on ordinary WordPress websites and blogs.

= Where do pop-ups come from? =

From published pop-up and slide-in forms in your Sendtim account. They are automatic when enabled under Sendtim > Settings. Embedded forms appear in the form picker instead. Only one pop-up opens per page visit.

= How do I enable double opt-in? =

Enable Double opt-in for custom WordPress forms in Sendtim > Settings. WordPress sends a confirmation email and the subscriber joins your selected lists after confirming. Connected account forms follow their own explicit or inherited list opt-in setting. Configure reliable WordPress email delivery.

= What happens if I change API keys? =

Reopen and save/reselect your forms after changing credentials. Pending confirmations from a previous credential cannot subscribe contacts into the new account. If WordPress security salts change, enter your API key again.

= Does Sendtim show these signups in its form analytics? =

Subscribers and list memberships appear in Sendtim. WordPress submissions use the contacts API and do not increment Sendtim hosted form views or submission reports.

= Can caching affect forms? =

Yes. Definitions refresh every minute, but a full-page or CDN cache can keep older HTML. Purge cached pages when changing form publication or pop-up settings, and ensure cached pages do not outlive WordPress nonces.

= Does the plugin send welcome emails? =

It adds subscribers to your chosen Sendtim lists. Configure a welcome automation for those lists in Sendtim. Confirmation emails for double opt-in are sent separately through WordPress mail.

== Privacy ==

The API key is encrypted using WordPress security salts and OpenSSL. It is never included in public form markup. Pending double-opt-in details are stored locally for up to 48 hours using hashed token lookup keys. Rate-limit identifiers are hashed with a WordPress salt. Uninstall removes this plugin's local settings and forms; Sendtim contacts remain in your account.

== External services ==

This plugin connects to Sendtim at https://sendtim.com/api/v1 using the API token saved by the website administrator. It requests account connection details, lists, published form definitions and existing contact data. On signup it sends the submitted email, configured profile/custom fields, consent wording, consent state and selected list memberships. With double opt-in enabled, these writes occur only after confirmation. Pop-up forms may fetch account form definitions when visitors load the website; API credentials remain on the server. Confirmation emails use the site's configured WordPress mail service.

Website owners should describe their signup data processing in their privacy notice.

Service terms: https://sendtim.com/terms
Service privacy policy: https://sendtim.com/privacy

== Changelog ==

= 1.0.0 =
* Initial independent signup forms plugin with custom and connected forms, pop-ups, blocks, classic editor support, widgets and double opt-in.
