Public web form
Add a support request form to a public WordPress page and verify the submission flow.
On this page
Overview
The public web form is a support channel at #/settings/channels/web-form. Enable web_form_enabled, then place [elegant_support_form] on a page. It uses the same global schema as admin/portal/chat, filtered to surface public_form. Submissions hit dedicated public REST with honeypot, rate limit, and nonce — not the admin create endpoint.
When to use this
Anonymous visitors can open tickets without a portal account. Because the schema is global, the serial-number field you built once appears here when its surfaces include public_form.
Where to find the controls
Settings → Support Channels → Web Form. Schema: Settings → System → Ticket Form. Quick setup tile on Settings Overview also toggles web_form_enabled.
Who can make these changes
Admins with manage_settings enable the channel. Anyone on the public page may submit within rate limits. Agents then work the ticket in Inbox.
Before you begin
Toggle Public web form, confirm the shortcode page is not cached as a full HTML snapshot that breaks nonce, and preview public_form in the Form Builder. Optional auto-ack still needs email.
Follow these steps
- Enable the channel.
- Ensure fields are on public_form.
- Create a WordPress page with [elegant_support_form].
- Submit a test as a logged-out user.
- Find the ticket in Inbox (channel form).
- Reply.
Settings reference
Enable toggle, shortcode, honeypot (hidden), rate limit, nonce. Visible fields come from the builder (text, textarea, select, multi-select, checkbox, attachment, sections, conditionals).
Example workflow
Marketing adds the shortcode to /contact. A visitor attaches a screenshot (file field on public_form). Inbox shows a new form ticket with historical field values stored.
Good practices
Exclude the form page from full-page cache. Use heading or help fields for your privacy notice.
Important considerations
Do not put the admin create form on the public site. Rate limits exist; do not disable them to “make QA easier” on production.
If something does not work
If a field is missing, check its public_form surface and conditions. Upload rejection follows the ticket file policy. A 400 response indicates validation failure; 403 indicates an invalid form token; 429 indicates throttling. Refresh cached form pages and inspect the response. The endpoint is /wp-json/elegant-support/v1/public/web-form.