Title: Controller Fields for Contact Form 7
Author: Tessa (they/them), AuRise Creative
Published: <strong>May 9, 2023</strong>
Last modified: December 2, 2024

---

Search plugins

![](https://ps.w.org/controller-fields-for-contact-form-7/assets/icon-256x256.png?
rev=3071694)

# Controller Fields for Contact Form 7

 By [Tessa (they/them), AuRise Creative](https://profiles.wordpress.org/tessawatkinsllc/)

[Download](https://downloads.wordpress.org/plugin/controller-fields-for-contact-form-7.2.0.0.zip)

[Live Preview](https://ewe.wordpress.org/plugins/controller-fields-for-contact-form-7/?preview=1)

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

 [Support](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/)

## Description

Contact Form 7 is an excellent WordPress plugin and one of the top choices of free
WordPress plugins for contact forms. Controller Fields makes it even more awesome
by adding dynamic content capabilities. This plugin provides new form tags for select
fields, checkboxes, and radio buttons so you can use them to control the display
of other fields and content. Some examples might include:

 * Hiding or revealing additional form fields based the current value in a dropdown
 * Hiding or revealing content when users click a checkbox
 * Hiding or revealing information based on which radio button is currently selected
 * Controllers and controlled fields can be nested

The possibilities are endless!

#### View Demo

[Preview this plugin](https://wordpress.org/plugins/controller-fields-for-contact-form-7/?preview=1)
in the WordPress Playground, a sandbox environment where you can explore the features
of this plugin, both in the WordPress backend as an admin user and on the frontend.

#### WHAT DOES IT DO?

This plugin creates three (3) new form tags for controlling the appearance of other
form tags (aka “controller”) and a special form tag generator button to output the
HTML needed to wrap the controllable form tags inside.

#### HOW TO USE IT

After installing and activating the plugin, you will have four (4) new buttons at
the top when creating or editing a Contact Form 7 form: select controller, checkbox
controller, radio controller, and controlled form tag wrapper. Most of the options
in their tag generators will be familiar to Contact Form 7 users but there have 
been some upgrades.

**Id Attribute**

The frontend script relies on unique IDs for the controller form tags, so be sure
to always set one!

**Options**

There are three (3) ways you can define your options. The first method is simply
typing your options with each one on a new line, e.g.:

    ```
    Apples
    Bananas
    Dragonfruit
    ```

The second method is similar, but it allows you more control over the value and 
label by using `|` to separate them, e.g.:

    ```
    fruit_1 | Apples
    fruit_2 | Bananas
    fruit_3 | Dragonfruit
    ```

The third method is dynamic in that you can use a shortcode to populate your options
with two important provisions:

 1. The shortcode should NOT include the normal square brackets (`[` and `]`). So, 
    instead of `[my_shortcode key='value']` you would use `my_shortcode key='value'`.
 2. Any parameters in the shortcode must use single quotes. That is: `my_shortcode 
    key='value'` and not `my_shortcode key="value"`

Shortcodes used here should return a string value with the option or option group
HTML.

**Default value**

This field can take static text or a shortcode. If using a shortcode, the same syntax
applies from the options field. However, this field also has a few more needs:

 1. The text/shortcode must first have apostrophes converted to it’s HTML entity code,`'`
 2. After that, it must be URL encoded so that spaces become `%20` and other non-alphanumeric
    characters are converted.

**Placeholder**

Only available for the select controller form tag, this field can take static text
or a shortcode. If using a shortcode, the same syntax applies from the options field.
However, this field also has a few more needs:

 1. The text/shortcode must first have apostrophes converted to it’s HTML entity code,`'`
 2. After that, it must be URL encoded so that spaces become `%20` and other non-alphanumeric
    characters are converted.

**Read Only Attribute**

Simply check this box if you do not want to let users edit this field. It will add
the `readonly` attribute to your form field.

**Disabled Attribute**

Simply check this box if you do not want to submit this field in the form. It will
add the `disabled` attribute to your form field.

## Installation

#### Minimum Requirements

To ensure your WordPress installation meets these requirements, you can login to
your WordPress website and navigate to _Tools > Site Health_ and click on the _Info_
tab. Expand the _WordPress_, _Active Plugins_, and _Server_ accordions and compare
that information with the details below.

 * WordPress version 5.5 or greater
 * PHP version 7.4 or greater
 * [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) version 5.7 or
   greater

There are three (3) ways to install my plugin: automatically, upload, or manually.

#### Install Method 1: Automatic Installation

Automatic installation is the easiest option as WordPress handles the file transfers
itself and you don’t need to leave your web browser.

 1. Log in to your WordPress dashboard.
 2. Navigate to **Plugins > Add New**.
 3. Where it says “Keyword” in a dropdown, change it to “Author”
 4. In the search form, type “TessaWatkinsLLC” (results may begin populating as you
    type but my plugins will only show when the full name is there)
 5. Once you’ve found my plugin in the search results that appear, click the **Install
    Now** button and wait for the installation process to complete.
 6. Once the installation process is completed, click the **Activate** button to activate
    my plugin.

#### Install Method 2: Upload via WordPress Admin

This method involves is a little more involved. You don’t need to leave your web
browser, but you’ll need to download and then upload the files yourself.

 1. [Download my plugin](https://wordpress.org/plugins/controller-fields-for-contact-form-7/)
    from WordPress.org; it will be in the form of a zip file.
 2. Log in to your WordPress dashboard.
 3. Navigate to **Plugins > Add New**.
 4. Click the **Upload Plugin** button at the top of the screen.
 5. Select the zip file from your local file system that was downloaded in step 1.
 6. Click the **Install Now** button and wait for the installation process to complete.
 7. Once the installation process is completed, click the **Activate** button to activate
    my plugin.

#### Install Method 3: Manual Installation

This method is the most involved as it requires you to be familiar with the process
of transferring files using an SFTP client.

 1. [Download my plugin](https://wordpress.org/plugins/controller-fields-for-contact-form-7/)
    from WordPress.org; it will be in the form of a zip file.
 2. Unzip the contents; you should have a single folder named `controller-fields-for-
    contact-form-7`.
 3. Connect to your WordPress server with your favorite SFTP client.
 4. Copy the folder from step 2 to the `/wp-content/plugins/` folder in your WordPress
    directory. Once the folder and all of its files are there, installation is complete.
 5. Now log in to your WordPress dashboard.
 6. Navigate to **Plugins > Installed Plugins**. You should now see my plugin in your
    list.
 7. Click the **Activate** button under my plugin to activate it.

## FAQ

Please check out the [FAQ on our website](https://aurisecreative.com/docs/controller-fields-for-contact-form-7/frequently-asked-questions/?utm_source=wordpress.org&utm_medium=link&utm_campaign=controller-fields-for-contact-form-7&utm_content=readme).

## Reviews

![](https://secure.gravatar.com/avatar/ea42babe905b4cd594216401d584ea66c8dc616f4b44c2ac9c597edbedf700bd?
s=60&d=retro&r=g)

### 󠀁[Awesome Plugin !](https://wordpress.org/support/topic/awesome-plugin-7010/)󠁿

 [ahmadjan](https://profiles.wordpress.org/ahmadjan/) October 27, 2023

Thank you soo much for such a wonderful effort for Awesome feature for Contact form
7.

 [ Read all 1 review ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/)

## Contributors & Developers

“Controller Fields for Contact Form 7” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Tessa (they/them), AuRise Creative ](https://profiles.wordpress.org/tessawatkinsllc/)

[Translate “Controller Fields for Contact Form 7” into your language.](https://translate.wordpress.org/projects/wp-plugins/controller-fields-for-contact-form-7)

### Interested in development?

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

## Changelog

#### 2.0.0

**Release Date: September 1, 2024**

 * Major: Refactored admin functionality into class
 * Feature: Added `number_controller` form tag; use the number text input/spinbox
   as a controller.
 * Feature: Added `range_controller` form tag; use the numeric slider as a controller.
 * Feature: Updated controlled items to allow multiple controllers for `OR` statements.
   Use the pipe (`|`) character to separate controllers. If an element has multiple
   controllers, then there should be a `data-{controller ID}-values` attribute that
   sets the values for that specific controller instead of the generic `data-values`
   attribute.
 * Feature: Updated controlled items to allow for numerical comparison operations.
   Prefix a number with two dashes to perform less than or equal to comparisons (
   e.g. `--100`). Suffix a number with two dashes to perform greater than or equal
   to comparisons (e.g. `5--`). Use a single dash between two numbers to perform
   an inclusive BETWEEN comparison (e.g. `5-100`).
 * Feature: Set the controller’s value to `BLANK` or `EMPTY` to match only blank
   or empty values.
 * Feature: Set the controller’s value to `*` to match any truthy value.
 * Feature: Set the controller’s value to `EMPTY_OR_ZERO` or `FALSEY` to match any
   falsey value.
 * Feature: Prefix a controlled element’s value with `!=` to match everything except
   that value.

#### 1.1.1

**Release Date: April 16, 2024**

 * Fix: Addressed a bug introduced in version 1.1.0 that prevented frontend assets
   from loading.

#### 1.1.0

**Release Date: April 15, 2024**

 * Feature: Number fields can now be controllers. They display controlled fields
   based on number ranges set in the controlled element’s values.
 * Feature: Controlled fields can now have multiple controllers. The `data-controller`
   value should be a pipe-delimited list of controller IDs. If it has multiple controllers,
   then there should be a `data-{controller ID}-values` attribute that sets the 
   values for that specific controller. Controlled fields with multiple controllers
   are only hidden if all controllers evaluate to no matches. Otherwise, it will
   remain visible. Multiple controllers are treated as an OR comparison, meaning
   at least one controller must be active for the controlled field to display. Nest
   them to treat them as an AND operation.
 * Feature: Values can include operations such as `>`, `>=`, `<`, `<=`, `!=`, `*`,`
   BLANK`, `EMPTY_OR_ZERO`. The operation `=` is assumed when no comparison is found.
 * Fix: added `!important` to `au-cf7-controller` CSS to ensure it’s hidden in case
   of conflicting styles.

#### 1.0.2

**Release Date: May 5, 2023**

 * Fix: modifications from plugin review

#### 1.0.1

**Release Date: May 1, 2023**

 * Fix: modifications from plugin review

#### 1.0.0

**Release Date: March 30, 2023**

 * Major: first submission!

#### Full Changelog

Please see our [additional changelog.txt file](https://plugins.trac.wordpress.org/browser/controller-fields-for-contact-form-7/trunk/changelog.txt)

## Meta

 *  Version **2.0.0**
 *  Last updated **1 year ago**
 *  Active installations **50+**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **6.7.5**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/controller-fields-for-contact-form-7/)
 * Tags
 * [conditional](https://ewe.wordpress.org/plugins/tags/conditional/)[contact form 7](https://ewe.wordpress.org/plugins/tags/contact-form-7/)
   [Dynamic](https://ewe.wordpress.org/plugins/tags/dynamic/)[interactive](https://ewe.wordpress.org/plugins/tags/interactive/)
 *  [Advanced View](https://ewe.wordpress.org/plugins/controller-fields-for-contact-form-7/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/?filter=1)

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

[See all reviews](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/reviews/)

## Contributors

 *   [ Tessa (they/them), AuRise Creative ](https://profiles.wordpress.org/tessawatkinsllc/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/controller-fields-for-contact-form-7/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://just1voice.com/donate/)