HappyDivi Form

HappyDivi Form: Every Feature Explained (and How It Compares to Divi Contact Form and Divi Contact Form Helper)

HappyDivi
Estimated read time: … min read Updated Updated
Overview

HappyDivi Form is the only contact form plugin built as a genuine Divi 5 native module from the ground up. Every field lives in the Divi layer panel like any other module. Drag it, duplicate it, style it, make it conditional. No separate form builder to learn. No settings panel floating outside the Visual Builder. Just Divi, working the way you already know it.
But the real difference shows up after someone hits Submit.

Most contact forms stop there. They send an email, show a generic "Thank you" message, and leave everything else up to you. HappyDivi Form keeps working. The right person on your team gets notified automatically. The visitor gets a confirmation so they know their message landed. And if you have different services or departments, each inquiry can go to exactly the right inbox without anyone sorting through a shared mailbox.

You can also control what the visitor sees after they submit. Show a different success message depending on what they selected. Redirect them to a specific page. Or both. A visitor who chose Web Design sees something different from one who chose SEO. That small detail makes your site feel more considered, and your business feel more responsive.

This article covers every feature in HappyDivi Form, how each one works with real examples, and how it compares to Divi's built-in contact form and the Divi Contact Form Helper plugin by Pee-Aye Creative. Every item is verified against the actual plugin codebase as of version 1.0.0. Nothing here is aspirational.

1. 20 Field Types: Free and Pro

HappyDivi Form ships 20 registered field types: 12 available free, 8 requiring Pro. Every field type is a separate Divi child module with its own settings panel. Pro field types are simply not registered on a free install, so they degrade gracefully rather than showing a broken field.

Every single field shares these base capabilities, inherited from the core field class:

  • Optional label with automatic required-asterisk indicator. A blank label renders no label element at all, not just a visually hidden one.
  • Corner required-marker fallback: if a field has no visible label but is required, a floating asterisk appears in the field corner.
  • Label position: Top (default) or Inline (label and control share one flex row).
  • Custom placeholder text, per field.
  • Help text line, wired into aria-describedby for accessibility.
  • Field width: Full, Half, Third, or Quarter. Genuinely Divi-responsive, collapsing to full width under 640px.
  • Conditional show/hide based on another field's value (all 9 operators, dual-layer enforcement).
  • Dynamic prefill from a URL parameter, logged-in user profile, or current date/time. Resolved client-side so page caches never leak data between visitors.
  • Custom validation messages with {min}, {max}, and {count} placeholder substitution, enforced on both client and server.
  • Prefix and suffix text adornments outside the input box.
  • Character or word counter: live "used / max" display.
  • Field icon: decorative glyph beside the label or inset inside the input. Pro only. Pro
  • Auto-Format input masks for digit formatting as the visitor types. Pro only. Pro
  • Smart Autofill: correct autocomplete token on each field for one-tap browser fill on mobile. Pro only. Pro

Free Field Types (12)

1. Text Free

Single-line input with min/max length (client and server enforced), allowed-symbols restriction, custom regex pattern, and default value. Prefix/suffix, field icon, and character/word counter all apply.

Use case

A job application form uses the Text field for "Full Name" with a min length of 3 characters and a custom error: "Please enter your full name, not just a first name."

2. Email Free + Smart Email Pro

Validated server-side. Free tier includes disposable-domain detection. Pro adds: live typo suggestion ("Did you mean name@gmail.com?"), role-address warning (admin@, info@). The Smart Email features require Pro to activate.

Use case

A visitor types "name@gmial.com" and sees "Did you mean name@gmail.com?" appear before they even try to submit. One click accepts the correction.

3. Textarea Free

Multi-line input with configurable row count, auto-grow toggle (expands as the visitor types), min/max length validation, and character or word counter.

4. Phone Free: Basic + Pro: International

Free Basic mode enforces a character-set baseline (digits, leading "+", common punctuation; letters always rejected). Pro International mode adds full libphonenumber validation for 240+ countries, a searchable country and dial-code picker, E.164 storage format, and server-side IP geolocation to pre-select the visitor's country. Falls back to Basic mode automatically on a free site.

Use case

A global store uses International mode. A UK visitor sees +44 pre-selected and their number auto-formatted as "+44 7911 123456". The stored value is always E.164 for clean CRM import.

5. Number Free

Native number input with min, max, and step, plus optional plus/minus stepper buttons. Prefix/suffix adornments (for example, "$" or "kg"). Smart Number feature enables formatted display with live thousands-separator grouping (Pro feature flag).

6. URL Free

Validated against PHP's URL filter. Auto-prepend: typing "mysite.com" without a scheme is auto-prefixed with "https://" server-side so a visitor is never shown a validation error just for omitting https.

7. Hidden Free

Stores a static value or a dynamically resolved value from a URL parameter, the logged-in user's profile, or the current date/time. No label, wrapper, or error span is rendered. Excluded from the all-fields merge tag but stored in the entry database for reporting and automation.

Use case

A paid ad landing page URL contains ?utm_source=google&campaign=spring. A Hidden field mapped to "utm_source" captures "google" into every entry from that page, enabling filtering by traffic source in the entries admin.

8. Name (composite, 3 formats) Free

Three formats: Simple (one input), First and Last (two parts always shown), and Extended (First, Last, plus independently toggleable Prefix, Middle, and Suffix). Each part has its own label, placeholder, and help text. Validation errors are attributed to the specific part that failed: "First Name is required" appears under the first name input, not as a single error for the whole group. Parts stored as separate database rows for CRM integration.

9. Select (Dropdown) Free + Searchable and Multi-select Pro

Standard dropdown with option groups, configurable placeholder option, and per-option pricing for Calculated Field formulas. Pro adds searchable dropdown and multi-select with removable chips. Both degrade to plain single-select on free sites.

Use case

A services form uses multi-select so clients choose multiple service categories at once. Each option has a price, feeding a Calculated Field showing the running total.

10. Checkbox (Multi-select) Free + Chips, Addon Rows, Other Pro

Standard list layout, grid modifier, per-option pricing, min/max checked count validation. Pro Display As modes: Chips (compact pill-style options), Addon Rows (priced switch-styled extras with animated toggle per option). "Other" free-text option (optionally numeric) is Pro.

11. Radio (Single-select) Free + Cards, Segmented Buttons, Other Pro

Standard list with per-option pricing. Pro adds Cards display (each option becomes a card with optional image, badge label, visible price), Segmented Buttons (compact button-group for short option lists), and "Other" free-text option.

Use case

An agency quotation form uses Radio in Cards mode with three pricing tiers. Each card shows an image, plan name, and price. The selected option's price feeds a Calculated Field.

12. Rating Free

Star rating with configurable max (1 to 10 stars), half-star mode (0.5 step), and configurable default. Pure CSS hover and fill effect with no JavaScript dependency. Fully keyboard-accessible. Server-side validation rejects tampered values and off-grid ratings.

Pro Field Types (8)

13. File Upload Pro

Async pre-upload: the file is validated and quarantined when selected, not when the form submits. Submitted value is an opaque server token, preventing token replay across submissions. Two display styles: Choose File button, or Dropzone (drag-and-drop, keyboard-operable). Multi-file with configurable max count. Per-extension allow-list. Size limit in MB. Every file passes a six-layer security pipeline before storage.

Use case

A recruitment form accepts PDFs and DOCX files up to 5MB, maximum 2 files. ZIP export bundles the actual files alongside the CSV so nothing needs manual re-downloading.

14. Date and Time Picker Pro

Three picker types: Date and Time, Date only, or Time only. Five date format presets or a custom PHP format. Three time format presets or custom. Locale auto-detected from WordPress language with RTL support. Per-weekday disabling. Disable past dates, disable today. Min/max date (fixed or a relative offset, for example "no earlier than today plus 2 days", resolved server-side). Explicit available-dates and unavailable-dates lists. Inline always-open calendar mode. Disable past times, min and max time of day, configurable time step (for example, 30-minute increments). All constraints re-enforced server-side. Dedicated calendar Design tokens for full visual control.

Use case

