Title: ACS Contact Form
Author: ACS
Published: <strong>September 9, 2026</strong>
Last modified: September 9, 2026

---

Search plugins

![](https://ps.w.org/acs-contact-form/assets/banner-772x250.png?rev=3687557)

![](https://ps.w.org/acs-contact-form/assets/icon-256x256.png?rev=3687557)

# ACS Contact Form

 By [ACS](https://profiles.wordpress.org/hanchan/)

[Download](https://downloads.wordpress.org/plugin/acs-contact-form.2.0.2.zip)

 * [Details](https://wordpress.org/plugins/acs-contact-form/#description)
 * [Reviews](https://wordpress.org/plugins/acs-contact-form/#reviews)
 *  [Installation](https://wordpress.org/plugins/acs-contact-form/#installation)
 * [Development](https://wordpress.org/plugins/acs-contact-form/#developers)

 [Support](https://wordpress.org/support/plugin/acs-contact-form/)

## Description

Most contact forms end at “mail sent”. The enquiry then lives in an inbox, next 
to newsletters and invoices, and the one that mattered gets answered four days late—
or not at all.

**ACS Contact Form** keeps the light, dependency free form of version 1 and adds
the part that comes after the send button.

#### Every message is kept in WordPress

Submissions are stored in your own database and listed in the admin: form name, 
sender, subject, category, status, when it arrived and how long it has been sitting
there. Nothing depends on a mail server that may or may not deliver.

 * Status is **Untouched**, **In progress** or **Done**, and starts at Untouched
 * Change status and category straight from the list, or open one message for the
   full detail
 * Filter by form, category and status, search the saved text, and export the current
   view to CSV
 * The detail screen shows every field, the attachments, the reply draft and a history
   of your own notes

#### Messages sort themselves

Each submission is scored against keyword rules and filed as **Estimate**, **Consultation**,**
Recruiting**, **Sales** or **Spam**. Anything that matches nothing becomes Consultation,
so nothing disappears.

 * The rules are plain keyword lists you can edit — the defaults are written for
   Japanese enquiries
 * Subject, body and the sender’s mail domain are all considered
 * On a tie, the category that does **not** suppress the notification wins, so an
   ambiguous message is never quietly filed away
 * Spam signals: the honeypot field, a body full of links, and text with no Japanese
   in it at all

**Sales and spam do not send you a notification mail by default.** They still appear
in the list, so you can look when you feel like it instead of every time a cold 
pitch arrives. Which categories notify you is a setting.

#### A reminder when something is left

If a message is still Untouched after three days, a single daily mail lists everything
that has been forgotten, with a link to each one. The threshold is a setting, zero
switches it off, and messages marked In progress are left alone.

#### An optional reply draft

If — and only if — you have connected an AI provider to WordPress itself under **
Settings > Connectors**, the detail screen gains a **Write a draft reply** button.
The draft appears in an editable box; you read it, fix it, and send it from your
own mail client. The plugin asks the WordPress core AI Client for the text; it holds
no API key of its own and never contacts a provider directly. With nothing connected,
the button is not shown. See **External services** below.

#### Still the same form

The form builder, the shortcode, the block, the design settings and the auto-reply
from version 1 all work exactly as before. Updating from 1.1.2 keeps every form 
and every setting.

 * Drag-free ordering of standard fields, custom fields and the attachment field
 * Text, textarea, select, radio and checkbox custom fields
 * Colours, radii and required badges per form
 * Ajax submission with no jQuery
 * Honeypot spam trap, no third-party captcha, no external request

### External services

This plugin does not connect to any external service, and it stores no API key.

One optional feature, **the AI reply draft**, is built on the AI Client that ships
with WordPress 7.0. The plugin hands the prompt to `wp_ai_client_prompt()` and reads
the answer back. Which provider that reaches, which model it uses and where the 
credentials live are decided by WordPress itself, on **Settings > Connectors**. 
If no provider is connected there, the draft button is not shown and nothing is 
ever sent.

When you press “Write a draft reply” (or, if you switch that option on, when a submission
arrives), the text handed to the AI Client contains: the subject and the field values
of that one submission, the sender’s name, your site name, the name you set as the
person replying, and the tone you selected. Nothing else is included, and nothing
is sent for messages you do not act on.

Please read the terms of whichever provider you connect to WordPress before switching
the feature on, and tell your visitors in your own privacy policy if you enable 
it.

### Privacy

The plugin stores what a visitor typed into your form, plus the page the form was
submitted from and, unless you switch that off, the sender’s IP address. Attachments
are stored as files inside your uploads directory.

This data stays on your own server. It is registered with the WordPress personal
data tools, so an export request includes the stored submissions of that email address
and an erasure request deletes them together with their attachments. Individual 
messages can also be deleted from the list at any time.

## Screenshots

[⌊Enquiries — every submission with its category, status and how long it has been
waiting, with filters and CSV export⌉⌊Enquiries — every submission with its category,
status and how long it has been waiting, with filters and CSV export⌉[

Enquiries — every submission with its category, status and how long it has been 
waiting, with filters and CSV export

[⌊One enquiry — the full message, the attachments, a reply draft and your own notes,
with status on the right⌉⌊One enquiry — the full message, the attachments, a reply
draft and your own notes, with status on the right⌉[

One enquiry — the full message, the attachments, a reply draft and your own notes,
with status on the right

[⌊Settings — which categories notify you, how many days before the reminder, and
the keyword rules for each category⌉⌊Settings — which categories notify you, how
many days before the reminder, and the keyword rules for each category⌉[

Settings — which categories notify you, how many days before the reminder, and the
keyword rules for each category

[⌊Settings — the optional reply draft, off until an AI provider is connected to 
WordPress⌉⌊Settings — the optional reply draft, off until an AI provider is connected
to WordPress⌉[

Settings — the optional reply draft, off until an AI provider is connected to WordPress

[⌊The form builder — field order, standard fields, custom fields, attachments and
mail settings on one screen⌉⌊The form builder — field order, standard fields, custom
fields, attachments and mail settings on one screen⌉[

The form builder — field order, standard fields, custom fields, attachments and 
mail settings on one screen

[⌊The form as a visitor sees it⌉⌊The form as a visitor sees it⌉[

The form as a visitor sees it

## Blocks

This plugin provides 1 block.

 *   ACS Form Place a form built with ACS Contact Form.

## Installation

 1. Upload the plugin ZIP under Plugins > Add New > Upload Plugin, then activate it
 2. Open **ACS Forms > Add New**, name the form, and switch on the fields you need
 3. Set the destination address under **Mail settings**, and send yourself a test mail
    from the box on the right
 4. Copy the shortcode from the form list, or place the **ACS Form** block on a page
 5. Open **ACS Forms > Enquiries** to see what arrives, and **ACS Forms > Settings**
    to adjust the categories, the reminder and, if you want one, the reply draft

Updating from version 1: activate as usual. Forms, mail settings and design settings
are read from the same place as before; storage, classification and the reminder
start with the next submission.

## FAQ

### Where are the submissions stored?

In your own WordPress database, as a private post type that is not readable from
the front end, plus its post meta. Attachments are written to a separate folder 
inside your uploads directory under a random, unguessable file name, with an Apache
deny rule and an index file, and the download links in the admin check both a nonce
and a capability. You can switch storage off entirely and go back to mail-only behaviour.

### Who can read the enquiries?

Users who can manage options — administrators by default. The capability can be 
changed with the `acscf_manage_capability` filter.

### Why does the plugin not send the reply for me?

Because `wp_mail()` is not a reliable way to reach a customer’s inbox, and a misfired
reply from a web server is worse than a late one. The draft is written for you to
copy, and there is a link that opens your own mail client with the address, the 
subject and the draft already filled in.

### The classification put a message in the wrong box.

Open **Settings > Classification** and edit the keyword list. You can also change
the category of any single message from the list or the detail screen; the change
is kept.

### Will the reminder mail me forever?

It only counts messages that are still Untouched and in a category you have chosen
to be notified about. Marking a message In progress or Done takes it out of the 
reminder immediately.

### Does anything leave my site?

Nothing is sent by this plugin. The optional reply draft goes through the WordPress
core AI Client, so a request leaves your site only if you have connected an AI provider
to WordPress under Settings > Connectors and you press the draft button. There is
no license check, no telemetry, no update server and no external font or script.

### Can I keep my data when I delete the plugin?

Yes, and that is the default. Deletion of your forms, submissions and attachments
happens only if you switch on “delete data on uninstall” in the settings first.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ACS Contact Form” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ ACS ](https://profiles.wordpress.org/hanchan/)

[Translate “ACS Contact Form” into your language.](https://translate.wordpress.org/projects/wp-plugins/acs-contact-form)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/acs-contact-form/),
check out the [SVN repository](https://plugins.svn.wordpress.org/acs-contact-form/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/acs-contact-form/)
by [RSS](https://plugins.trac.wordpress.org/log/acs-contact-form/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.2

 * Changed: every function, class, constant, option, post type, meta key, shortcode,
   hook, cron event and script handle now uses the `acscf` prefix, so no name is
   shorter than four characters. A one-time migration runs on the first admin page
   load and carries your settings, forms, submissions and embedded shortcodes over;
   the old options are left untouched so the update can be rolled back.
 * Changed: the AI reply draft now uses the WordPress core AI Client (WordPress 
   7.0 and later). The provider, model and API key fields have been removed from
   the plugin: connect a provider under Settings > Connectors instead. The plugin
   makes no direct provider connections.
 * Changed: requires WordPress 7.0 or later.

#### 2.0.1

 * Fix: frontend submissions failed with a nonce error because the AJAX request 
   did not include the frontend nonce. The nonce is now sent with every submission.

#### 2.0.0

 * New: submissions are stored in WordPress and listed in the admin, with status,
   category, search, filters and CSV export
 * New: a detail screen with the full message, attachments, a reply draft, reply
   history notes and a “mark as replied” action
 * New: automatic classification into estimate, consultation, recruiting, sales 
   and spam, with editable keyword rules
 * New: sales and spam no longer send a notification mail by default; which categories
   notify you is a setting
 * New: a daily reminder about submissions left untouched for a configurable number
   of days
 * New: an optional AI reply draft, off by default, using an API key you provide
   yourself
 * New: attachments are kept with the submission in a protected folder and served
   only to authorised users
 * New: personal data exporter and eraser, and an uninstall routine that only removes
   data if you ask it to
 * Improved: stricter attachment checks (extension allow list, real file type verification,
   size and count limits, random file names)
 * Improved: every screen goes through nonce and capability checks, and every output
   is escaped
 * Removed: the external update check of the previous distribution

#### 1.1.2

 * Improved: test mail from the form edit screen
 * Fixed: field order handling for custom fields

#### 1.1.1

 * Improved: design settings

#### 1.1.0

 * New: attachment support and field ordering

#### 1.0.0

 * First release

## Meta

 *  Version **2.0.2**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 7.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [contact form](https://wordpress.org/plugins/tags/contact-form/)[form builder](https://wordpress.org/plugins/tags/form-builder/)
   [inbox](https://wordpress.org/plugins/tags/inbox/)[notification](https://wordpress.org/plugins/tags/notification/)
   [spam](https://wordpress.org/plugins/tags/spam/)
 *  [Advanced View](https://wordpress.org/plugins/acs-contact-form/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/acs-contact-form/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/acs-contact-form/reviews/)

## Contributors

 *   [ ACS ](https://profiles.wordpress.org/hanchan/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/acs-contact-form/)