WPForms Plugin Setup for WordPress
WPForms is a form builder with visual drag-and-drop interface. It fills the niche between Contact Form 7's simplicity and Gravity Forms' power: it stores submissions, has templates, conditional logic, without being overloaded. Free version (Lite) for simple forms; paid tiers add conditional logic, integrations, payments.
Versions
- WPForms Lite — free, simple forms, database storage, basic notifications
- WPForms Basic — email marketing integrations, file uploads
- WPForms Plus — conditional logic, multi-step forms, additional fields
- WPForms Pro — Stripe/PayPal, Zapier, Salesforce and other integrations
Creating a Form
WPForms → Add New → select template or start from scratch. Interface: left side — available fields by group, right side — form with drag area.
Fields are configured by clicking: label, placeholder, required, CSS class. Order changes via drag-and-drop.
Notifications
Notifications tab — one or multiple notifications with addresses, subject, body. Smart tags substitute data:
Send To: {field_id="3"} — address from Email form field
Subject: Request from {field_id="1"}
Message: {all_fields} — all fields in one block
Multiple notifications with conditions (Plus and above):
Notification 1: → [email protected], if "Topic" field = "Sales"
Notification 2: → [email protected], if "Topic" field = "Support"
Confirmations
Confirmations tab — text message, redirect to page, or hide form and show message:
Type: Message
Message: Thank you! We'll reply within 2 hours.
Multiple confirmations with conditions work similarly to notifications.
Entries
WPForms stores each submission in database (wp_wpforms_entries). In WPForms → Entries — table of all requests with search, filters, CSV export.
Entry can be marked as read, starred, deleted. Access to entries — only for administrators and editors (configurable).
Conditional Logic (Plus and above)
Field "Need delivery?": [Yes / No]
→ If "Yes" — show "Delivery Address" section
→ If "No" — hide "Delivery Address" section
Conditional logic also applies to notifications and confirmations.
PHP API and Hooks
// Action after successful form submission
add_action( 'wpforms_process_complete', function( $fields, $entry, $form_data, $entry_id ) {
$email = $fields[3]['value']; // field with ID=3
$name = $fields[1]['value'];
// Subscribe to mailing list, add to CRM
subscribe_to_mailchimp( $email, $name );
}, 10, 4 );
// Custom field validation
add_action( 'wpforms_process_validate_text', function( $field_id, $field_submit, $form_data ) {
if ( 5 === $field_id && strlen( $field_submit ) < 10 ) {
wpforms()->process->errors[ $form_data['id'] ][ $field_id ] = 'Minimum 10 characters';
}
}, 10, 3 );
Inserting a Form
Shortcode: [wpforms id="123"]
In Gutenberg: WPForms block → select form from dropdown.
In PHP template:
echo do_shortcode( '[wpforms id="123"]' );
// or via function
wpforms_display( 123, false, true ); // form_id, title, description
Styling
WPForms adds .wpforms-form class to form. Basic styles are included; to disable default styles:
// Disable WPForms styles and use custom
add_filter( 'wpforms_frontend_css', '__return_empty_array' );
GDPR and Consent
WPForms has built-in GDPR checkbox and storage: you can enable consent request for data processing and add button to delete user data from entries.
Timeline
One or two forms with notifications and submission storage — 2–4 hours. Conditional logic, multi-step forms, external service integration — 1 business day.