A photography studio booking form disables Sundays, all past dates, and sets a 7-day minimum booking lead time with 60-minute time steps from 09:00 to 17:00. Only valid slots appear in the picker.

15. Legal Consent (Accept) Pro

A mandatory GDPR or ToS checkbox. Always required by design. Separate Consent Text field from the identifying Label so the entries table column stays short. Consent text supports inline anchor tags linking to a privacy policy, sanitized via WordPress's own safe HTML function.

Use case

A lead generation form for a regulated industry includes "I agree to the Privacy Policy and consent to being contacted." The accepted consent text is stored in the entry for audit purposes.

16. Section Break Pro

Display-only. Submits no value, excluded from validation, storage, CSV, analytics, and merge tags. Optional heading, optional sub-text (with compact inline-box mode and alignment control), optional badge (short label like "Step 1"), and an optional divider line in 7 positions: below, above, both, flanking, underline, left accent bar, right accent bar. Optional anchor ID for in-page linking.

Use case

A multi-section application form uses three Section Break fields with left accent bars in the brand color and step number badges to visually separate Personal, Professional, and Documents sections.

17. Address (composite, country-aware) Pro

Six independently show/hideable sub-fields: Address Line 1, Address Line 2, City, State/Province, Postal Code, and Country. Country selection updates the State control (curated dropdown or free text per country), updates the Postal Code label, and applies per-country postal validation. Line 2 uses a native HTML details/summary disclosure with no JavaScript. Server-side IP geolocation pre-selects the visitor's country. Postal code validated against the submitted country. Stored as separate rows per sub-field.

18. Slider (Range) Pro

Native range input with a live value badge, configurable min/max/step and default value, prefix/suffix on the live value display. Track color (active and empty), height, and radius are Design tab tokens. Filled-track percentage computed server-side on first paint for no flash-of-unstyled-slider. Element order (header/track/footer) controllable via flex order.

Use case

A budget inquiry form has a Slider from $500 to $50,000 in $500 steps with a "$" prefix. The selected value feeds a Calculated Field that adjusts a recommended service tier.

19. Toggle (Yes/No Switch) Pro

CSS-only animated switch. Custom On/Off label text. Optional visible on/off state text beside the switch. Configurable default state. Optional price contribution to Calculated Field formulas (counted only while on). Optional subtext line. Stored value is always "yes" or "no".

Use case

A service booking form has a "Rush delivery" toggle that adds $75 to the Calculated Field total when switched on. Subtext reads "Ready within 48 hours instead of 7 days."

20. Calculated Field (Formula Output) Pro

Read-only live running total computed by a visual formula builder referencing other fields by ID. Supports addition, subtraction, multiplication, division, and parentheses. Nested Calculated fields work up to 8 levels deep. Priced choice options, Number, Slider, and Rating fields all feed into formulas. Always tamper-proof: the displayed value is computed in the browser for UX, but the stored and charged number is always recomputed server-side from the raw submitted values. A visitor cannot alter the hidden input to change what is stored or charged. Division by zero resolves to 0.

Use case

A print shop order form has a Quantity number field, a Paper Size radio field (A4: $0.10/sheet, A3: $0.18/sheet), and a Lamination toggle (+$0.05/sheet). Formula: Quantity times (Paper Size price plus Lamination price). A visitor selecting 500 A3 sheets with lamination sees "$115.00" update live. The same $115.00 is what Stripe charges, re-derived server-side.

2. Field UX: Labels, Placeholders, Help Text, Icons, and Counters

Every field exposes a consistent set of text and UX options available on all 20 types.

Labels

Labels are optional. When present, a proper HTML label element linked to the field's input by ID is rendered for accessibility. When left blank, the label element is omitted entirely, not just hidden. Label position can be Top (default, stacked above the field) or Inline (label and control side by side). Required fields get an automatic asterisk indicator, independently styled in the Design tab.

Custom Placeholder Text

Every field accepts custom placeholder text visible inside the input before the visitor types. Styled independently via the Brand Colors Placeholder Text token or the Font Styles Design group. Supports responsive and hover-state variants through Divi's standard controls.

Help Text

An optional help text line appears below the field input, wired into aria-describedby so screen readers read it alongside the field label. When a character counter is also active, they share one combined line rather than stacking.

Use case

An email field has help text: "Use your company email address. If you do not have one, use your personal email." Screen readers announce this automatically when the visitor focuses the field.

Field Icons Pro

Any field can display a decorative icon beside the label or inset left or right inside the input box. Color and size are Design tab tokens. Composite fields like Name and Address give each sub-part its own glyph while sharing one placement, color, and size setting at the parent level.

Character and Word Counters

A live "used / max" counter below the field when enabled. Character mode or word mode. Available on Text, Textarea, and any open-text field. Shares one line with help text when both are active.

Prefix and Suffix Adornments

Text adornments appear outside the input box, attached to the left or right side: currency symbols, units, context labels. Stackable with a field icon on either side. Both have independent Design tab styling.

3. Conditional Logic: Show or Hide Fields Based on Answers

Conditional logic is available on all 20 field types on both free and Pro plans. Any field can be shown or hidden based on the value of any other field on the same form. This feature is available in the free tier with the full operator set.

9 Comparison Operators

  • Is and Is Not: exact match or mismatch.
  • Contains and Does Not Contain: partial text match.
  • Starts With and Ends With: prefix/suffix match.
  • Is Empty and Is Not Empty: presence check.
  • Is Greater Than and Is Less Than: numeric comparison.

Multi-value source fields (checkbox groups, multi-select) are handled correctly: "Is" and "Contains" check membership in the selected set, "Is Empty"/"Is Not Empty" check whether any option is selected at all. Multiple rules per field with an ALL or ANY relation. Action is Show or Hide (Hide inverts the rule outcome).

Dual-Layer Enforcement

The same rule logic runs both client-side (instant show/hide, no page reload) and server-side independently at submission time. A visitor cannot force a hidden field's value through by manipulating the DOM. Hidden fields are excluded from validation server-side, so a hidden required field never blocks submission. This same evaluator is reused for notification block conditions and conditional success messages.

Use case: Department routing

A support form has a Radio "What is your issue type?" with options: Billing, Technical, Other. Three Textarea fields are each set to show only when the Radio matches their topic. The visitor sees one message field at a time. Hidden Textareas are excluded from validation entirely.

Use case: Conditional date picker

A real estate enquiry form shows a "Preferred Viewing Date" Date field only when "I would like to arrange a viewing" is selected. When any other option is selected, the date field disappears and its required validation is suspended automatically.

4. Dynamic Prefill: Fields That Fill Themselves

Any field can be prefilled from one of three sources. Resolution happens entirely client-side so a cached page never leaks one visitor's data to another.

  • URL query parameter: maps the field to a named URL parameter. The default key is the field's own ID when left blank.
  • Logged-in user profile: maps to the current user's first name, last name, email, display name, or other profile data. Blank for logged-out visitors.
  • Now: pre-sets a Date or Date/Time field to the current moment when the form loads.
Use case: Email campaign prefill

An email campaign links to a quote form with ?name=Sarah&email=sarah@company.com in the URL. The Name and Email fields are prefilled automatically. Sarah sees a form that already knows who she is, reducing friction and increasing completion rate.

Use case: Members-only form

A logged-in members' feedback form prefills Name from the user's WordPress display name and Email from their account email. They only fill the actual feedback fields.

5. Calculated Field and Per-Option Pricing

The Calculated Field is one of HappyDivi Form's most distinctive features. Nothing equivalent exists in Divi Contact Form Helper or Divi's own contact form.

Per-Option Pricing

Select, Checkbox, and Radio fields let you assign a numeric price to each option in the visual options editor. The price is available to the formula engine. Toggle fields have a single price that contributes only when the toggle is on. Multi-select and checkbox fields sum the prices of all selected options.

Formula Engine

Formulas are built using a visual interface referencing sibling fields by name. The parser supports addition, subtraction, multiplication, division, and parentheses. Nested Calculated fields work up to 8 levels deep with a cycle guard. Division by zero returns 0.

