重力形式表单输入-显示标签,而不显示复选框的值,请选择

时间:2018-07-25 21:21:08

标签: forms dropdown gravityforms

我有一个复选框,并选择标签与其值不同的地方。 在数据库中,该值保存正确,但是,当查看所有复选框的表单条目(和预先提交表单数据)并选择值时,将显示这些值而不是标签。因此,最终我得到的不是ID信息,而是名称。

是否可以在表单条目屏幕中显示标签而不是值?

1 个答案:

答案 0 :(得分:1)

在尝试做同样的事情时,我遇到了您的问题。我有一个称为“帐户类型”的字段,该字段存储帐户类型ID作为值。在条目列表中,我要显示帐户类型名称,而不是ID。

这是解决方案:

在主题的functions.php文件中,添加以下过滤器:

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

您将在此处找到其文档:https://docs.gravityforms.com/gform_entries_column_filter/

然后添加功能代码:

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;

}

在我的情况下,我使用的是我创建的名为account_type的自定义字段,该字段预填充了一个选择菜单,其中包含与系统中每种帐户类型相对应的选项。我使用以下调用来检查字段类型,而不是根据字段ID进行检查,因为ID会因表格而异:

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

您可以做同样的事情,但是使用label属性而不是type,例如:

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

在我的情况下,保存的值是我设置的自定义分类法(称为account_type)中的术语ID,因此我只需使用:

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

用帐户名替换帐户ID。

仅供参考:输入详细信息的过程相同,请使用此处记录的过滤器:https://docs.gravityforms.com/gform_entry_field_value/