Forge Forms
WordPress form builder with conditional logic, calculations, entries, and email notifications.
by Asher Faisal · github.com/ashar-dev19/forge-forms · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/ashar-dev19/forge-forms/archive/refs/heads/main.zipReadme
Forge Forms
Free & open-source WordPress form plugin with a modern React builder, conditional logic, live calculations, entries, file uploads, and email notifications.
Inspired by WPForms, Gravity Forms, and Forminator — built to reuse on any WordPress site.
Features
- React form builder — drag-and-drop fields, reorder, field settings
- Conditional logic — show/hide fields with AND/OR rules
- Calculations — live totals with formulas like
{price} * {qty}(recomputed securely on the server) - Field types — text, textarea, email, number, phone, dropdown, radio, checkboxes, date, hidden, HTML, file upload, calculation, section, page break
- Multi-page forms — page breaks with Previous / Next navigation
- Drag-and-drop file uploads — dropzone UI with type/size validation
- Entries — view, delete, and export CSV
- Email notifications — merge tags (
{all_fields},{form_title},{entry_id}, …) - Confirmations — success message or redirect
- Spam basics — honeypot + nonces + light rate limiting
- Embed anywhere — shortcode or Gutenberg block
Requirements
- WordPress 6.2+
- PHP 7.4+
- (Optional for development) Node.js 18+ for rebuilding admin/frontend assets
Installation (end users)
Option A — Download ZIP
- Download the latest release ZIP from this repository (or clone and zip the plugin folder).
- In WordPress go to Plugins → Add New → Upload Plugin.
- Upload the ZIP, install, and activate Forge Forms.
Option B — Clone into plugins
cd wp-content/plugins
git clone https://github.com/ashar-dev19/forge-forms.git forge-forms
Then activate Forge Forms in Plugins.
Important: Do not upload
node_modules. Built assets inassets/build/are already included — the plugin works without running npm on your server.
Quick start
- Open Forge Forms in the WordPress admin sidebar.
- Click Add New Form.
- Add fields from the palette; configure labels, required, conditionals, or formulas.
- Open the Settings tab — set confirmation message and email notification.
- Click Save & Publish.
- Embed the form:
[forge_form id="1"]
Or insert the Forge Form block in the block editor and select your form.
- Submit on the front end, then check Forge Forms → Entries.
Shortcode
| Shortcode | Description |
|---|---|
[forge_form id="123"] |
Renders published form with ID 123 |
Conditional logic
In a field’s settings, enable Conditional logic:
- Action: Show or hide this field
- Match: All rules (AND) or Any rule (OR)
- Operators: is, is not, contains, greater than, less than, is empty, is not empty
Example: show a “Company name” field only when “Are you a business?” = Yes.
Calculations
Add a Calculation field (or enable calculation on a number field) and use a formula:
{field_price} * {field_qty} * (1 - {field_discount}/100)
- Use field IDs in
{braces}(shown in the builder under each field). - Supported operators:
+ - * / ( ) - Values update live on the front end and are recalculated on the server so totals cannot be spoofed.
Email notifications
In form Settings → Email Notification:
| Setting | Example |
|---|---|
| Send to | {admin_email} or you@example.com |
| Subject | New form submission: {form_title} |
| Message | {all_fields} |
Merge tags
| Tag | Meaning |
|---|---|
{all_fields} |
HTML list of submitted fields |
{form_title} |
Form title |
{entry_id} |
Entry ID |
{date} |
Submission datetime |
{admin_email} |
Site admin email |
{field:FIELD_ID} |
Value of a specific field |
Emails not arriving?
WordPress mail often fails on local environments (XAMPP, Local WP, etc.).
- Confirm notification is enabled and Send to is correct.
- Check Settings → General → Administration Email Address.
- Install WP Mail SMTP (or similar) and configure SMTP.
- Entries still save under Forge Forms → Entries even if email fails.
File uploads
- Drag-and-drop or browse
- Allowed: JPG, PNG, GIF, PDF, DOC, DOCX, TXT
- Max size: 5MB
- Stored via WordPress media upload handling
Development
git clone https://github.com/ashar-dev19/forge-forms.git
cd forge-forms
npm install
npm start # watch / hot rebuild
npm run build # production assets → assets/build/
Project structure
forge-forms/
├── forge-forms.php # Plugin bootstrap
├── includes/ # PHP: REST, submit, logic, email, DB
├── admin/ # Admin menu mount for React app
├── assets/
│ ├── src/admin/ # React builder
│ ├── src/frontend/ # Public form renderer (vanilla JS)
│ ├── src/block/ # Gutenberg block editor script
│ └── build/ # Compiled JS/CSS (shipped)
├── templates/ # Form + email HTML templates
└── package.json # @wordpress/scripts build
REST API (overview)
| Endpoint | Auth | Purpose |
|---|---|---|
GET/POST /wp-json/forge-forms/v1/forms |
Admin | List / create forms |
GET/PUT/DELETE /wp-json/forge-forms/v1/forms/{id} |
Admin (GET public if published) | Form CRUD |
GET /wp-json/forge-forms/v1/entries |
Admin | List entries |
GET /wp-json/forge-forms/v1/entries/export?form_id= |
Admin | CSV export data |
POST /wp-json/forge-forms/v1/submit |
Public (+ form nonce) | Submit entry |
Hook after submit:
add_action( 'forge_forms_after_submit', function( $entry, $form ) {
// Custom CRM / webhook logic
}, 10, 2 );
Privacy & security notes
- Capability
manage_optionsrequired for builder/entries - Public submit verified with form-specific nonce
- Calculation results are never trusted from the browser
- File MIME allowlist + size limit
- Honeypot field available per form
Roadmap (ideas)
- Payment gateways
- Webhooks / Zapier-style integrations
- PDF export
- More notification rules per form
Contributions and ideas are welcome via issues and pull requests.
License
This plugin is free software released under the GNU General Public License v2 or later.
You may use it on unlimited sites, modify it, and share it — no purchase required.
Credits
Author: Asher Faisal
Built as an open form engine for the WordPress community.
Repository: https://github.com/ashar-dev19/forge-forms