Tamper-Proof Server Recomputation

When a form is submitted, every Calculated field's submitted value is unconditionally overwritten server-side. A visitor editing the hidden input or modifying JavaScript pays the correct amount regardless. This is what makes Stripe payment amounts trustworthy.

Use case: Insurance lead form

A Slider captures "Number of employees" (1 to 500). A Radio captures "Coverage level" (Basic: $12/employee, Standard: $18/employee, Premium: $28/employee). A Calculated Field shows the monthly premium estimate: employees times coverage price. The account manager follows up knowing the ballpark cost already.

6. Validation: Custom Error Messages and Dual-Layer Enforcement

Divi's contact form shows a generic error at the top of the page with no indication of which field failed. HappyDivi Form places every error directly under the field that caused it, in text you write yourself.

Per-Field Custom Error Messages

Every field has two independent message slots. The Required message appears when a required field is left empty. Default is "This field is required." You can write "Please enter your email so we can get back to you." The Invalid format message appears when a value is present but fails validation. Placeholders {min}, {max}, and {count} are substituted with the actual configured values in both messages.

Composite Field Error Attribution

For Name and Address fields, errors are attributed to the specific sub-part that failed. "First Name is required" appears under the first name input. "Postal Code is not valid for the selected country" appears under the postal input.

General Validation Message

A form-level custom message shown above the field-level errors when any field fails. Useful for a branded, reassuring message like "Please check the fields below and try again."

Show Error Summary Toggle

Suppresses the top-of-form error banner for field-level validation failures (since inline errors cover that case). System-level errors (CAPTCHA failure, server error) always show a banner regardless, since they have no inline fallback.

Live Validation on Blur Pro

Each field is validated the moment the visitor moves focus away from it. A green check or a red error message appears immediately, before the visitor reaches the submit button.

Dual-Layer Architecture

Client-side validation runs first for instant feedback. Server-side validation runs independently every time, regardless of what the browser reported. All field errors are collected before returning, so a visitor fixes every mistake in a single round-trip.

7. Email Notifications: CC, BCC, Routing, and Conditional Logic

Email is where HappyDivi Form most dramatically outpaces every competitor in the Divi ecosystem. The free tier includes what most plugins charge for. Pro adds a notification system that matches Gravity Forms in depth.

Free Tier: Two Notification Blocks Per Form

Every form automatically has an Admin Notification and a Confirmation Email to the submitter. Both are configurable via global Settings and support full merge tags.

Pro Tier: Unlimited Per-Form Notification Blocks

An unlimited, ordered repeater of fully independent per-form notification blocks. Each block has its own:

  • Enabled toggle: turn a block on or off without deleting it.
  • Send To type: a fixed email address, the site admin, the submitter's email (auto-detected), or the selected value of a specific Radio, Select, or Checkbox field. Field-based routing is deliberately restricted to choice fields, never free-text fields, so a submitter cannot inject arbitrary recipients by controlling both the routing and the message body.
  • CC and BCC recipients: comma-separated lists, each validated individually.
  • Custom From Name and From Email: overrides the site-wide default for this block.
  • Reply-To: always auto-set to the submitter's email, so replying to an admin notification goes to the submitter automatically.
  • Subject and Body: fully merge-tag aware via the inline merge-tag picker.
  • Attach Files toggle: includes every uploaded file from the submission.
  • Conditions: send this block only when specified field values match a rule set. Same 9 operators. A skipped block is recorded in the notification history, not silently dropped.

Real-World Routing Examples

Use case: Department routing

A company contact form has a "Department" dropdown: Sales, Support, Billing, Press. Four notification blocks are configured, each matching one department and routing to the correct team email. The Support team never receives a Sales enquiry.

Use case: VIP lead alerting

A lead form has a "Budget" Slider. One notification block has the condition "Budget is greater than 10000". When a visitor selects a budget over $10,000, an extra notification fires to the sales director's personal email in addition to the standard team notification.

Use case: Event registration with CC

A workshop registration form CC's the workshop host on every registration and BCC's the event coordinator. Three recipients per submission, zero manual work per submission.

Merge Tags

Available in email subjects, bodies, and success messages. Includes %%field_{id}%% for any field value, %%hdf_all_fields%% for a formatted table of all submitted fields, %%hdf_entry_number%%, %%hdf_form_title%%, %%hdf_page_title%%, %%hdf_page_url%%, %%hdf_date%%, %%hdf_time%%, %%hdf_ip%%, and %%hdf_user_agent%%. Unknown tags are left literally in place so an old template referencing a future tag never silently loses data.

Conditional Content in Emails Pro

The {{if field operator "value"}}...{{else}}...{{/if}} syntax includes or excludes blocks of text based on submitted values. A malformed block degrades to visible literal text so a typo is safe.

Use case

A confirmation email includes a conditional block: if service equals "Photography", the email says "Your photographer will contact you within 24 hours to discuss style preferences." For any other service, it says "Our team will respond within 2 business days." One template handles both cases.

Recipient Deduplication

If the same address appears in more than one of To, CC, and BCC slots on the same block, it is kept in the first slot (To takes priority over CC, CC over BCC) and dropped from the rest. No duplicate sends.

Async Delivery Queue

Emails are never sent synchronously inside the submission request. They are queued first and the queue drains every 60 seconds with an immediate opportunistic trigger right after enqueueing. Failed sends retry automatically with backoff, up to 3 attempts. Retry attempts are non-blocking for the visitor's response.

Four Email Delivery Providers

WordPress default wp_mail, custom SMTP (encrypted credentials), Brevo, and Postmark. The plugin detects FluentSMTP, WP Mail SMTP, Easy WP SMTP, Post SMTP, SendGrid, and Mailgun, and defers to whichever is already active so two SMTP configurations never conflict over the same PHPMailer instance.

Email Branding Pro

Logo with configurable max width, footer closing line, footer signature with optional image in four positions (left/right as a 2-column table, above/below as a stacked block), and a social links row for Facebook, Twitter/X, Instagram, LinkedIn, and YouTube. Rendered as gradient pill badges with a flat-color fallback for Outlook.

Notification History and Resend

Every send attempt is logged per entry: recipient, delivery status, timestamp, and real error message if it failed. Visible in the entry detail view and on the site-wide Email Log admin page. A Resend button rebuilds the email from stored entry data and the form's current settings, so a corrected template or SMTP configuration is used on resend.

8. Entries: How Every Submission Is Stored and Managed

Divi's contact form stores nothing. If the email bounces, the lead is gone. HappyDivi Form saves every entry to custom database tables before the email even leaves the server. This is fully available on the free tier.

Custom Database Tables

Entries are stored in 9 dedicated tables built specifically for this purpose, not as WordPress post meta or custom post types. Every field value is its own database row, so individual fields are independently queryable and exportable. The entry itself (status, IP, UTM, page context, user ID) sits in one table, and the field values sit in a separate meta table. This means a new field type can define its own storage shape without touching the storage layer, and deletes cascade automatically across related tables.

Entries Admin Inbox

A triage-style inbox with status tabs covering All, Unread, Read, Starred, Spam, and Trash. Payment lifecycle states (pending, paid, failed, refunded) are kept off this tab bar and live on the separate Orders page, so a non-payments site's Entries screen stays uncluttered. Filter by form (grouped by title), filter by date range with an explicit "All Time" option. Bulk actions include Star, Unstar, Trash, Restore, and permanent Delete (offered only from the Trash tab). Unread rows are visually highlighted.

Entry Detail View

Each entry detail view shows the form it came from, submission date, quarantine reason (if applicable), payment summary (if applicable), IP address, and the source page URL. Submitted fields display as a formatted table per field type: composite fields like Name and Address are assembled into readable rows, multi-line text renders with real line breaks. File download links appear for uploaded files, secured by a capability-gated REST endpoint. Viewing an entry marks it read automatically. The Notification History panel logs every send attempt for that entry with a one-click Resend option.

Spam Quarantine

