
Plugin Goal
The Sync Forms with Directory Websites plugin is designed to automatically send form submissions from your WordPress site to a directory website using the Directory API.
When a user fills out a form on your site, whether it’s through Contact Form 7, WPForms, Ninja Forms, or Gravity Forms—this plugin seamlessly transfers the data to your directory platform, creating a Lead or Member entry automatically.
By eliminating manual data entry, it saves time and ensures your WordPress site and directory stay perfectly in sync with zero extra effort.
Plugin Menu Structure and Functionality
The plugin creates a custom post type with three menu options: API Connection Status, Add New Sync, and All Syncs. Here’s how each menu works:
API Connection Status
This menu has two tabs: General Settings and Error Log.

General Settings Tab
In this tab, you can validate the Directory Website URL and API Key. The validation runs in two cases:
- When the user clicks the Submit button
- Automatically when the page loads
This tab also includes an Additional Settings option:
- Allow Multiple Lead Submissions from the Same Email Address
When enabled, this allows multiple leads to be created in the directory website using the same email address.
Error Log Tab
This tab shows errors that occur during the sync process.
Examples of errors include:
- Invalid API key
- Duplicate record creation
- Invalid field mapping
Each error entry displays the following details:
- Form Plugin (e.g., Contact Form 7, WPForms, Ninja Forms, and Gravity Forms).
- Form Name
- Create Action (e.g., Lead or Member)
- Error Message
- Error Date
This information helps identify and fix issues related to saved syncs.
Add New Sync
This menu allows you to add a new sync using a form with the following fields and options:

Select Plugin
A dropdown that displays the installed WordPress form plugins such as Contact Form 7, WPForms, Ninja Forms, and Gravity Forms.
Select Form
Shows the list of forms created under the selected form plugin.
Type of Record to Create in Directory Website
Allows you to choose the type of record to create in the directory website: Member or Lead.
- If Member is selected, an additional input field appears:
Assign Membership Plan ID – used to assign a plan ID to the user who submits the form.
Note: Actions already assigned to a form are marked “Unavailable” and can’t be selected again.
Map WP Form Fields to Directory Website
This section displays all fields from the selected form. Each form field can be mapped to a corresponding field in the directory website using a Select2 dropdown.
Mapping dropdown features:
- Skip Field – Do Not Map: Users can choose the “Do Not Map” option to intentionally skip sending certain form fields to the API. This is useful when some form data is not needed in the directory and should be excluded from the sync.
- Duplicate Mapping Prevention: The dropdown intelligently disables any field options that have already been mapped. This helps prevent assigning multiple form fields to the same target field in the directory, reducing errors.
- Includes an ‘Add’ option to create a new custom mapping field.
Additional Data Sent with Every Form Submission
This section allows you to include extra data with each submission.
- Clicking the “Add Data Field” button adds a new row with an input field and a mapping dropdown.
- This is useful for sending custom or static values alongside each form submission.
- Each added row includes a delete icon, allowing users to remove any unwanted or mistakenly added data fields easily.
All Syncs
The All-Syncs menu provides a centralized view of all the saved sync configurations created within the plugin. This section lets you easily manage, review, and track both current and past syncs. Each sync represents a connection between a WordPress form and a target action (Lead or Member) on your directory website.

Displayed Information
Sync Nickname: A user-defined name for the sync, used to easily identify the purpose or source of the sync.
Plugin Name: Displays which form plugin is being used for the sync (e.g., Contact Form 7, WPForms, Ninja Forms, or Gravity Forms).
Form Name: The specific form selected within the chosen plugin that triggers the sync.
Create Action: Indicates the type of record created in the directory website – either Lead or Member.
Status: Shows whether the sync is currently Active, Draft, or Error.
Completed Syncs Count: Displays the number of successful form submissions that have been synced to the directory from this configuration. This is helpful for tracking activity and usage over time.
Last Sync Date: Shows the date and time of the most recent successful sync. This helps verify whether data is being transferred as expected.
Sorting and Filtering: Users can sort the syncs by name, plugin, status, or sync count, and filter results to find specific syncs quickly.
Additional Features and Benefits
- Multi-Plugin Compatibility: Supports multiple popular WordPress form plugins (e.g., Contact Form 7, WPForms, Ninja Forms, and Gravity Forms), ensuring flexibility in form creation without limiting users to a single form builder.
- Seamless Data Transfer: Real-time synchronization of form submissions reduces delays and eliminates the risk of missing leads or members.
- Custom Field Mapping: Easily map fields from WordPress forms to the directory website fields to ensure accurate data capture.
- Configurable Sync Actions: Choose whether form submissions create Leads or Members in the directory, depending on your business process.
- Error Handling: Detailed error logs help troubleshoot issues quickly without interrupting the sync workflow.
- Secure API Key Storage: Your Directory Website API key is safely stored in the WordPress database with encryption, protecting it from unauthorized access. This ensures that sensitive credentials are protected from unauthorized access, safeguarding your integration against potential security risks.
Code Optimization
Best practices were applied to make the plugin code more secure, maintainable, and performance-friendly:
Output Sanitization
All dynamic content is properly sanitized using WordPress functions like esc_html(), esc_attr(), esc_url(), and wp_kses() based on the context. This helps prevent security issues such as Cross-Site Scripting (XSS) by ensuring that user-generated or dynamic data is safely displayed.
Tools for Achieving Plugin Standards
To ensure the plugin meets WordPress development standards, the following tools were used:
Plugin Check (PCP)
WordPress’s official Plugin Check tool was used to verify that the plugin complies with all requirements for submission to the WordPress.org Plugin Repository. This helped ensure compatibility, security, and adherence to directory guidelines.
PHP CodeSniffer (PHPCS)
PHPCS is used to detect and fix code style issues based on WordPress coding standards. It helped improve code quality, readability, and maintainability, ensuring the plugin follows industry best practices.
Conclusion
The Sync Forms with Directory Website plugin provides an efficient, user-friendly solution for automating lead and member management. By integrating popular form builders with your Directory API, it eliminates manual data entry, minimizes errors, and keeps your systems in sync in real time. Its flexible configuration options, robust error handling, and secure encrypted API key storage make it both user-friendly and reliable. Whether you’re generating leads or managing memberships, this plugin streamlines your workflow and helps you focus on growing your community or business without the hassle of duplicating or losing information.
With flexible configuration, robust error handling, and secure encrypted storage, it’s built to support growing businesses and communities—so you can focus less on admin, and more on impact.

This Case Study was written by Bharath. Bharath is a skilled developer with expertise in building websites, web applications, and custom plugins. His structured approach to documentation ensures that his work is not only efficient but also valuable to fellow developers. Beyond coding, he brings a fun-loving spirit and a caring nature to the team, making collaboration both productive and enjoyable.