Как настроить собственные параметры выбора в Gravity Forms?

У меня есть два поля выбора в этой пользовательской форме гравитации, с которыми я боролся. Первое поле — это список вебинаров. Второе поле представляет собой список дат вебинара. Какие даты показывать, зависит от того, какой вебинар вы выберете. Я планирую отсортировать этот список с помощью jQuery, но для этого мне нужно добавить атрибут к параметрам выбора в поле выбора дат вебинара. В настоящее время я не могу понять, как изменить функцию выбора параметров GF. Вот как сейчас выглядит моя пользовательская функция:

//Populate Webinars form field for Webinar dates
add_filter( 'gform_pre_render_2', 'populate_webinar_dates' );
function populate_webinar_dates( $form ) {

    foreach( $form[ 'fields' ] as &$field ) {

        if( $field[ 'type' ] != 'select' || strpos( $field[ 'cssClass' ], 'populate-dates' ) === false )
            continue;

        $posts = new WP_Query( 'numberposts=-1&post_status=publish&post_type=vtl_webinar' );

        $choices = '<option value=" ">Select a date</option>';

        while ( $posts->have_posts() ) : $posts->the_post();
            while ( has_sub_field( 'dates_available' ) ) :
                $post_dates = array( 'date' => get_sub_field( 'date' ) );
                $post_title = array( 'name' => str_replace( " ", "-", get_the_title() ) );
                //$choices[] = array( 'text' => $post_dates['date'], 'value' => $post_dates['date'] );
                $choices = '<option value="' . $post_dates['date'] . '" data-id="' . $post_title . '">' . $post_dates['date'] . '</option>';
            endwhile;                
        endwhile;

        $field[ 'choices' ] = $choices;

    }

    return $form;
}

Очевидно, эта строка не работает:

$choices = '<option value="' . $post_dates['date'] . '" data-id="' . $post_title . '">' . $post_dates['date'] . '</option>';

Ожидаются параметры, аналогичные форме с комментариями над этой строкой, но вы не можете просто добавить свои собственные атрибуты в эту строку. Вы должны работать в соответствии с существующим набором параметров, которые ищет GF. Может ли кто-нибудь помочь мне с этим? Мне просто нужно получить атрибут данных в опциях.


person Bryan White    schedule 06.01.2015    source источник


Ответы (1)


Я собирался об этом неправильно. Чтобы получить настраиваемые параметры, которые я пытался создать, я использовал следующий код вместо того, что я разместил выше.

add_filter("gform_field_input", "webinar_date_option", 10, 2);
function webinar_date_option($input, $field, $value, $lead_id, $form_id) {
    if ( $field["cssClass"] == "populate-dates" ) {
        $input = '<select name="input_2" id="input_2_2" class="medium gfield_select" tabindex="2">';
        $posts = new WP_Query( 'numberposts=-1&post_status=publish&post_type=vtl_webinar' );
        $input .= '<option value=" ">Select Date</option>';
        while ( $posts->have_posts() ) : $posts->the_post();
            while ( has_sub_field( 'dates_available' ) ) :
                $post_dates = array( 'date' => get_sub_field( 'date' ) );
                $date_id = array( 'id' => get_the_ID() );
                $input .= '<option value="'. $post_dates['date'] .'" data-id="'. $date_id['id'] .'">'. $post_dates['date'] .'</option>';
            endwhile;
        endwhile;
        $input .= '</select>';
    }
    return $input;
}
person Bryan White    schedule 08.01.2015