=== OptionWeave Cascading Dropdowns for Forminator ===
Contributors: robertoliccardo
Tags: forminator, dependent dropdown, cascading dropdowns, conditional select, multi-level select
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build multi-level dependent dropdowns in Forminator. Filter each Child Select from its Parent choice with secure server-side validation.

== Description ==

OptionWeave Cascading Dropdowns for Forminator gives you a guided way to create dependent dropdowns in Forminator without writing custom code.

For example, a visitor can choose a region in a Parent dropdown and then see only the showrooms available in that region in the Child dropdown.

Create multiple Parent-to-Child relationships in the same published Forminator Custom Form. A Child field can become the Parent of the next relationship, allowing multi-level dropdown trees such as Country > Region > City. Parent and Child can be on the same page or on different pages of a multi-page form.

Key features:

* Creates multiple Parent-to-Child dropdown relationships in each Forminator Custom Form.
* Builds multi-level dropdown trees by using one Child field as the Parent of the next relationship.
* Filters Child choices immediately after a visitor selects a Parent choice.
* Supports Parent and Child fields placed on different pages of a Forminator multi-page form.
* Clears a changed Child selection and every downstream selection when an earlier Parent choice changes.
* Validates every relationship on the server when the form is submitted.
* Uses the Select fields and choices already configured in Forminator.
* Detects removed fields or changed choices and asks you to review the mapping before relying on it.
* Keeps all configuration and form data on your WordPress site. No data is sent to an external service.

OptionWeave Cascading Dropdowns for Forminator is an independent extension for Forminator. It is not affiliated with or endorsed by WPMU DEV.

== Installation ==

1. Install and activate Forminator.
2. Install and activate OptionWeave Cascading Dropdowns for Forminator.
3. In Forminator, create or edit a published Custom Form with two Select fields set to Single selection.
4. Disable the Other option on both Select fields. The fields may be on the same page or on different pages of a multi-page form.
5. In WordPress administration, open Forminator > OptionWeave.
6. Choose the Forminator form, then choose the Parent and Child fields.
7. For every Parent choice, select one or more Child choices that should remain available.
8. Save the relationship. Repeat the process to add branches or a next level in the same form.
9. Publish or update the Forminator form.

== Screenshots ==

1. Create the first relationship in a Country > Region > City dropdown tree by selecting a Forminator form, Parent and Child fields, then choosing the allowed Child options.
2. Dashboard overview showing multiple relationships in the same form, including Country > Region and Region > City.
3. On the public form, selecting a country and region makes only the matching city choices available.

== Frequently Asked Questions ==

= What does the current version do? =

It adds Parent-to-Child dependent dropdown relationships to Forminator Custom Forms. Selecting a Parent option filters the existing choices in the Child dropdown.

= Which Forminator fields are supported? =

The current version supports Select fields configured for Single selection in published Forminator Custom Forms. Multi-select fields, other field types, and Select fields with the Other option enabled are not supported.

= Can I create more than one relationship in the same form? =

Yes. You can create multiple relationships in the same form, including multi-level trees such as Country > Region > City. A Child field can have one Parent relationship, which keeps filtering predictable, and circular relationships are not allowed.

= Can Parent and Child be on different Forminator pages? =

Yes. A visitor can choose the Parent on one Forminator page and see the filtered Child choices when the next page opens.

= What happens when a visitor changes the Parent choice? =

The Child selection is cleared, then the Child dropdown shows only the choices allowed for the newly selected Parent choice.

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

No. The same Parent-to-Child relationship is checked on the server when Forminator receives a submission. A manually altered Child value is rejected.

= How is this different from Forminator conditional logic? =

Forminator conditional logic can show or hide whole fields. OptionWeave Cascading Dropdowns for Forminator filters the available choices inside one Child Select field, so you can keep one Child field and one consistent submission value.

= What happens if I change a Forminator field or choice after saving a relationship? =

The plugin marks the relationship for review or blocks it when necessary. Open Forminator > OptionWeave, review the mapping, and save it again before using the form.

= Does the plugin change WordPress or Forminator files? =

No. It uses WordPress and Forminator extension points and does not modify their files.

= Does the plugin send data to an external service? =

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

= What happens when I remove a relationship? =

Only the saved Parent-to-Child mapping is removed. The Forminator form, its fields, and its choices are not changed.

= What happens when I deactivate or delete the plugin? =

Forminator forms, fields, and choices are never changed. The saved relationship configuration is retained in the WordPress database so it can be restored if you activate the plugin again. Remove relationships from OptionWeave before deleting the plugin if you no longer need their configuration.

== Changelog ==

= 1.0.0 =

* First public release.
* Guided Parent-to-Child dropdown configuration for Forminator Custom Forms.
* Dynamic Child filtering, automatic Child reset, and server-side submission validation.
* Supports Parent and Child fields on different pages of Forminator multi-page forms.
* Relationship diagnostics for changed or removed Forminator fields and choices.
* Filter active dependencies by Forminator form from the OptionWeave dashboard.
* Dashboard link from the WordPress Plugins page.
* Multiple Parent-to-Child relationships in the same Forminator form.
* Multi-level dependency trees and Parent branches.
* Cycle prevention and protection against multiple Parents controlling the same Child field.
* Downstream reset when an earlier Parent selection changes.

== Upgrade Notice ==

= 1.0.0 =

First public release with multi-level Parent-to-Child dropdown trees for Forminator.
