Overview
Code and Core Repeater Fields for Contact Form 7 takes your classic Contact Form 7 forms to the next level by allowing users to add an unlimited, or strictly limited, number of dynamic field blocks.
Whether you are collecting an unknown number of attendees for an event, gathering past employment history records, dynamically submitting multiple file uploads, or tracking an indefinite list of inventory items the Repeater Extension seamlessly integrates directly into your Contact Form 7 editor, providing the ultimate solution for complex form data collection.
If you are looking to create highly converting, dynamic WordPress forms, the Code and Core Repeater Fields for CF7 plugin is an essential add-on. Gone are the days of creating tedious, hard-coded long forms with dozens of unnecessary inputs. By allowing your website visitors to recursively duplicate form field groups or “add more rows” on the fly, you instantly streamline the user experience, improve your form submission rates, and collect cleanly structured data arrays.
This lightweight, developer-friendly CF7 repeater extension is fully optimized for performance and modern WordPress site architecture. Whether you urgently need a ‘CF7 add more fields’ button, dynamic repeatable multipart form rows, or a frontend input cloner, our extension handles it flawlessly. It acts as the perfect dynamic form builder solution to collect complex nested data like family member details, employment histories, or multiple product order requests directly inside your existing Contact Form 7 setup.
Key Features
Capture complex, structured data effortlessly with a flexible and performance-optimized repeater system.
- Native CF7 IntegrationWe built the repeater seamlessly into the Contact Form 7 tag generator UI. You simply click the “Repeater” button just as you would for any standard text or email tag.
- Mail Tag Auto-GenerationYour repeater groups appear right inside the CF7 “Mail” tab. Drop in your repeater tag (e.g., [attendees]), and the plugin automatically prints out the gathered fields!
- Global Configuration DashboardTired of manually typing “Add Row” into every form? Use the brand-new, beautifully designed Repeater Settings panel to configure global defaults for button labels.
- Advanced Output FormattingOutput the collected repeating fields into your email templates as either clean HTML Tables or beautifully formatted indented Lists.
- Limit User Inputs (Min/Max Validation)Restrict how many repeating blocks a user can generate. Enforce a minimum of 1 and a maximum of 5 to protect your inbox from being flooded, with smart validation natively warning the user.
- Dynamic Field TriggersLink your repeater directly to other form fields (like a number input or dropdown menu). When a user types “5” into a trigger field, the repeater automatically generates exactly 5 rows instantly!
- Asset Optimization EngineDon’t let your website slow down! The plugin safely enqueues JavaScript conditionally only on the pages actually rendering a CF7 Repeater shortcode.
- 100% WPML & Translation CompatibleAll of the plugin’s interface texts, dynamic configurations, and alerts strictly run through WordPress localization hooks and WPML filter strings, guaranteeing zero compatibility issues on multi-lingual translated websites.
- Developer Friendly Email TemplatingNeed more than just Tables or Lists? Easily override the core HTML email layouts by dropping a simple PHP template file directly into your own active WordPress theme. Complete structural control without ever modifying plugin core files!
Usage & Syntax
Here are the two primary ways to implement the Repeater Field based on your dynamic form requirements:
[repeater contact-list initial:1 max:10 add_text:”Add row” remove_text:”Remove row”]
[/repeater]In this mode, users click “Add” to add new rows and “Remove” to delete them. This is ideal for general lists like attendees or work experience.
[repeater guests trigger:guest-count]
[/repeater]This mode automatically generates a specific number of rows based on a numeric value from another field (e.g., a dropdown or number input). It removes the manual “Add Row” button for a more streamlined experience.
Hello Admin, here is the submitted data:
[guests]The plugin will automatically render the data as a professional HTML Table or a formatted List depending on your configuration.
[repeater attendees mail_format:”list”]
…
[/repeater]Want your data as a bulleted list instead of a table? Simply pass the mail_format attribute directly into your form shortcode!
<?php
// Our custom overridden code-and-core-repeater-fields-mail.php template natively loading from our Theme!
foreach ($rows as $index => $row) {
echo '<div style="background: #f1f1f1; padding: 10px; margin-bottom: 5px;">';
echo '<h4>Attendee #' . ($index + 1) . '</h4>';
foreach ($sub_fields as $field_name) {
$value = isset($row[$field_name]) ? $row[$field_name] : 'N/A';
echo '<p><strong>' . esc_html($field_name) . ':</strong> ' . esc_html($value) . '</p>';
}
echo '</div>';
}
?>
Custom Template Code Example (code-and-core-repeater-fields-mail.php):
Our PHP template natively exposes $sub_fields (an array of your CF7 field names) and $rows (a 2D array containing every user submission).
Why Every Form Needs Multi-Row Inputs
- Flexible Data Collection:
Allow users to submit multiple entries without cluttering your form. - Improved User Experience:
Replace long static forms with dynamic, interactive inputs. - Structured Data Output:
Collect well-organized data ready for processing or reporting. - Higher Conversion Rates:
Shorter and smarter forms improve completion rates significantly.
Dynamic Repeater vs. Standard Blocks
Upgrade your forms from static inputs to dynamic, scalable data collection systems.




