mage2kishan / module-advanced-contact-us
Advanced Contact Us Page - Custom fields, bot protection, submission management, email notifications
Package info
github.com/mage2sk/module-advanced-contact-us
Type:magento2-module
pkg:composer/mage2kishan/module-advanced-contact-us
Requires
- php: >=8.1
- mage2kishan/module-core: ^1.0
- magento/framework: >=103.0
- magento/module-backend: >=102.0
- magento/module-contact: >=100.4
- magento/module-ui: >=101.2
README
Magento 2 Advanced Contact Us: AJAX Form, Custom Fields, Anti-Spam and Submission Grid
Replace Magento 2's default contact form with a modern AJAX page. Panth Advanced Contact Us adds unlimited custom fields, silent three-layer anti-spam, a full admin submission grid with New/Read/Replied status tracking, and email notifications for both admin and customer. Built on vanilla JavaScript with no jQuery dependency.
Product page: kishansavaliya.com/magento-2-advanced-contact-us.html
Quick Answer
What is Panth Advanced Contact Us? It is a Magento 2 contact form extension that replaces the default /contact page with a vanilla JS AJAX form, stores every submission in the database, and gives admins a grid to track and respond to leads.
What does it add to my store?
- An AJAX contact form that submits without a full page reload, with real-time client-side validation.
- Unlimited custom fields (text, textarea, select, radio, checkbox, email, tel) to capture exactly the data you need.
- Three-layer anti-spam using a honeypot field, a time-based trap, and per-IP rate limiting, all without CAPTCHA.
- An admin submission grid under Panth Extensions > Contact Us > Submissions with New/Read/Replied status tracking.
- Email notifications to admin on every submission and an optional auto-reply to the customer.
Which themes are supported? The frontend form is built on vanilla JavaScript and works on Luma and any Luma-based theme. It also renders on Hyva storefronts, though it does not use Alpine.js or Tailwind.
What does it need? Magento 2.4.4 to 2.4.8, PHP 8.1 to 8.4, and the free mage2kishan/module-core package.
Need Custom Magento 2 Development?
Get a free quote for your project in 24 hours for custom modules, Hyva themes, performance work, M1 to M2 migrations, and Adobe Commerce Cloud.
Visit our website: kishansavaliya.com | Get a quote: kishansavaliya.com/get-quote
Table of Contents
- Who Is It For
- Key Features
- Compatibility
- Installation
- Configuration
- How It Works
- FAQ
- Support
- About Panth Infotech
- Quick Links
Who Is It For
- Stores that lose leads because contact emails land in spam or get buried in inboxes with no tracking. Every submission is saved to the database.
- Merchants who need more than name and message on the contact form. You can add dropdowns, checkboxes, phone fields, inquiry-type radios, and more without custom code.
- Sites getting hit by contact form spam and do not want to burden real customers with a CAPTCHA. The three-layer silent spam filter handles it automatically.
- Teams that need workflow tracking across multiple staff members. The New/Read/Replied status system keeps everyone on the same page.
- Luma storefronts that want a faster, AJAX-submitted contact page with no full page reload.
Key Features
Modern AJAX Contact Form
- Vanilla JavaScript AJAX submission with no jQuery dependency and no full page reload.
- Real-time client-side validation for required fields, email format, and phone format.
- Logged-in customer auto-fill populates name and email for authenticated users automatically.
- Contact info sidebar to display your email, phone, address, and business hours next to the form.
- Configurable page title and success message so you can match your store's tone.
- Toggleable phone and subject fields, each with an independent required flag.
Unlimited Custom Fields
- Seven field types: text, textarea, select, radio, checkbox, email, and tel.
- Per-field settings for label, placeholder, required status, and options.
- Comma-separated options for select, radio, and checkbox fields.
- JSON storage in the
panth_contact_submissiontable so no schema change is needed when you add fields. - Admin view rendering shows each custom field with its label in the submission detail and email notifications.
Three-Layer Anti-Spam
- Honeypot field: a hidden input that real users never see. If a bot fills it, the submission is dropped silently.
- Time-based trap: the server checks how long the form took to fill. Submissions faster than the configured threshold (default 2 seconds) are rejected.
- IP rate limiting: caps submissions per IP per rolling hour window (default 5). Exceeding the limit returns a friendly message; no real customer is locked out for long.
- No CAPTCHA friction: real customers never see a challenge.
Admin Submission Grid
- Dedicated grid at Panth Extensions > Contact Us > Submissions.
- Full filtering and sorting by name, email, subject, status, and date.
- Three-state status: New (orange), Read (blue), Replied (green). Submissions flip to Read automatically when opened.
- Bulk actions for mass delete and mass status change.
- Export to CSV and XML using Magento's standard grid export.
- Custom field values displayed in the submission detail view.
Email Notifications
- Admin notification sent to the configured recipient on every successful submission, with name, email, phone, subject, message, custom fields, and a direct admin link.
- Customer auto-reply (optional) sent immediately after submission to confirm receipt and set expectations.
- Reply-To set to customer email so one click in your mailbox goes straight to the customer.
- Sender identity selection from General, Sales, Support, or Custom, matching your store's email addresses.
- Editable email templates at Marketing > Email Templates.
Quality and Security
- CSRF-protected: Magento form key validation on every submission.
- XSS-safe output: all stored values are escaped on render.
- SQL-injection-safe: uses Magento's standard repository and collection pattern.
- MEQP-style code: constructor dependency injection only, no ObjectManager.
- Translation ready: every user-facing string uses Magento's
__()function.
Compatibility
| Requirement | Versions Supported |
|---|---|
| Magento Open Source | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce Cloud | 2.4.4 to 2.4.8 |
| PHP | 8.1.x, 8.2.x, 8.3.x, 8.4.x |
| MySQL | 8.0+ |
| MariaDB | 10.4+ |
| Luma Theme | Native support (vanilla JS) |
| Required Dependency | mage2kishan/module-core (free) |
Installation
Composer Installation (Recommended)
composer require mage2kishan/module-advanced-contact-us bin/magento module:enable Panth_Core Panth_AdvancedContactUs bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f bin/magento cache:flush
Panth_Core is pulled in automatically as a Composer dependency.
Manual Installation via ZIP
- Download the latest release from Packagist or from the product page.
- Extract it to
app/code/Panth/AdvancedContactUs/in your Magento install. - Make sure
Panth_Coreis installed too (required dependency). - Run the commands above starting from
bin/magento module:enable.
Verify Installation
bin/magento module:status Panth_AdvancedContactUs
# Expected: Module is enabled
After install, visit /contact on the frontend. You should see the new AJAX form. In admin, the new menu entry is at:
Admin -> Panth Extensions -> Contact Us -> Submissions
Configuration
Go to Stores -> Configuration -> Panth Extensions -> Advanced Contact Us.
General Settings
| Setting | Group | Default | Description |
|---|---|---|---|
| Enable Module | General | Yes | Master toggle. When off, Magento's native contact form is used. |
| Page Title | General | Contact Us | Heading shown on the contact page. |
| Success Message | General | (default text) | Inline confirmation shown after successful submission. |
| Show Contact Info Sidebar | General | Yes | Show the sidebar with email, phone, address, and business hours. |
Contact Info Sidebar
| Setting | Group | Default | Description |
|---|---|---|---|
| Email Address | Contact Info | (empty) | Public contact email shown in the sidebar, click to email. |
| Phone Number | Contact Info | (empty) | Public phone number, click to call. |
| Address | Contact Info | (empty) | Physical or mailing address, multi-line. |
| Business Hours | Contact Info | (empty) | Plain text operating hours. |
Form Fields
| Setting | Group | Default | Description |
|---|---|---|---|
| Show Phone Field | Form Fields | Yes | Display the phone input on the form. |
| Phone Required | Form Fields | No | Make the phone field mandatory. |
| Show Subject Field | Form Fields | Yes | Display the subject input. |
| Subject Required | Form Fields | No | Make the subject field mandatory. |
| Custom Fields | Form Fields | (none) | Dynamic row grid to define unlimited custom fields. |
Email Settings
| Setting | Group | Default | Description |
|---|---|---|---|
| Admin Notification Email | Email Settings | (store email) | Where admin notifications are sent on each submission. |
| Sender Email Identity | Email Settings | General | Sender used for outgoing emails: General, Sales, Support, or Custom. |
| Send Customer Confirmation | Email Settings | No | Send an auto-reply to the customer after successful submission. |
Bot Protection
| Setting | Group | Default | Description |
|---|---|---|---|
| Enable Honeypot | Bot Protection | Yes | Add a hidden trap field that only bots fill. |
| Enable Rate Limiting | Bot Protection | Yes | Limit submissions per IP address per hour. |
| Max Submissions Per Hour (per IP) | Bot Protection | 5 | Reject IPs that exceed this count in a rolling hour. |
| Minimum Form Fill Time (seconds) | Bot Protection | 2 | Reject submissions faster than this threshold. |
How It Works
- The module registers a route that handles the
/contactpage, replacing Magento's default contact controller. - On page load, the form captures a timestamp and a honeypot field is rendered hidden via CSS.
- On submit, vanilla JavaScript sends the form data over AJAX to the Post controller.
- The server checks all three anti-spam layers in order: honeypot, time elapsed, and IP rate limit. Any failure returns a silent rejection.
- If the submission passes, it is saved to the
panth_contact_submissiontable with status New and the admin notification email is sent. - If customer confirmation is enabled, an auto-reply is sent to the customer's email address.
- The admin opens Panth Extensions > Contact Us > Submissions to view, filter, sort, and update the status of each record.
FAQ
Does this replace Magento's native contact form?
Yes. When the module is enabled, the /contact URL is handled by Panth Advanced Contact Us and the stock Magento_Contact form is bypassed. Disable the module to go back to the native form without any data loss.
Does it work on Hyva themes?
The frontend form is built on vanilla JavaScript, not Alpine.js or Tailwind. It will render and submit correctly on a Hyva storefront, but it does not use Hyva's component system or theme styles. The admin grid and backend logic work the same on any theme.
Will it conflict with reCAPTCHA?
No. Panth Advanced Contact Us uses its own silent anti-spam. You can also leave Magento's native reCAPTCHA on the contact form enabled for an extra layer. The module respects the standard reCAPTCHA hook.
Can I export submissions?
Yes. The admin grid supports Magento's standard Export to CSV and XML action. Select submissions and choose Export from the mass-action dropdown.
How are custom field values stored?
All custom field values are saved as JSON in the custom_fields column of the panth_contact_submission table. The admin submission detail page reads and renders each field with its label. The admin email notification also includes the custom field values.
Can I add a file upload field?
Not in this module. For file attachments on the contact form, a small extension plugin can be added on top of the base module.
How do I customize the form layout?
Copy the template from view/frontend/templates/form.phtml to your theme at app/design/frontend/<Vendor>/<theme>/Panth_AdvancedContactUs/templates/form.phtml and edit it. The form uses plain CSS with no build step required.
Does it support multi-store setups?
Yes. All settings respect Magento's scope hierarchy: default, website, and store view. Every user-facing string uses Magento's __() translation function, so you can translate it with a i18n/<locale>.csv file.
Does it need Panth Core?
Yes. mage2kishan/module-core is a free required dependency. Composer installs it for you automatically.
Support
| Channel | Contact |
|---|---|
| Product Page | kishansavaliya.com/magento-2-advanced-contact-us.html |
| kishansavaliyakb@gmail.com | |
| Website | kishansavaliya.com |
| +91 84012 70422 | |
| GitHub Issues | github.com/mage2sk/module-advanced-contact-us/issues |
| Upwork (Top Rated Plus) | Hire Kishan Savaliya |
| Upwork Agency | Panth Infotech |
Response time: 1-2 business days.
Need Custom Magento Development?
Looking for custom Magento module development, Hyva theme work, store migrations, or performance tuning? Get a free quote in 24 hours:
About Panth Infotech
Built and maintained by Kishan Savaliya (kishansavaliya.com), a Top Rated Plus Magento developer on Upwork with 10+ years of eCommerce experience.
Panth Infotech is a Magento 2 development agency that builds high quality, security focused extensions and themes for both Hyva and Luma storefronts. The extension suite covers SEO, performance, checkout, product presentation, customer engagement, and store management, with each module built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.
Browse the full extension catalog on our Magento extensions page or on Packagist.
Quick Links
| Resource | Link |
|---|---|
| Product Page | magento-2-advanced-contact-us.html |
| Packagist | mage2kishan/module-advanced-contact-us |
| GitHub | mage2sk/module-advanced-contact-us |
| Website | kishansavaliya.com |
| Free Quote | kishansavaliya.com/get-quote |
| Upwork (Top Rated Plus) | Hire Kishan Savaliya |
| Upwork Agency | Panth Infotech |
| kishansavaliyakb@gmail.com | |
| +91 84012 70422 |
Ready to give your contact page a proper upgrade?
SEO Keywords: magento 2 contact form, magento 2 advanced contact us, magento 2 ajax contact form, magento 2 contact form extension, magento 2 custom contact fields, magento 2 contact us page, magento 2 contact form with custom fields, magento 2 contact submissions grid, magento 2 contact form database storage, magento 2 contact form spam protection, magento 2 honeypot contact form, magento 2 contact form rate limit, magento 2 contact form no captcha, magento 2 contact form without recaptcha, magento 2 replace default contact form, magento 2 contact form vanilla javascript, magento 2 luma contact form, magento 2 contact form email notification, magento 2 contact form auto reply, magento 2 contact form admin grid, magento 2 contact form status tracking, magento 2 contact form bulk actions, magento 2 contact form gdpr, magento 2 lead capture form, magento 2 inquiry form extension, panth advanced contact us, panth infotech contact form, mage2kishan advanced contact us, magento 2.4.8 contact form, php 8.4 magento contact, hire magento developer upwork, top rated plus magento freelancer, kishan savaliya magento, panth infotech magento, custom magento development, magento 2 contact form module