Docs & Support

Learn about all the Formidable features and get support from our amazing customer success team.

frm_data_sort

Heads up!
This article contains PHP code and is intended for developers. We offer this code as a courtesy, but don't provide support for code customizations or 3rd party development.

This hook allows you to change the order of the options in a Dynamic field or remove unwanted options. This hook cannot be used for dependent Dynamic fields. Instead, use the frm_setup_new_fields_vars hook.

Usage

add_filter('frm_data_sort', 'frm_custom_data_sort', 20, 2);
function frm_custom_data_sort($options, $atts)

Formidable Forms makes advanced site building simple. Launch forms, directories, dashboards, and custom WordPress apps faster than ever before.

Parameters

  • $options (array): All of the options in the Dynamic field with the entry ID as the item key.
  • $atts (array): $atts['dynamic_field'] includes the Dynamic field array. $atts['field'] contains the field object for the linked field (not the Dynamic field).

Examples

Order options by entry ID

Use this code to sort your Dynamic field options by the order the entries were added.

add_filter('frm_data_sort', 'frm_my_data_sort', 21, 2);
function frm_my_data_sort( $options, $atts ) {
    if ( $atts['dynamic_field']['id'] == 100 ) { //change 100 to the ID of the Dynamic field
       ksort( $options );//sorts options by entry ID
    }
    return $options;
}

Remove duplicates from Dynamic field

Use this code to remove duplicate values from a Dynamic field. Please note, this should not be used if you are using the Dynamic field to link entries. It is only recommended when using a Dynamic field in a search form.

add_filter('frm_data_sort', 'frm_remove_duplicates', 21, 2);
function frm_remove_duplicates( $options, $atts ) {
    if ( $atts['dynamic_field']['id'] == 100) {  //change 100 to the ID of the Dynamic field
	$options = array_unique( $options );
    }
    return $options;
}

Order dynamic options with conditionals

Use this code to sort your Dynamic field options if there is conditional logic on the field.

add_filter('frm_data_sort', 'frm_data_sort_conditional', 30, 2);
function frm_data_sort_conditional($options, $args) {
    $target_field_id = 100; // Change 100 to the child field ID.
    if ( $target_field_id === (int) $args['dynamic_field']['id'] ) {
        ksort( $options );
    }
    return $options;
}
Was this article helpful? *

This article may contain affiliate links. Once in a while, we earn commissions from those links. But we only recommend products we like, with or without commissions.

In this article

    We have a small, but amazing team of dedicated people who are committed to helping you achieve your goals and project requirements.


    Copyright © 2025 Strategy11, LLC. Formidable Forms® is a registered trademark Strategy11, LLC.

    Complete your purchase
    Special offer unlocked.
    Get 55% OFF!
    Complete Purchase
    Join 400,000+ using Formidable Forms to create form-focused solutions fast. Get Formidable Forms