A submission blocked by a soft spam signal is saved to Entries with status "spam" and the specific signal(s) recorded in plain English. It is not silently discarded. One click restores a false positive to "unread". The submitter always sees an identical success response whether their submission was quarantined or not, so bots cannot learn what caught them.

UTM and Page Context Capture

Every entry automatically captures utm_source, utm_medium, utm_campaign, the page ID, the page URL, and the referring URL. No extra configuration needed. This is stored in the entry row, not in a separate meta table, so it is always present in the entries list without extra joins.

CSV and ZIP Export Pro

Export respects whatever filters are currently active: status, form, and date range. CSV headers are the union of every distinct field label across the exported entries, so exports spanning multiple forms work correctly. ZIP export bundles the CSV alongside every uploaded file referenced by the exported entries, named descriptively (entry ID, field name, original filename). The export is streamed directly to the browser, never buffered in PHP memory, so large exports complete reliably. Every CSV cell value is guarded against spreadsheet formula injection. A UTF-8 BOM is emitted first so Excel correctly detects encoding for accented characters.

GDPR and Privacy Tools

WordPress-native Personal Data Exporter and Eraser are registered, so any admin can fulfill right-of-access and right-to-erasure requests through the standard WordPress Tools screen. IP handling is applied at write time: full IP, anonymized last octet, or no IP at all, per the site's configured policy. Never stored full and redacted later. Suggested privacy policy text is auto-appended to WordPress's Privacy Policy guide, adapting its wording to the site's actual configured settings (only mentioning the localStorage analytics flag when Full recognition mode is actually turned on).

Entry Retention Auto-Delete Pro enforcement, visible on every tier

