Mojtaba
Mojtaba

Reputation: 11

gravity forms Form Entry - display label, not value for checkboxes, select

I've got checkboxes and selects where label is different to its value. In the DB the value is saved ok, however, when viewing Form Entries (and pre-submit form data) for all the checkboxes and selects the values are displayed not labels. So I end up with not so informative IDs rather than names.

Is there a way to display labels instead of values in the Form Entries screen?

Upvotes: 1

Views: 2374

Answers (1)

wunderdojo
wunderdojo

Reputation: 1027

I came across your question while looking to do the same thing. I have a field called Account Type that stores the account type ID as the value. In the entries list I want to show the account type name, not the ID.

Here's the solution:

In your theme's functions.php file add the following filter:

add_filter( 'gform_entries_column_filter', 'modify_entry_view', 10, 5 );

You'll find the documentation for it here: https://docs.gravityforms.com/gform_entries_column_filter/

Then add the function code:

function modify_entry_view( $value, $form_id, $field_id, $entry, $query_string ){

    //- Check the field ID to make sure you only change that one
    if( $field_id == 14 ){

        return 'modified value';

    };

    return $value;

}

In my case I'm using a custom field that I created called account_type that prepopulates a select menu with choices corresponding to each of the account types in our system. I used the following call to check the field type instead of checking based on field id since the id will change from form to form:

if( RGFormsModel::get_field( $form_id, $field_id )->type == 'account_type' ){

You could do the same thing but use the label property instead of type, like:

if( RGFormsModel::get_field( $form_id, $field_id )->label == 'Field Label' ){

In my case the value saved is a term id from a custom taxonomy I set up called account_type, so I simply use:

return get_term_by( 'id', $value, 'account_type' )->name;

to replace the account id with the account name.

FYI: The process is the same for the entry detail, use the filter documented here: https://docs.gravityforms.com/gform_entry_field_value/

Upvotes: 1

Related Questions