This complete WPForms tutorial covers 100 topics — from installing and building forms to payments, marketing integrations, developer hooks, and shipping a custom WPForms addon.
Course roadmap
- Introduction to WPForms
- What is WPForms?
- Installing and Activating WPForms
- WPForms Dashboard Overview
- Creating Your First Form
- WPForms Form Builder
- WPForms Form Fields
- Basic Form Fields in WPForms
- Advanced Form Fields in WPForms
- Address and Contact Fields
- File Upload Field in WPForms
- Date and Time Fields in WPForms
- Rich Text Field in WPForms
- Repeater Field in WPForms
- Conditional Logic in WPForms
- Required Fields and Validation
- Form Confirmation Settings
- Form Notification Settings
- Email Notifications in WPForms
- Confirmation Messages in WPForms
- Confirmation Redirects in WPForms
- Saving Form Entries
- Managing Form Entries
- Entry Search and Filtering
- Exporting Form Entries
- Form Templates in WPForms
- Creating Custom Form Templates
- Multi-Step Forms in WPForms
- Conversational Forms in WPForms
- Form Landing Pages in WPForms
- Form Styling and Custom CSS
- Responsive Forms in WPForms
- AJAX Form Submission in WPForms
- Anti-Spam Protection in WPForms
- CAPTCHA Integration in WPForms
- Google reCAPTCHA with WPForms
- hCaptcha with WPForms
- Cloudflare Turnstile with WPForms
- WPForms and WordPress Users
- User Registration Forms with WPForms
- Login Forms with WPForms
- Password Reset Forms with WPForms
- Custom User Profile Forms
- Payment Forms with WPForms
- Stripe Integration with WPForms
- PayPal Integration with WPForms
- Square Integration with WPForms
- Authorize.Net Integration with WPForms
- Recurring Payments with WPForms
- Subscription Forms with WPForms
- Coupons and Discounts in WPForms
- Donation Forms with WPForms
- Order Forms with WPForms
- Surveys and Polls with WPForms
- Survey Form Creation in WPForms
- Poll Creation in WPForms
- Quiz Forms with WPForms
- Quiz Scoring in WPForms
- Lead Generation Forms with WPForms
- Newsletter Signup Forms
- Mailchimp Integration with WPForms
- Constant Contact Integration with WPForms
- AWeber Integration with WPForms
- ActiveCampaign Integration with WPForms
- CRM Integrations with WPForms
- Zapier Integration with WPForms
- Webhooks Integration with WPForms
- Google Sheets Integration with WPForms
- Slack Integration with WPForms
- WhatsApp Notifications with WPForms
- Custom API Integration with WPForms
- REST API Integration with WPForms
- WPForms Developer Hooks
- WPForms Actions
- WPForms Filters
- Creating Custom Addons for WPForms
- WPForms Addon Architecture
- Custom Field Development for WPForms
- Custom Payment Gateway Addon for WPForms
- Custom Notification Addon for WPForms
- Form Entry Hooks in WPForms
- Form Submission Hooks in WPForms
- AJAX Hooks in WPForms
- Security and Nonces in WPForms Development
- Data Sanitization and Validation
- GDPR and Privacy with WPForms
- Custom Database Integration with WPForms
- Debugging WPForms
- WPForms Performance Optimization
- WPForms Compatibility Testing
- Creating a WPForms Addon Plugin
- Free vs Pro Addon Development
- WPForms Addon Settings
- WPForms Addon API
- WPForms Addon Documentation
- WPForms Addon Testing
- WordPress Coding Standards for WPForms Addons
- WPForms Plugin Development Best Practices
- WPForms Interview Questions
- Final Project – Complete WPForms Custom Addon Development
1. Introduction to WPForms
WPForms is a WordPress form plugin for contact forms, payments, surveys, and registrations. This series covers the builder, entries, integrations, developer hooks, and a final custom addon project.
- Install WPForms and build a simple form.
- Learn entries, notifications, and spam protection.
- Explore hooks and ship a custom addon.
Learning path
Install → builder/fields
Confirmations/notifications/entries
Templates/multi-step/payments
Integrations → hooks/addons
Final custom addon project
2. What is WPForms?
WPForms helps non-developers create forms quickly, while developers can extend it with hooks and addons for custom fields, payments, and workflows.
Lite vs Pro (high level)
Lite → core forms, basic fields, entries (limited)
Pro → advanced fields, payments, marketing, surveys, addons
3. Installing and Activating WPForms
Install like any WordPress plugin, activate, and walk through the setup wizard if prompted.
- Install/activate WPForms.
- Enter license if using Pro.
- Open WPForms in the admin menu.
Install paths
Plugins → Add New → search WPForms
or Upload Pro zip → Activate → license key
4. WPForms Dashboard Overview
The dashboard is your hub for building forms, reviewing submissions, configuring email/spam settings, and managing addons.
Main screens
Forms
Entries
Payments (Pro)
Tools
Settings
Addons
5. Creating Your First Form
Use Add New, choose a template or blank form, add fields, save, then embed with a block/shortcode.
- Click Add New Form.
- Add Name, Email, Message fields.
- Save and embed on a page.
Embed options
WPForms block in editor
[wpforms id="123"] shortcode
PHP helper in templates (advanced)
6. WPForms Form Builder
The builder has Fields, Settings, and Payments areas (depending on plan). Changes save to the form configuration stored by WPForms.
Builder areas
Fields → add/reorder/configure
Settings → general, notifications, confirmations
Payments → gateways (Pro)
7. WPForms Form Fields
Fields collect user input. Choose the right type for validation, UX, and downstream integrations.
Field groups
Basic
Fancy/Advanced
Payment (Pro)
Layout helpers
8. Basic Form Fields in WPForms
Basic fields cover most contact and lead forms. Mark required fields carefully.
Common basics
Single Line Text
Paragraph Text
Dropdown
Multiple Choice
Checkboxes
Number
9. Advanced Form Fields in WPForms
Advanced/fancy fields unlock website, password, rating, and more specialized inputs depending on your license/addons.
Examples
Website / URL
Password
Rating / Likert (surveys)
Hidden Field
HTML / Content blocks
10. Address and Contact Fields
Structured contact fields improve validation and CRM mapping compared with plain text boxes.
Contact set
Name (first/last)
Email
Phone
Address (street/city/state/zip/country)
11. File Upload Field in WPForms
Configure allowed extensions and max size. Store uploads securely and review them in entries.
Upload tips
Limit mime/extensions
Limit file size
Don’t allow executable types
Review uploads in Entries
12. Date and Time Fields in WPForms
Use date formats that match your region and validate required booking windows in confirmations/notifications.
Use cases
Appointment booking
Event RSVP
Deadline collection
13. Rich Text Field in WPForms
Useful for support tickets and long descriptions. Sanitize stored HTML carefully on custom displays.
When to use
Support requests
Job applications
Long product feedback
14. Repeater Field in WPForms
Repeaters help variable-length data without building many optional fields manually.
Repeater examples
Multiple travelers
Team member details
Order line extras
15. Conditional Logic in WPForms
Conditional logic keeps forms short and relevant. Test all branches before publishing.
Logic idea
If 'Need support?' = Yes → show Ticket Details
If payment method = Invoice → hide card fields
16. Required Fields and Validation
Client and server validation reduce incomplete entries. Add custom validation via developer hooks when needed.
Validation tips
Required only when truly needed
Use Email/Phone field types
Test empty + invalid formats
17. Form Confirmation Settings
Choose message, redirect, or show another page/form confirmation type.
Confirmation types
Message
Redirect URL
Show Page
18. Form Notification Settings
Set From/Reply-To carefully for deliverability. Use Smart Tags for dynamic content.
Notification checklist
Admin notification
User autoresponder
Correct From email
Smart Tags in subject/body
19. Email Notifications in WPForms
Multiple notifications can fire for different teams or conditions (sales vs support).
Smart Tag idea
Subject: New lead from {field_id="1"}
Body includes entry summary tags
20. Confirmation Messages in WPForms
Keep messages clear and include next steps (expect an email, response time, etc.).
Message tip
Thank you + what happens next
Optional entry reference if available
21. Confirmation Redirects in WPForms
Redirects are great for conversion tracking pixels on thank-you pages.
Redirect uses
Thank-you landing page
Upsell page
Calendar booking link
22. Saving Form Entries
Entries preserve submitted data (and payment metadata when applicable). Know retention/privacy policies.
Entries tip
Enable entry storage
Review GDPR/deletion needs
Protect wp-admin access
23. Managing Form Entries
Use entry detail pages for full field values, notes, and related payment info.
Entry actions
View details
Star / unread
Delete / restore (if available)
Resend notifications (where supported)
24. Entry Search and Filtering
Filtering helps support teams locate a customer entry without exporting everything.
Filter ideas
By form
By date range
By keyword in fields
25. Exporting Form Entries
Export only needed fields and protect files that contain personal data.
Export checklist
Select form + fields
Date range
Store CSV securely
Delete local copies when done
26. Form Templates in WPForms
Templates are editable — use them as a baseline, then customize fields and settings.
Template workflow
Pick template → customize fields → set notifications → publish
27. Creating Custom Form Templates
Custom templates speed agency workflows when many sites need similar intake forms.
Agency tip
Standard lead form template
Support ticket template
Onboarding intake template
28. Multi-Step Forms in WPForms
Use page breaks, progress indicators, and conditional steps for complex intakes.
Multi-step tips
One topic per step
Show progress
Validate per page when possible
29. Conversational Forms in WPForms
Conversational forms feel like chat and can increase engagement for surveys and lead flows.
Best for
Lead quizzes
Feedback surveys
Simple applications
30. Form Landing Pages in WPForms
Form pages help conversion by removing navigation chrome around the form.
Landing page tip
Clear headline
Short form
Trust cues + privacy note
31. Form Styling and Custom CSS
Prefer theme-compatible styles first; add scoped CSS for brand polish.
Scoped CSS idea
.wpforms-form .wpforms-submit {
border-radius: 8px;
}
32. Responsive Forms in WPForms
Test on small screens: labels, errors, file upload, and payment fields.
Mobile QA
Tap targets
Readable errors
No horizontal scroll
Keyboard-friendly inputs
33. AJAX Form Submission in WPForms
AJAX improves UX but still requires solid server-side validation and spam protection.
AJAX benefit
No full reload
Faster perceived submit
Inline confirmation message
34. Anti-Spam Protection in WPForms
Combine multiple layers: honeypot/anti-spam settings, CAPTCHA, and server filtering when needed.
Spam layers
WPForms anti-spam settings
CAPTCHA provider
Moderation of entries
Optional custom filters via hooks
35. CAPTCHA Integration in WPForms
Choose a provider that balances spam reduction and user friction.
Providers
Google reCAPTCHA
hCaptcha
Cloudflare Turnstile
36. Google reCAPTCHA with WPForms
Store site/secret keys in WPForms settings and enable per form as needed.
Setup steps
Create keys in Google admin
Add to WPForms → Settings → CAPTCHA
Enable on form settings
37. hCaptcha with WPForms
Similar setup to reCAPTCHA: keys in settings, enable on forms.
When to choose hCaptcha
Privacy preferences
Regional requirements
Provider performance in your market
38. Cloudflare Turnstile with WPForms
Turnstile often feels lighter than classic CAPTCHAs while still blocking many bots.
Setup idea
Create Turnstile widget keys
Connect in WPForms CAPTCHA settings
Enable on high-spam forms
39. WPForms and WordPress Users
User forms must be secured carefully — validate capability/context and never expose privileged fields publicly.
User form types
Registration
Login
Password reset
Profile update
40. User Registration Forms with WPForms
Map fields to user meta, choose default roles carefully, and enable email verification if available.
Security tip
Don’t allow arbitrary role selection from public forms
Sanitize all mapped meta
Require strong passwords
41. Login Forms with WPForms
Prefer secure redirects after login and avoid leaking whether a username exists.
Login UX
Clear error messages
Redirect to account page
Link to reset password
42. Password Reset Forms with WPForms
Follow WordPress reset security practices and never email plaintext passwords.
Reset principles
Tokenized reset links
No plaintext passwords
Rate-limit requests
43. Custom User Profile Forms
Only allow editing of safe fields and verify the user owns the profile being updated.
Profile form tip
Logged-in only
Map to user meta carefully
Escape on display
44. Payment Forms with WPForms
Payment forms combine total calculation fields with a payment gateway addon.
Payment building blocks
Products / dropdown prices
Total field
Gateway connection
Payment entries + receipts
45. Stripe Integration with WPForms
Connect Stripe keys/account, map payment fields, and test in Stripe test mode first.
Stripe checklist
Connect Stripe
Add payment fields
Test mode charge
Verify receipt + entry payment status
46. PayPal Integration with WPForms
Configure PayPal connection and confirm IPN/webhook style payment completion in entries.
PayPal tip
Sandbox test first
Match currency settings
Confirm paid vs pending states
47. Square Integration with WPForms
Useful for businesses already on Square hardware/ecosystem.
Square flow
Connect Square account
Enable on form payments
Test charge + refund path
48. Authorize.Net Integration with WPForms
Store API credentials securely and validate AVS/CVV settings with your merchant account.
Auth.Net tip
API Login + Transaction Key
Test mode
Review decline handling
49. Recurring Payments with WPForms
Clearly disclose billing intervals and provide cancellation instructions.
Recurring UX
Show plan interval
Show renewal terms
Send receipt emails
Support cancellation path
50. Subscription Forms with WPForms
Map plan selection fields to gateway subscription products/prices carefully.
Subscription form fields
Plan dropdown
Customer details
Payment method
Terms acceptance
51. Coupons and Discounts in WPForms
Validate coupon limits and show updated totals before payment.
Coupon tip
Single-use vs multi-use
Expiry dates
Min total rules
52. Donation Forms with WPForms
Keep trust signals visible and send immediate donation receipts.
Donation UX
Suggested amounts + custom amount
Optional dedication field
Receipt confirmation
53. Order Forms with WPForms
Good for simple catalogs. For complex carts/shipping, WooCommerce may fit better.
Order form pieces
Product choices
Quantities
Totals
Payment + fulfillment notification
54. Surveys and Polls with WPForms
Surveys focus on insights; polls focus on quick community voting and results.
Choose survey vs poll
Survey → many questions/insights
Poll → one question, public results
55. Survey Form Creation in WPForms
Keep surveys short, group questions, and export results for analysis.
Survey tips
One idea per question
Optional vs required balance
Thank-you + follow-up
56. Poll Creation in WPForms
Polls are great for engagement content and newsletter prompts.
Poll tip
Single clear question
Limited options
Show results after vote
57. Quiz Forms with WPForms
Combine questions with scoring and outcome messages.
Quiz uses
Product recommendation quiz
Training assessment
Viral content quiz
58. Quiz Scoring in WPForms
Map score ranges to messages or redirect destinations for personalized results.
Scoring idea
Each answer has points
Total → outcome message
Optional certificate/next step CTA
59. Lead Generation Forms with WPForms
Ask only for needed fields. Send to CRM and notify sales instantly.
Lead form essentials
Name + email (+ one qualifier)
Clear CTA
Instant admin notification
CRM sync
60. Newsletter Signup Forms
Keep signup friction low and state privacy expectations clearly.
Signup best practice
Email (+ name optional)
Consent checkbox if required
Double opt-in when available
61. Mailchimp Integration with WPForms
Map fields, choose lists/tags, and test a real subscribe from staging/production.
Mailchimp checklist
Connect account
Map email field
List/tag selection
Test subscribe
62. Constant Contact Integration with WPForms
Similar mapping flow to other email providers — verify consent fields if needed.
Setup focus
API connection
List mapping
Consent alignment
63. AWeber Integration with WPForms
Map custom fields carefully so automations trigger correctly.
AWeber tip
Map custom fields
Test automation trigger
Monitor bounces
64. ActiveCampaign Integration with WPForms
Tags are powerful — use them for segmentation after form submit.
ActiveCampaign flow
Connect → map fields → apply tags → automation enroll
65. CRM Integrations with WPForms
Map fields consistently and avoid creating duplicate contacts when possible.
CRM tips
Unique email as key
Source/campaign field
Owner assignment rules
66. Zapier Integration with WPForms
Use Zapier for quick integrations when a native addon is unavailable.
Zap idea
Trigger: New WPForms entry
Action: Create Google Sheet row / Slack message / HubSpot contact
67. Webhooks Integration with WPForms
Webhooks enable near real-time custom integrations with your own APIs.
Webhook tip
HTTPS endpoint
Verify signatures if available
Handle retries/idempotency
68. Google Sheets Integration with WPForms
Good for teams that live in spreadsheets — still keep WPForms entries as source of truth when needed.
Sheets tip
One sheet per form
Header row = field map
Restrict sheet sharing
69. Slack Integration with WPForms
Route sales leads and support requests to the right Slack channel.
Slack message idea
New lead: {name} / {email}
Link to entry in wp-admin
70. WhatsApp Notifications with WPForms
Use compliant WhatsApp Business APIs/providers and get user consent where required.
WhatsApp tip
Use approved business messaging channels
Notify staff and/or users carefully
Respect opt-in rules
71. Custom API Integration with WPForms
Prefer webhooks for simple pushes; build an addon when you need UI settings and retries.
Custom API pattern
add_action('wpforms_process_complete', function ($fields, $entry, $form_data, $entry_id) {
// wp_remote_post to your API
}, 10, 4);
72. REST API Integration with WPForms
For many cases, hooks + admin-ajax/REST in your addon are more practical than scraping admin screens.
Integration style
Listen to submission hooks
Expose your own REST route for status/resync
Authenticate with caps/app passwords
73. WPForms Developer Hooks
Hooks let you customize validation, notifications, and entry processing safely across updates.
Hook mindset
Never edit WPForms core
Use documented hooks
Prefix your callbacks
74. WPForms Actions
Common needs: after successful submit, when payments complete, or when entries are saved.
Action example
add_action('wpforms_process_complete', 'acme_wpforms_after_submit', 10, 4);
function acme_wpforms_after_submit($fields, $entry, $form_data, $entry_id) {
// custom side effects
}
75. WPForms Filters
Filters are ideal for changing labels, validation messages, or notification content dynamically.
Filter idea
add_filter('wpforms_entry_email_atts', function ($email, $fields, $entry, $form_data) {
// adjust subject/body attributes
return $email;
}, 10, 4);
76. Creating Custom Addons for WPForms
Treat addons as standalone WordPress plugins that check for WPForms before booting.
Addon bootstrap idea
add_action('plugins_loaded', function () {
if (! function_exists('wpforms')) {
return;
}
// boot addon
});
77. WPForms Addon Architecture
Keep payment/providers, admin settings, and front-end logic separated for maintainability.
Suggested structure
acme-wpforms-addon/
acme-wpforms-addon.php
src/Plugin.php
src/Admin/Settings.php
src/Frontend/
src/Hooks/
78. Custom Field Development for WPForms
Custom fields need builder UI, front-end render, validation, and entry display support.
Custom field checklist
Builder control
Front-end HTML
Validation
Entry formatting
i18n strings
79. Custom Payment Gateway Addon for WPForms
Implement settings, form payment enablement, charge/capture flow, and entry payment status updates.
Gateway addon scope
API credentials settings
Checkout fields
Process payment on submit
Store transaction IDs
Handle webhooks
80. Custom Notification Addon for WPForms
Hook into process complete, format a message from fields, and send via provider APIs.
Notification addon tip
// on wpforms_process_complete
// build message from $fields
// wp_remote_post to SMS/Slack provider
81. Form Entry Hooks in WPForms
Use entry hooks to attach CRM IDs, compute derived fields, or sync to custom tables.
Entry enrichment idea
Save entry → call CRM → store remote ID in entry meta
82. Form Submission Hooks in WPForms
Submission hooks are the right place for custom validation and anti-fraud checks.
Custom validation idea
// reject submit if business rule fails
// add error via WPForms validation APIs/hooks
83. AJAX Hooks in WPForms
When customizing AJAX flows, keep responses secure and avoid leaking sensitive entry data.
AJAX caution
Verify intent/auth
Return minimal data
Keep parity with non-AJAX path
84. Security and Nonces in WPForms Development
WPForms handles form security basics; your addon must still secure admin/AJAX/REST additions.
Addon security
check_ajax_referer('acme_wpforms', 'nonce');
if (! current_user_can('manage_options')) {
wp_send_json_error(null, 403);
}
85. Data Sanitization and Validation
Field type validation is not enough for custom API payloads — sanitize everything you touch.
Sanitize examples
$email = sanitize_email(wp_unslash($_POST['email'] ?? ''));
$note = sanitize_textarea_field(wp_unslash($_POST['note'] ?? ''));
86. GDPR and Privacy with WPForms
Add consent checkboxes, link privacy policy, and honor deletion/export requests for entry data.
Privacy checklist
Consent field when required
Privacy policy link
Entry retention policy
Export/delete process
87. Custom Database Integration with WPForms
Keep WPForms entries as canonical unless you intentionally build a sync system with retries.
Sync pattern
add_action('wpforms_process_complete', function ($fields, $entry, $form_data, $entry_id) {
global $wpdb;
$wpdb->insert($wpdb->prefix . 'acme_leads', [
'entry_id' => $entry_id,
'email' => sanitize_email($fields[2]['value'] ?? ''),
'created_at' => current_time('mysql'),
]);
}, 10, 4);
88. Debugging WPForms
Check spam settings, email deliverability, conflicting plugins, and WPForms logs/tools where available.
Debug checklist
Does entry save?
Do notifications send?
Browser console errors?
Conflict test (default theme)
SMTP plugin configured?
89. WPForms Performance Optimization
Don’t load heavy scripts globally. Avoid enormous multi-page forms when a shorter flow converts better.
Perf tips
Conditional assets
Optimize images around forms
Limit heavy integrations on submit path
Cache pages that only embed forms carefully
90. WPForms Compatibility Testing
Especially test AJAX submit, CAPTCHA, and payment forms with caching plugins enabled.
Test matrix
Theme + page builder
Cache plugin on/off
Desktop/mobile browsers
Payment test mode
91. Creating a WPForms Addon Plugin
Include activation checks, settings UI, and clear dependency messaging if WPForms is missing.
Plugin header
<?php
/**
* Plugin Name: Acme WPForms Extension
* Description: Custom WPForms addon demo.
* Version: 1.0.0
* Text Domain: acme-wpforms
*/
92. Free vs Pro Addon Development
Keep free useful; gate advanced automations behind Pro cleanly.
Packaging models
Free plugin + Pro add-on
or license-gated modules in one plugin
93. WPForms Addon Settings
Store options safely, sanitize on save, and never print secrets into front-end JS.
Settings tip
register_setting('acme_wpforms', 'acme_wpforms_settings', [
'type' => 'array',
'sanitize_callback' => 'acme_wpforms_sanitize_settings',
]);
94. WPForms Addon API
Prefer public APIs/hooks over relying on private class methods that may change.
API guidance
Prefer hooks + documented helpers
Avoid private internals
Version-check WPForms when using newer APIs
95. WPForms Addon Documentation
Include screenshots and a compatibility section (WPForms version, PHP, WP).
Docs outline
Requirements
Setup
Settings reference
Hook list
FAQ
96. WPForms Addon Testing
Automate what you can; always manually test a real form submit on staging.
Test checklist
Form renders
Validation errors
Entry saved
Notification sent
Integration fired
No PHP notices
97. WordPress Coding Standards for WPForms Addons
Escape output, sanitize input, prefix symbols, and internationalize strings.
Standards focus
Prefixing
i18n
Escaping/sanitizing
Capability checks
98. WPForms Plugin Development Best Practices
Detect WPForms, fail gracefully, use hooks, log errors, and avoid blocking submit with fragile remote calls without timeouts.
Best practices
Timeouts on HTTP calls
Graceful WPForms-missing notice
Hook-only customization
Semantic versioning
99. WPForms Interview Questions
Be ready to explain confirmations vs notifications, conditional logic, and `wpforms_process_complete`.
Sample Q&A
Q: Confirmation vs notification?
A: Confirmation is user-facing after submit; notification is email alert.
Q: Why hooks for addons?
A: Survive updates; no core edits.
Q: How reduce spam?
A: Anti-spam + CAPTCHA + validation + moderation.
100. Final Project – Complete WPForms Custom Addon Development
Create a professional addon that checks for WPForms, adds settings (API URL/key), listens to form submissions, sends data to an endpoint/Slack/SMS provider, logs results, and includes readme + test checklist.
- Define the sync destination (API/Slack).
- Implement settings + submission hook.
- Add logging and failure handling.
- Document and test on staging.
Final project scope
1. Plugin bootstrap + WPForms dependency check
2. Settings page for API credentials
3. Form selector (which forms to sync)
4. wpforms_process_complete handler
5. wp_remote_post with timeout + error logging
6. Admin notice on missing WPForms
7. Basic success/failure entry note/log
8. readme.txt + changelog
9. Staging test checklist
Starter bootstrap
<?php
/**
* Plugin Name: Acme WPForms Sync
* Description: Final project — sync WPForms entries to an API.
* Version: 1.0.0
* Text Domain: acme-wpforms-sync
*/
if (! defined('ABSPATH')) {
exit;
}
add_action('plugins_loaded', function () {
if (! function_exists('wpforms')) {
add_action('admin_notices', function () {
echo '<div class="notice notice-error"><p>Acme WPForms Sync requires WPForms.</p></div>';
});
return;
}
require_once __DIR__ . '/includes/class-acme-wpforms-sync.php';
AcmeWPFormsSyncPlugin::instance(__FILE__)->boot();
});
Conclusion
You now have a full WPForms path: builder mastery, entries and notifications, payments and integrations, plus developer hooks for custom addons. Finish the final addon project to turn the lessons into a shippable extension.