Получение атрибутов поля Gravity Forms по тексту метки - PullRequest
0 голосов
/ 30 марта 2019

Я работаю над функцией поиска поля из любой формы на основе текста метки. Я хотел бы вернуть различные атрибуты поля, чтобы я мог использовать их позже.

Первоначально мне просто нужно было значение поля, поэтому я использовал эту работу, чтобы вернуть значение поля на основе метки:

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" );

Позже, продолжая работать над своим решением, я обнаружил, что мне также нужно найти эти поля и вернуть идентификатор. Первоначально я написал ту же функцию и только что возвратил идентификатор, но я хотел бы сделать решение более эффективным, переписав функцию, чтобы она возвращала несколько атрибутов поля в массиве следующим образом:

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 Ответ

1 голос
/ 30 марта 2019

Хорошо, я пойду и отвечу на свой вопрос.Такое простое решение для этого.Имел мгновенный пук мозга.

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

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