Signup forms
Building a signup form
A signup form is bound to one Laposta list. Add it to a page with the
Wynko: Signup form block, or with the [wynko_form id="N"] shortcode
— both render identical markup from the same source.
Fields
The field editor is driven by Laposta’s own field definitions for the list you’ve chosen — it can’t offer a field your list doesn’t accept, because it’s reading the same list Laposta would validate against. Each row shows its label, with the rest — help text, default value, CSS class, placeholder, and type-specific constraints — folded behind a settings toggle so the table stays one line per field.
You can label fields three ways: by label, by placeholder, or both (the default for a new form). Fields also support the standard HTML5 constraints — minimum/maximum length, numeric and date ranges, and patterns — for whichever field types Laposta itself supports them on, and browser autofill hints so a visitor’s own browser can fill in things like their name and email address. Drag a row’s handle to reorder fields; the order is saved with the form.
Field definitions are cached the same way campaign data is — see Cache duration and manual sync — so changing a list in Laposta doesn’t reach a live form instantly. If a change makes the cached definitions stale, the first submission that doesn’t match them triggers an automatic resync, so the next attempt uses Laposta’s current definitions.
Submission and validation
Forms submit in place without reloading the page, with a plain redirect fallback if JavaScript is unavailable. Every submission is re-validated server-side against the list’s live field definitions, regardless of what the browser sent — so a tampered request is rejected the same as an honest mistake. Submissions are also rate-limited per visitor and per form; see Settings reference.
A validated submission is sent straight to Laposta — Wynko never stores what a visitor typed. The activity log only records which form was submitted and whether it succeeded, never the email address or any field value. For exactly what the submission contains, see What Wynko sends to Laposta.
Page caching and CDNs
A signup form is safe to leave on a fully cached page — a landing page behind WP Super Cache, WP Rocket, W3 Total Cache, LiteSpeed Cache, or a CDN is the normal case, not something to work around. Wynko guards the two places a cache could otherwise cause trouble:
- The security check embedded in the form’s markup (its nonce) stays valid for three days, well past a typical cache lifetime, so a cached page keeps working long after it was generated. A visitor who lands on a page cached longer than that is asked to submit once more rather than have anything unsafe accepted — with JavaScript on this happens automatically and is invisible.
- The page shown right after a submission without JavaScript is never cached, however your caching plugin is configured, so one visitor’s submitted details are never served to the next.
Both protections are on by default. Wynko → Settings → Security carries an opt-out for each — labelled for exactly that, testing whether a caching or proxy layer is behind submissions failing — and each shows a plain-language warning while it’s switched off. If the Security tab shows one off, that is always a deliberate, administrator-made choice.
Per-visitor rate limiting counts by IP address. Behind a CDN or reverse proxy that doesn’t forward the visitor’s real address, every submission can look like it comes from the proxy, which can make the per-visitor cap turn away real signups site-wide. If signups start being refused in bursts on a site behind a proxy, check its documentation for forwarding the visitor’s real IP.
When Laposta gains a new optional field, a page still being served from cache has no way to show it — and because nothing about a submission fails, nothing raises a loud alert. Wynko notices quietly instead: each rendered form carries a small marker of the fields it was built from, and a submission carrying an outdated marker adds a note to the activity log (“carried an outdated field fingerprint…”), at most once an hour per form. That note is the signal to purge that page from the cache; the form keeps working as it did. (A new required field is caught faster — see Cache duration and manual sync.)
After a signup
You can configure:
- Redirect — stay on the page, go to a chosen page, or go to a typed URL.
- Hide after submit — replace the form with a message instead of redirecting.
- Terms checkbox — optionally require agreement, linking to a page or URL.
- Reveal duplicate — whether a signup from an address already on the list says so. Off by default, since telling an anonymous visitor reveals whether an address is subscribed.
How many forms can I have?
As many as you need. Wynko → Signup forms lists every form on the site, with an “Add form” button to create another.