=== Dependent Dropdowns for Forminator ===
Tags: forminator, dependent dropdown, dropdown, forms, conditional logic
Requires at least: 6.4
Tested up to: 7.1
Stable tag: 1.0.1
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create independent parent-child dependent dropdowns for Forminator with filtered options, clean resets, and server-side validation.

== Description ==

Skaym Dependent Dropdowns for Forminator lets Forminator Single Select fields control which options appear in other Single Select fields.

Example:

* Department: Cardiology -> Doctor A, Doctor B
* Department: Dentistry -> Doctor C, Doctor D

You can create multiple independent Parent -> Child dependencies in the same Forminator form. Each Select field can participate in one dependency, so the free plugin is designed for independent pairs rather than multi-level chains.

Need a chain such as Department -> Doctor -> Room, or one field participating in several relationships? [Get the separate Pro plugin](https://ko-fi.com/s/7baef3e8a4), which adds chained dependency graphs.

Key features:

* Multiple independent Parent -> Child Select relationships per Forminator Custom Form.
* Uses existing Forminator Single Select fields and option values.
* Resets the child field when the parent selection changes.
* Validates the configured relationship on the server during submission.
* Keeps configuration separate for each Forminator form.
* Keeps each independent dependency pair on distinct Select fields.
* Detects removed or changed fields/options and asks for review.
* Does not send form or configuration data to an external service.

This is an independent third-party extension for Forminator and is not affiliated with or endorsed by WPMU DEV.

== Installation ==

1. Install and activate Forminator.
2. Install and activate Skaym Dependent Dropdowns for Forminator.
3. In Forminator, create or edit a Custom Form with at least two Select fields set to Single selection.
4. Give the child Select a placeholder such as "Select a doctor".
5. Disable Forminator's "Other option" on fields used in the dependency.
6. Publish or update the form.
7. Go to Forminator -> Dependent Dropdowns.
8. Choose the form and configure a parent Select and child Select.
9. Tick the child options allowed for each parent option.
10. Use Add dependency for additional independent field pairs if needed.
11. Save the configuration.

== Frequently Asked Questions ==

= Which Forminator fields are supported? =

Forminator Custom Form Select fields using Single selection. Multi-select fields are not supported.

= Can I create multiple dependencies? =

Yes. You can create multiple independent dependency pairs in a form. Each pair must use distinct Select fields. Multi-level chains and relationships that reuse a field are provided by the separate Pro plugin linked in the Description.

= Why should the child field have a placeholder? =

A placeholder gives the child field a clear value to reset to when the parent selection changes.

= Can I use Forminator's Other option? =

No. Other allows arbitrary custom values that cannot be mapped reliably. Disable Other on every Select field used in the dependency.

= What happens if I remove a mapped Forminator field or option? =

The plugin stops using invalid references at runtime and marks the saved configuration for review. Return to Forminator -> Dependent Dropdowns, review the mapping, and save again.

= Does the plugin only hide options in the browser? =

No. It also validates the configured parent-child relationship on the server during Forminator submission.

= Does it send data to an external service? =

No. The plugin does not send its configuration or form submission data to an external service.

== Screenshots ==

1. Configure independent parent and child Forminator Select fields and map the allowed child options.
2. The child dropdown is filtered on the front end based on the selected parent option.

== Changelog ==

= 1.0.0 =

* First public release.
* Multiple independent parent-child Single Select relationships per Forminator form.
* Frontend filtering and child reset behavior.
* Server-side validation of configured relationships.
* Per-form configuration isolation and stale-field safety.