A global retention window in days, with a per-form override (Use Global Default, Keep Forever, or Delete After N Days configured in the parent module's Form Settings). Entries are purged automatically by a daily background job. The setting is visible and savable on the free tier so a site owner can configure it before upgrading, and it takes effect immediately on upgrade without any reconfiguration.

9. Spam Protection and Security

HappyDivi Form runs 12 independent spam signals on every submission. Rather than rejecting on the first signal that fires, all signals run and contribute a weighted score. A submission only reaches the spam quarantine when the combined score passes a configured threshold. This catches submissions that narrowly pass each individual check but look suspicious in combination, which a simple first-signal-rejects-all design cannot see. Both the per-signal weights and the overall threshold are filterable for site-specific tuning.

The 12 Spam Signals

  1. Nonce verification. A real block. Forging a valid WordPress nonce is not feasible for a bot.
  2. Minimum time with HMAC-signed timestamp. A submission arriving under 3 seconds from page load is a spam signal. The render timestamp is HMAC-signed so a direct-POST bot cannot fabricate a valid elapsed time.
  3. Per-IP rate limit. A real block. Default 5 submissions per form per IP per minute, admin-configurable.
  4. Per-form global rate ceiling. A real block. A backstop against volume abuse spread across rotating IPs. Default 60 per minute per form, logged separately from per-IP blocks so an admin can tell the two apart.
  5. Honeypot field. Randomized per-render using an HMAC-derived name, not a fixed pattern a bot familiar with the plugin could learn to skip. Hidden via CSS, never as type="hidden" (which bots specifically skip filling).
  6. JS-execution proof. Opt-in. A cryptographic challenge proving the visitor's browser executed JavaScript. Failures are soft signals, never hard blocks, because a real visitor with JavaScript disabled should not be locked out.
  7. Email blocklist. Admin-curated exact addresses or @domain.com patterns.
  8. Disposable email domain detection. Checks against a bundled list of temporary email providers. On by default. Near-zero false positives since no legitimate follow-up is possible with an address that expires in minutes.
  9. Keyword blocklist. Admin-curated terms that trigger a spam signal when found in any text field.
  10. Link detection. Configurable maximum link count across all text fields. Off by default.
  11. Duplicate submission by email. Configurable time window. Off by default.
  12. Content-hash duplicate detection. Hashes all text field values together, catching a spam blast that rotates the sender's email but repeats the same message body. Off by default.

CAPTCHA Pro

Three providers: Cloudflare Turnstile (with Appearance Mode: Managed, Non-interactive, or Invisible, and Theme: Auto, Light, or Dark), reCAPTCHA v3 (score-based, invisible, configurable score threshold), and hCaptcha. CAPTCHA always runs last, after all free local checks, so an expensive outbound HTTP call is not made for submissions that local checks would quarantine anyway. Fail mode is admin-configurable: allow through or hard block when the provider is unreachable. A provider configured with only one key is treated as off, never as an unpassable block. Secrets are stored encrypted at rest, decrypted only at verification time.

File Upload Security Pipeline

Every uploaded file passes six checks before storage, regardless of how the field's allow-list is configured:

  1. Every dot-segment of the filename checked against a permanent, non-overridable blacklist: php, php3-7, phtml, phar, exe, sh, bat, cmd, js, svg, html, asp, jsp, and more. Catches double-extension tricks like "shell.php.jpg".
  2. Extension must be in both the field's admin-configured allow-list and the plugin's hardcoded safe extension-to-MIME map. A field cannot be configured to accept an unrecognized extension at all.
  3. Real-content MIME sniffing via raw-byte inspection. Catches "shell.php renamed to shell.jpg".
  4. MIME variance tolerance: each extension maps to an array of accepted sniffed types, not a single exact string, because real-world encoders disagree (a genuine DOCX often sniffs as application/zip, a genuine CSV often sniffs as text/plain).
  5. OOXML structural verification: DOCX, XLSX, and PPTX files that sniff as generic ZIP are verified against their internal marker files. An arbitrary ZIP renamed to .docx is still rejected.
  6. Size ceiling, enforced after all content checks.

Files are stored under cryptographically random filenames (128 bits of entropy). The only download path is a capability-gated REST route with a forced attachment disposition. Files are never directly web-accessible. The upload directory .htaccess deny-all file is checked and restored automatically whenever missing, surviving migrations, security plugin "cleaning" jobs, or raw folder copies between environments.

General Security Hardening

Nonce and capability check on every admin and REST action. Every output escaped at render time. Every database query parameterized, every LIKE term escaped. All API keys, SMTP passwords, Stripe keys, and CAPTCHA secrets stored encrypted at rest, decrypted only at call time. A spam check never reveals its specific reason to the submitter, only to the admin in the Spam tab.

10. Stripe Payments Pro

HappyDivi Form includes a complete Stripe payment system with no separate plugin and no WooCommerce dependency.

Core Design: Tamper-Proof by Construction

The charged amount is always computed server-side. In Fixed price mode, it is an admin-set constant that never touches the form. In "From a form field" mode, it is re-evaluated server-side from the raw submitted values using the same formula evaluator as the Calculated Field. A visitor who edits the hidden price input or manipulates JavaScript pays the correct amount regardless. Card data never touches your server (no PCI scope). The payment status only ever advances via a signature-verified webhook, never via the visitor-facing return URL.

Submission Flow

A payment-gated submission is saved to the database immediately as "pending". Notification emails are withheld until Stripe's webhook confirms payment. On confirmed payment, the entry status updates to "paid" and notifications fire. An abandoned checkout leaves an entry in the database as "pending" with no email sent and no notification triggered.

Reliability

An hourly cron reconciles any submission stuck as "pending" for more than 25 hours by checking the gateway directly. A lost webhook self-heals within an hour. A manual "Check Status" button in the entry view lets an admin unstick a specific payment immediately. Refunds can be issued with one click from either the Orders page or the entry detail view. Every status transition fires an extensibility hook only on a genuine state change, so duplicate webhook deliveries are safe no-ops.

Auto-Webhook Setup

Saving a Stripe key registers the plugin's webhook endpoint with Stripe's API automatically. No manual setup in the Stripe dashboard. Test and Live modes are kept fully separate with their own key pairs.

Use case: Photography session booking with payment

A photographer's booking form uses Radio Cards to select a session package (Mini: $250, Standard: $450, Premium: $800). The visitor selects a date using the Date field, chooses their package, and submits. They are redirected to Stripe's hosted checkout. On confirmed payment, the photographer receives an admin notification with the booking details and the client receives a confirmation email with their session date and package. The Orders page shows every booking with payment status at a glance.

11. Form Analytics

Analytics recording runs on every plan, free and Pro. The analytics dashboard is Pro-only. This means when you upgrade, historical data is already waiting in the dashboard from the first day the plugin was installed.

Cookieless by Design

No cookies, no localStorage by default, no IP addresses stored, no user-agent stored. Visitor recognition uses a server-side daily-rotating salted HMAC hash computed per-request and never stored in reversible form. Two optional switches: Anonymous mode (default, same-day deduplication from the rotating hash) and Full mode (adds a small first-party localStorage flag for cross-day returning-visitor detection, disclosed in the auto-generated privacy policy text). Submissions are always counted server-side inside the submission handler, never client-reported, so they cannot be spoofed or blocked by an ad blocker.

What Is Recorded

  • Views: deduplicated within a 30-minute window, classified as New or Returning.
  • Submissions: counted server-side at the exact moment an entry is saved. A true, exact count.
  • Field interactions: which fields a visitor actually reached, batched into a single beacon per flush.
  • Abandonment: the last field a visitor touched before leaving without submitting. The funnel covers every field in form order, including fields with zero drop-off, so the entire path is visible.
  • Peak hour (0-23, site timezone) and weekday distribution.

Analytics Dashboard Pro

  • Headline stats: total Views, total Submissions, Conversion Rate.
  • Trend chart: views and submissions plotted over the selected date range.
  • Peak Hours panel: submission volume by hour of day.
  • New vs. Returning visitor split with percentage breakdown.
  • Top Countries (up to 8) when geo is enabled.
  • Field Drop-off funnel: every field in form order showing how many visitors reached it and how many left without submitting. A visual indicator marks the drop-off share per field so the abandonment bottleneck is immediately obvious.
  • Per-form breakdown table: Views, Submissions, and Conversion Rate per form.
Use case: Drop-off funnel in action

The analytics funnel reveals that 68% of visitors who start a lead form abandon at the "Phone Number" field. Making the phone field optional increases the conversion rate by 22% in the following month. Without the field-level funnel, this bottleneck would have been invisible.

12. Visual Builder: Brand Colors, Design Tabs, and Custom Components

HappyDivi Form is built entirely on Divi 5's native declarative module system with two registered modules: a parent form module and a child form field module. Both use Divi's own Content, Design, and Advanced tab structure, responsive controls, hover states, global presets, and Theme Builder support, with zero custom code required to surface any of it.

Brand Colors System

A single "quick design" panel at the form level, tabbed by Color, Hover, and Focus states. Setting your accent color drives every interactive control: buttons, focus rings, the slider track, the toggle switch, checkboxes, radio buttons, and the star rating. Other Brand Color tokens include field background, field text, placeholder text, field border (at rest and on focus), label text, button colors, and rating star states. Set once, inherited by every field on the form. Individual fields override these defaults where needed. Nothing uses !important, so the cascade remains fully controllable.

Full Design Tab on Every Element

Not just the field input: the label, placeholder text, help text, success message box, error message box, and the submit button each have their own full Font, Background, Border, Box-Shadow, and Spacing controls, all with Divi's standard responsive and hover-state toggles. The cascade is: Brand Colors, then per-element Design groups, then per-instance controls for Pro field types.

Genuinely Responsive Field Width

Full, Half, Third, or Quarter width, resolved against whatever real breakpoints the site has configured, not a hardcoded desktop/tablet/phone assumption. Uses Divi's own Breakpoint API in both the Visual Builder canvas and on the live frontend. Collapses to full width under 640px automatically.

10 Custom Visual Builder Components

Where Divi had no stock control that covered the need, a purpose-built React component was registered into Divi's field-component registry:

  1. Conditional logic rule builder
  2. Calculated Field visual formula builder
  3. Searchable sibling-field picker (used by conditional logic, formula references, payment amount field selector)
  4. Available/unavailable date-list editor for Date/Time fields
  5. Merge-tag single-line input with inline picker
  6. Merge-tag multi-line textarea with inline picker
  7. File upload extension category toggle and per-extension picker
  8. Always-visible inline help note (Divi's own description property is a click-only tooltip; this fills the gap)
  9. Per-form notification block repeater (Pro)
  10. Success Rules ordered editor (Pro)

Live Canvas Preview

The Visual Builder renders the same class-based markup as the published frontend. Dragging fields, changing colors, switching display modes, and toggling conditional logic all update the canvas in real time without a reload.

Auto-Seeded Starter Fields

Adding the HappyDivi Form module to a page automatically inserts default Name, Email, and Message fields via Divi's native template mechanism. A starting form is immediately ready to configure.

Success Rules Pro

An ordered list of conditional success outcomes. The first rule whose conditions match overrides the form's fixed success action with its own message, redirect URL, and delay. Falls through to the form's fixed settings when no rule matches. Uses the same 9-operator rule set as field conditional logic and notification conditions.

Use case: Personalized success messages

A lead scoring form shows different success messages based on the visitor's budget range. Budget under $1,000: "Thanks for your enquiry. We will be in touch within 5 business days." Budget over $10,000: "Thank you. A member of our senior team will call you within 24 hours." Same form, same submit button, two Success Rules.

13. 38 Prebuilt Templates Across 16 Categories

Every template is real, working form JSON, not a screenshot or a marketing mockup. Importing one creates a fully functional Divi section in the Visual Builder's "Add From Library" picker, indistinguishable from a section you saved yourself.

The 16 Categories

Business and Lead Generation, Calculators and Estimators, Events and Community, HR and Recruitment, Service Business, Booking and Scheduling, Healthcare, Insurance, Real Estate, Automotive, Beauty and Fitness, Education, Newsletter and Subscriptions, Non-Profit, Restaurant, Surveys and Feedback.

Automatic Free/Pro Classification

A template's Free or Pro badge is computed automatically at read time by scanning the template's own JSON for any Pro field type or Pro-locked setting. The badge can never drift from reality. If a template is updated to use a Pro feature, the badge updates automatically with no manual bookkeeping.

One-Click Import via Native Divi APIs

Import creates a native Divi layout post directly via standard WordPress core APIs, not reverse-engineered Divi internals. Each field's unique ID regenerates correctly on import so two imported instances of the same form never share an analytics or entries identity. Pro-classified templates are blocked at the server level on free sites, not just hidden in the UI.

14. Developer Surface: REST API, Hooks, and Shortcode

The plugin's core engine knows nothing about Divi. It processes a submission from a plain PHP array and returns a plain PHP array. All Divi-specific code is a thin adapter. A third page builder integration would require zero changes to the core pipeline.

8 Public REST API Endpoints

  • POST /submit: the full form submission pipeline including security, validation, storage, and email queuing.
  • GET /nonce: issues a fresh submission nonce for cache-safe forms. Rate-limited.
  • POST /upload: async pre-upload for File Upload fields, validates and quarantines.
  • GET /download/{token}: capability-gated file download for admin entry views and exports.
  • POST /analytics: cookieless analytics beacon. Nonce-free by design (form may be on a cached page), hardened via event whitelist and per-IP rate limit.
  • POST /payment/webhook/{provider}: signature-verified payment gateway webhook receiver.
  • GET /payment/status/{token}: payment status lookup by opaque return token.
  • POST /notifications/preview: backend for the Preview and Test admin tool.

26 Extensibility Hooks

Custom hdf_* actions and filters covering every stage of the pipeline:

  • Submission: hdf_field_errors, hdf_before_submission_saved, hdf_entry_data, hdf_after_submission_saved, hdf_after_emails_sent, hdf_entry_status_changed, hdf_delete_entry_data.
  • Fields: hdf_register_field_types (register an entirely new field type), hdf_address_country_data.
  • Email: hdf_email_provider, hdf_email_subject, hdf_email_body, hdf_email_message, hdf_merge_tags, hdf_email_drain_concurrency, hdf_smtp_timeout.
  • Payments: hdf_payment_provider, hdf_payment_gateways, hdf_payment_completed, hdf_payment_failed, hdf_payment_refunded.
  • Security and analytics: hdf_spam_signal_weights, hdf_spam_quarantine_threshold, hdf_rate_limit_form_max, hdf_trusted_proxies, hdf_visitor_country.

Shortcode Fallback

renders any form built in Divi in a Classic Editor post, text widget, or anywhere else shortcodes run. Reads from the same durable form definition the Divi module writes, so the form and its settings are always consistent regardless of where it renders.

Cache-Safe Architecture

A dedicated /nonce endpoint issues a fresh submission nonce on every page load so full-page caching plugins (LiteSpeed, WP Rocket, Cloudflare) can serve cached HTML without breaking form submission. The form's own settings config is resolved with a 7-day transient-then-durable-option fallback so submissions and file uploads on long-cached pages always find the correct field definitions.

15. Free vs. Pro: What You Get on Each Tier

Free is a real licensed tier, not a crippled trial

HappyDivi Form's free tier has a real license, a real activation, and no time limit. Pro adds specific field types, specific display modes, deeper automation, payments, CAPTCHA, and the analytics dashboard. It does not withhold a second-class core experience from free users.

Everything Included on Free

  • 12 field types: Text, Email, Textarea, Phone (Basic), Number, URL, Hidden, Name (all 3 formats), Select (single), Checkbox (standard list), Radio (standard list), Rating (including half stars).
  • Full Divi 5 Visual Builder with Brand Colors, Font Styles, Button Settings, and full Design tab on every element.
  • Conditional logic on all fields: all 9 operators, ALL/ANY relation, dual-layer enforcement.
  • Dynamic prefill from URL, logged-in user profile, and current date/time.
  • Custom validation messages with placeholder substitution, composite field error attribution.
  • All entries stored in custom database tables before the email leaves the server.
  • Full Entries admin with status tabs, triage actions, bulk actions, filters, and date range picker.
  • Admin notification and confirmation email per form, with full merge tags.
  • 4 email delivery providers: wp_mail, SMTP, Brevo, and Postmark.
  • Async email queue with retry backoff. Third-party SMTP plugin detection.
  • Email delivery log and one-click Resend per entry.
  • 12 spam signals including honeypot, timing, blocklists, duplicate detection, and rate limiting.
  • Full 6-layer file upload security pipeline.
  • WordPress-native GDPR tools: Personal Data Export, Personal Data Erase, IP handling policy, auto-generated privacy policy text.
  • Analytics recording from day one (dashboard is Pro-only, but data collects immediately).
  • All 8 REST routes and all 26 extensibility hooks.
  • Shortcode fallback for non-Divi pages.
  • 38 templates (Free-classified ones importable on free plan).
  • Preview and Test admin tool for pre-send notification testing.
  • Dashboard, Email Log, and all 4 Settings tabs (Pro-only fields visible so choices persist across an upgrade).

Added on Pro

  • 8 Pro field types: File Upload, Date/Time, Legal Consent, Section Break, Address, Slider, Toggle, and Calculated Field. Pro
  • Pro capabilities on Free field types: Phone International mode, Select searchable and multi-select, Checkbox Chips/Addon Rows/Other, Radio Cards/Segmented Buttons/Other, Field Icons on any field. Pro
  • Smart Field features: Email typo suggestion and disposable detection, Smart Name, Smart Number, Smart URL, Smart Autofill, Live Validation on blur, Auto-Format input masks. Pro
  • Unlimited per-form notification blocks with CC/BCC, conditional routing, field-based recipient routing, custom From, Attach Files toggle, and block-level conditions. Pro
  • Conditional content inside email bodies and subjects using the {{if}}...{{/if}} syntax. Pro
  • Email branding: logo, footer signature with optional image, social links row (Facebook, Twitter/X, Instagram, LinkedIn, YouTube). Pro
  • Success Rules: conditional success messages and redirects based on form answers. Pro
  • CSV and ZIP export, filter-aware and streamed. Pro
  • Automatic entry retention and deletion enforcement with per-form overrides. Pro
  • Stripe payments: hosted checkout, tamper-proof server-side amounts, auto webhook setup, hourly reconciliation, manual Check Status, one-click Refund, Orders admin page, deferred post-payment notification dispatch. Pro
  • CAPTCHA: Cloudflare Turnstile (with Appearance Mode and Theme controls), reCAPTCHA v3, hCaptcha. Pro
  • Full analytics dashboard: trend chart, Field Drop-off funnel, Peak Hours, New vs. Returning split, Top Countries, per-form breakdown table. Pro
  • All 38 templates importable. Pro

16. Full Comparison: HappyDivi Form vs Divi Contact Form vs Divi Contact Form Helper

This comparison uses only verified information from each plugin's documentation and codebase. HappyDivi Form is the plugin this article covers. Divi Contact Form is the built-in module from Elegant Themes. Divi Contact Form Helper (CFH) is the plugin by Pee-Aye Creative that adds settings to the Divi Contact Form module. The CFH feature list is sourced from the official Pee-Aye Creative feature comparison page, updated June 2026.

A note on architecture

Divi Contact Form Helper is an add-on to the Divi Contact Form module, which uses the Divi 4 module system. HappyDivi Form is built from scratch on the Divi 5 native module system with no Divi 4 dependency. This architectural difference affects Visual Builder behavior, live preview accuracy, long-term Divi 5 compatibility, and the ability to add genuinely new field types as first-class Divi child modules.

Feature HappyDivi Form Divi Contact Form Contact Form Helper
Architecture
Divi 5 support✓ Purpose-built new module✓✓ v2.0, adds settings to existing module
ApproachBrand new parent + child modules, full layer panelNative moduleExtends Divi's own Contact Form module with extra settings
Zero jQuery dependency✓Depends on Divi✗
Cache-safe submission (dedicated nonce endpoint)✓ Free✗✗
Field Types
Total distinct field types20 (12 Free + 8 Pro)6~10 with plugin
Text, Email, Textarea, Phone, Number, URL✓ Free✓✓
Select / Dropdown with option groups✓ Free✓✓
Checkbox and Radio fields✓ Free✓✓
Name field (composite, 3 formats incl. Extended)✓ Free✗✗
Hidden field with dynamic prefill✓ Free✗URL only, partial
Rating field (with half-star mode)✓ Free, pure CSS✗✓
File Upload fieldPro✗✓
Date and Time picker (full constraint set)Pro✗✓
Address field (composite, country-aware, 6 sub-fields)Pro✗✗
Calculated field (visual formula builder)Pro✗✗
Slider / Range field with live value badgePro✗✗
Toggle (Yes/No switch, animated CSS)Pro✗✗
Legal Consent / GDPR mandatory checkboxPro✗✗
Section Break (display, 7 divider positions, badge, anchor)Pro✗✗
Digital Signature field✗✗✓
HTML "anything" field✗✗✓
Field UX and Pro Display Modes
Custom placeholder text per field✓ Free✗✓
Custom label text per field✓ FreePartial✓
Help text / field description (HTML supported)✓ Free✗✓
Field icons with Design tab stylingPro✗✓
Prefix and suffix text adornments✓ Free✗✗
Character and word counter✓ Free✗✓
Per-option pricing on Select/Checkbox/Radio✓ Free✗✗
Radio: Cards and Segmented Buttons display modesPro✗✗
Checkbox: Chips and Addon Rows display modesPro✗✗
Select: searchable dropdown and multi-select with chipsPro✗✓
Phone International mode (libphonenumber, country picker)Pro✗Custom formatting only
Brand Colors system (form-wide design tokens)✓ Free✗Focus border only
Full Design tab on label, placeholder, help, button, messages✓ FreeLimitedPartial per-element
Form Logic
Conditional field show/hide (9 operators, ALL/ANY)✓ Free✗✗
Server-side conditional enforcement (not JS-only)✓ Free✗✗
Dynamic prefill from URL, user profile, and current date✓ Free✗URL only, partial
Custom validation messages per field (Required and Invalid)✓ Free✗✓
Inline per-field error messages (not top-of-form)✓ Free✗ Top-of-form only✓
Live validation on blur (instant feedback per field)Pro✗✗
Composite field error attribution per sub-part✓ Free✗✗
Calculated field with tamper-proof server recomputationPro✗✗
Success Rules (conditional success messages per answer)Pro✗✗
Entries and Storage
Stores submissions in database✓ Free✗✓
Custom database tables (not CPT or postmeta)✓ Free, 9 tables✗✗ Uses postmeta
Entry status tabs (Unread, Starred, Spam, Trash)✓ Free✗Mark unread only
Spam quarantine (stored, not silently discarded)✓ Free✗✓
UTM and source page capture on every entry✓ Free✗✓
CSV export (filter-aware, streamed, injection-guarded)Pro✗✓
ZIP export (CSV bundled with uploaded files)Pro✗✗
Auto-delete entries after N days (global + per-form)Pro enforcement✗✓
Convert entry to WordPress post✗✗✓
Reply to entries from admin✗✗✓
Auto-backup entries to email✗✗✓
Limit number of entries per form✗✗✓
Email and Notifications
Admin notification email✓ Free✓✓
Confirmation email to submitter✓ Free✗✓
CC and BCC recipientsPro✗✓
Custom From Name and From Email per blockPro✗✓
Conditional email routing (field-based recipient)Pro✗✓
Unlimited notification blocks with independent conditionsPro✗✗
Conditional content in email body ({{if}} syntax)Pro✗✗
Merge tags in subject and body✓ Free, 12+ tagsForm ID only✓ 30+ tags
Async email queue with retry backoff✓ Free✗✗
Email delivery log with real error messages✓ Free✗✗
Per-entry notification history and Resend✓ Free✗✗
4 email delivery providers (wp_mail, SMTP, Brevo, Postmark)✓ Freewp_mail onlySMTP + wp_mail
Detects and defers to 3rd-party SMTP plugin✓ Free✗✗
Email branding (logo, footer signature, social links)Pro✗Email templates only
Attach uploaded files to emailPro✗✓
Deferred notifications until payment confirmedPro✗✗
Spam Protection and Security
Honeypot protection (randomized, HMAC-derived name)✓ Free✗✓
Timing-based spam detection (HMAC-signed timestamp)✓ Free✗✗
Email and keyword blocklists✓ Free✗✓
Disposable email domain detection (bundled list)✓ Free✗✗
Per-IP and per-form rate limiting✓ Free✗✗
Content-hash duplicate detection✓ Free✗✗
Cumulative spam scoring (12 signals combined)✓ Free✗✗
Cloudflare Turnstile CAPTCHAPro✗✓
reCAPTCHA v3 (invisible, score-based)Prov2 checkboxv2 checkbox
hCaptchaPro✗✗
6-layer file upload security pipeline✓ Free✗Basic checks
Encrypted API/SMTP/Stripe key storage at rest✓ Free✗✗
Payments
Stripe payments (hosted checkout, no PCI scope)Pro✗✗
Tamper-proof server-side payment amountPro✗✗
Dynamic amount from form fields (formula-driven)Pro✗✗
Auto webhook setup and hourly reconciliation cronPro✗✗
One-click refund from adminPro✗✗
Orders page (separate from Entries)Pro✗✗
Analytics
Form view and submission count recording✓ Free (recording)✗✓
Conversion ratePro dashboard✗✓
Field drop-off funnel (every field, not just abandonment fields)Pro dashboard✗✗
Peak hours and weekday distribution analysisPro dashboard✗✗
New vs. Returning visitor splitPro dashboard✗Unique views (cookie)
Cookieless, GDPR-compliant analytics by default✓ Free✗Cookie-based
Analytics data collects before Pro upgrade✓ Free✗✓
Developer and Integrations
Zapier or Pabbly native integrationVia REST/hooks✗✓ Native
REST API (8 public, documented routes)✓ Free✗✗
26 extensibility hooks (actions and filters)✓ Free✗Limited
Register custom field types via hook✓ Free✗✗
Shortcode fallback for non-Divi pages✓ Free✗✗
38 importable prebuilt templates across 16 categories✓ Free + Pro✗✗
WordPress native GDPR Personal Data Export and Erase✓ Free✗✗
User role permissions for entry access✗✗✓
Multilingual custom text supportVia WordPress i18n✓✓

17. Total Feature Count

HappyDivi Form version 1.0.0 ships with verified counts across every major feature area. Every number below is traceable to the plugin codebase.

HappyDivi Form: Verified Feature Totals

Plugin version 1.0.0, codebase-verified August 2026. Every number is source-confirmed.

  • 20 — Field Types
  • 12 — Free Fields
  • 8 — Pro Fields
  • 150+ — Field Settings
  • 9 — Cond. Operators
  • 12 — Spam Signals
  • 3 — CAPTCHA Providers
  • 4 — Email Providers
  • 26 — Dev Hooks
  • 8 — REST Routes
  • 38 — Templates
  • 16 — Template Categories
  • 9 — Custom DB Tables
  • 10 — Custom VB Components
  • 6 — Upload Security Layers
  • 0 — jQuery Dependencies

Quick Summary

HappyDivi Form is a native Divi 5 form plugin with 20 field types (12 free, 8 Pro), over 150 individual field settings, and 38 prebuilt templates across 16 categories. It stores 100% of entries in 9 custom database tables, never as WordPress post meta. It includes a complete async email notification system with unlimited per-form blocks, CC/BCC, conditional routing, field-based recipient routing, conditional email content, 4 delivery providers, and a delivery log with resend on every plan. Its spam protection runs 12 independent signals with cumulative scoring on every submission. Its file upload system passes every file through a 6-layer security pipeline. Its Calculated Field feature shows a live running total from a visual formula builder with the result always verified server-side, making it tamper-proof for payments. It includes Stripe payment processing with server-side amount verification, auto webhook setup, hourly reconciliation, and one-click refunds. Its analytics records views, submissions, field interactions, and abandonment in a cookieless, GDPR-compliant model from the first day of installation, with a full dashboard on Pro. It exposes 8 public REST API routes and 26 extensibility hooks, covering every stage of the submission, email, payment, and security pipeline. A shortcode fallback renders any form on non-Divi pages.

What HappyDivi Form Brings That Other Divi Form Plugins Do Not

Both HappyDivi Form and Divi Contact Form Helper now support Divi 5. The difference is in approach. Contact Form Helper adds settings on top of Divi's existing Contact Form module. HappyDivi Form is a brand new parent module with real child modules in the layer panel, each with its own Design tab, draggable, duplicatable, and independently styled. That architectural difference drives everything below.

Beyond architecture, HappyDivi Form ships capabilities that no other Divi form plugin currently offers:

  • Conditional email notifications for both admin and submitter. Pro notification blocks let you set conditions on each email block independently. The admin email fires only when a specific department is selected. The submitter confirmation uses different body text depending on the service they chose. Both the admin side and the visitor-facing side have conditional logic. No other Divi form plugin does both.
  • Conditional success messages, redirect, and message-then-redirect. Success Rules let you configure different outcomes based on what the visitor answered. A budget above $10,000 shows a different message and redirects to a different page than a budget below it. The standard form shows a message. A payment form redirects to Stripe. A survey shows a message for 5 seconds then redirects. Three success action modes, all conditionally switchable per form answer.
  • Calculated Field with live dynamic pricing driven by visitor selections. Priced Radio options, Checkbox options, Select options, and Toggle fields all feed into a visual formula. A visitor choosing a package, adding optional extras via Checkbox, and toggling rush delivery sees their total update in real time. The Calculated Field is always recomputed server-side before storage or payment, so a visitor cannot manipulate the price by editing the browser. This powers real quote calculators, order forms, and booking deposit forms without any custom code.
  • Radio and Checkbox fields with Cards and Chips display, each supporting per-option pricing. Divi's own module and Contact Form Helper both offer standard radio and checkbox lists. HappyDivi Form adds Cards mode (each option becomes a visual card with an optional image, badge, and visible price) and Chips mode (compact pill-style options) and Addon Rows mode (priced extras with animated switches). Each option carries a price that contributes to the running Calculated Field total. A visitor picking services on a visual card layout sees exactly what they are adding to their quote.
  • Searchable select dropdown and multi-select with removable chips. The Pro Select field adds a search input so a visitor with a dropdown of 50 countries, 30 product categories, or 200 courses can type to filter rather than scroll. Multi-select mode lets them choose several options at once, displayed as removable chips. Both degrade to a plain single-select automatically on a free site.
  • International Phone field with live country code and libphonenumber validation. Pro Phone International mode shows a searchable country and dial-code picker. When the visitor changes country, the dial code updates instantly. The number is validated against the selected country's format using the same libphonenumber library that Google uses. Stored in E.164 format for clean CRM import. Server-side IP geolocation pre-selects the visitor's likely country on page load. A UK visitor sees +44 already selected. A US visitor sees +1. No configuration per country, no maintenance of a country list.
  • Address field with country-aware state and postal validation. The Address field has six sub-fields: Address Line 1, Address Line 2, City, State/Province, Postal Code, and Country. Selecting a country updates the State control to a curated dropdown for that country (or free text for countries without standard state lists), updates the Postal Code label and validation pattern to match that country, and hides Postal entirely for countries that do not use one. A US address looks different from a UK address, which looks different from a Japanese address, all from one field configuration.
  • "Other" free-text option on Radio and Checkbox fields. When enabled, a visible "Other" option appears at the bottom of a Radio or Checkbox group. Selecting it reveals a companion text input. The visitor can type whatever they like. When set to numeric-only, the typed value also feeds into Calculated Field formulas. This covers the "If none of the above, please describe" use case that every real-world form eventually needs, without creating a separate conditional field.
  • Per-field custom validation and error messages, attributed to the specific field and sub-field. Every field has two independent message slots: one for when the field is left empty and one for when the format is wrong. These are your words, not "This field is required." For composite fields like Name and Address, the error message appears directly under the specific sub-part that failed, so "First Name is required" appears under the first name input, not as a generic error for the whole group. This is the standard that visitors expect from modern apps and almost no WordPress form plugin delivers it correctly for composite fields.
  • Inline per-field errors, live blur validation, and the full dual-layer validation architecture. Every error message appears immediately next to the field that caused it. Pro Live Validation checks each field the moment the visitor moves focus away, showing a green check or a red error before they even reach the submit button. Server-side validation re-runs every rule independently at submission time regardless of what the browser reported. All errors across all fields are collected before returning, so a visitor sees and fixes every problem in one round-trip rather than a frustrating sequence of single errors.
  • Conditional field logic with 9 operators, enforced server-side. Show or hide any field based on any other field's value, using Is, Is Not, Contains, Does Not Contain, Starts With, Ends With, Is Empty, Is Not Empty, Greater Than, and Less Than. The same rule logic runs in the browser for instant show/hide and independently on the server before validation and storage. A visitor cannot force a hidden field's value through by editing the DOM or manipulating JavaScript. Hidden required fields never block submission.
  • Async email queue with delivery log, retry backoff, and per-entry Resend. Emails are never sent synchronously inside the submission request, so a slow mail server does not delay the visitor's response. Every send attempt is logged with the recipient, delivery status, timestamp, and the real error message when it fails. A Resend button rebuilds and resends from the entry's stored data using the form's current settings. If a template is corrected after a failed send, the Resend uses the fixed template. No other Divi form plugin logs individual delivery attempts with actionable error messages.
  • Cumulative spam scoring across 12 independent signals. Honeypot, timing with HMAC-signed timestamp, per-IP rate limit, per-form rate ceiling, JS-execution proof, email blocklist, disposable email detection, keyword blocklist, link count detection, duplicate by email, content-hash duplicate detection, and CAPTCHA all run on every submission and contribute weighted scores to a single total. A submission that barely passes each individual check but looks suspicious in combination gets caught. A submission that triggers one strong signal alone gets caught. Both patterns matter and both are handled by a single scoring model rather than a checklist of gates.
  • 6-layer file upload security pipeline with quarantine and cryptographic storage. Every uploaded file passes extension blacklist checking (every dot-segment, catching "shell.php.jpg"), a field allow-list check, real MIME-byte sniffing, MIME variance tolerance for formats like DOCX that legitimately sniff as ZIP, OOXML structural verification for Office documents, and a size ceiling. Files are stored under 128-bit random filenames, never directly web-accessible, downloadable only via a capability-gated REST route with forced attachment disposition.
  • Cookieless form analytics with a field drop-off funnel. Views, submissions, field interactions, and abandonment are recorded from day one with no cookies, no localStorage by default, no IP addresses stored. The field drop-off funnel shows every field in form order, how many visitors reached each one, and how many left at each one. A field with zero abandonment still appears, so the full visitor path is visible. Peak hours and weekday distribution show when submissions cluster so you can align follow-up staffing or ad spend with real visitor behavior.
  • Stripe payments with server-side tamper-proof amounts and hourly self-healing reconciliation. Card data never touches your server. The charged amount is always recomputed server-side from the submitted field values, never trusted from the browser. Auto webhook setup means no manual Stripe dashboard configuration. An hourly cron reconciles any payment stuck as pending for more than 25 hours, so a lost webhook self-heals without manual intervention. One-click refunds from the admin panel.
  • 38 importable prebuilt templates across 16 categories. Every template is real working form JSON imported as a native Divi Sections library entry via standard WordPress APIs. A Free or Pro badge is computed automatically by scanning the template's actual JSON for Pro features, so the badge never drifts from what is actually in the form. Import one click. Use it on any page.

We design for the visitor, not just the site owner. Every feature above was built with two people in mind: the person building the form and the person filling it in. Custom placeholder text and help text make the intent of every field clear. Inline error messages tell visitors exactly what went wrong, next to the field that caused it, not at the top of the page. Live validation on blur gives instant reassurance with a green check as the visitor completes each field correctly. The international phone picker removes the confusion of typing a country code from memory. Address fields adapt to the visitor's country automatically. Autofill tokens let mobile browsers complete forms in one tap. The result is forms that visitors actually finish.

Compared to Divi's built-in contact form: HappyDivi Form adds 14 additional field types, database entry storage, conditional field logic, dynamic prefill, inline per-field validation errors, 4 email delivery providers, a confirmation email, an email delivery log, 12 spam signals, GDPR tools, cookieless analytics, Stripe payments, file uploads, 38 templates, 26 developer hooks, 8 REST routes, and a shortcode fallback. Divi's contact form has none of these.

Compared to Divi Contact Form Helper (v2.0, Divi 5 compatible): Both plugins support Divi 5. The core difference is architectural. Contact Form Helper adds extra settings panels to Divi's existing Contact Form module. HappyDivi Form replaces the module entirely with purpose-built parent and child modules that live natively in the layer panel. HappyDivi Form adds capabilities Contact Form Helper does not currently have: an Address composite field that adapts to the visitor's country (state dropdown, postal validation, 6 independently hideable sub-fields), a Calculated Field with a visual formula builder and tamper-proof server-side recomputation, a Slider field with live value badge and full Design tab tokens, an animated Toggle field with optional price contribution, a Legal Consent field, a Section Break with 7 divider positions and anchor ID support, conditional field show/hide with 9 operators enforced server-side, unlimited independent notification blocks each with their own conditions, conditional content inside email bodies using the if/else syntax, conditional success messages and redirects via Success Rules, a cookieless analytics field drop-off funnel, Stripe payments with tamper-proof server-side amounts, ZIP export bundling uploaded files, 9 custom database tables (not postmeta), an async email queue with delivery log and per-entry Resend, 8 REST API routes, 26 developer extensibility hooks, a shortcode fallback, and 38 importable templates. Contact Form Helper includes a digital signature field, native Zapier and Pabbly Connect integration, auto-backup entries to email, reply-to-entry from admin, entry-to-post conversion, and user role permissions that HappyDivi Form does not currently ship.

Try HappyDivi Form on your Divi site
Free to start, no credit card required. Pro is on early adopter pricing right now, which will not last past the initial launch period.
Explore HappyDivi Form

HappyDivi

WordPress & Divi Specialist