通过标签文本获取重力形式字段属性

时间:2019-03-30 14:43:37

标签: gravityforms

我正在使用一个函数,根据标签文本从任何形式中查找字段。我想返回该字段的不同属性,以便以后使用。

最初,我只需要该字段的值,所以我在这里使用了该工作以基于标签返回一个字段的值:

function itsg_get_value_by_label( $form, $entry, $label ) {
            foreach ( $form['fields'] as $field ) {
                $lead_key = $field->label;
                if ( strToLower( $lead_key ) == strToLower( $label ) ) {
                    return $entry[ $field->id ];
                }
            }
            return false;
        }

我通过设置变量并传入要查找的字段标签来获得自己的价值:

$mobile_phone = itsg_get_value_by_label( $form, $entry, "Mobile Phone" );

后来,当我继续研究解决方案时,我发现我还需要找到这些字段并返回ID。最初,我编写了相同的函数,只是返回了ID,但我想通过重写函数以返回数组中的多个字段属性来提高解决方案的效率,例如:

function get_field_atts_by_label( $form, $entry, $label ) {
            foreach ( $form['fields'] as $field ) {
                $lead_key = $field->label;
                if ( strToLower( $lead_key ) == strToLower( $label ) ) {
                    $field_atts = array(
                        'value' => $entry[ $field->id ],
                        'id'    => $field->id,
                    );
                    return $field_atts;
                }
            }
            return false;
        }

我现在的问题是我不太确定如何从函数中检索特定属性并将它们设置为变量。

1 个答案:

答案 0 :(得分:1)

好吧,我继续回答我自己的问题。这样简单的解决方案。出现了短暂的大脑放屁。

$mobile_phone = get_field_atts_by_label( $form, $entry, "Mobile Phone" );

$mobile_phone_id = $mobile_phone['id'];
$mobile_phone_value = $mobile_phone['value'];