GravityForms - Список полей с несколькими DropDown на столбце записей - PullRequest
0 голосов
/ 27 сентября 2019

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

Используя этот пост: GravityForms - поле списка с DropDown для столбца записей - я могу получитьследующий код для работы:

add_filter( 'gform_column_input_1_27_2', 'set_column', 10, 5 );
function set_column( $input_info, $field, $column, $value, $form_id ) {
    return array( 'type' => 'select', 'choices' => 'Fluent,Adequate,Basic' );
}

Но если я добавлю код еще раз и задаю идентификатор gform_column_input_1_27_3, чтобы получить следующее:

add_filter( 'gform_column_input_1_27_2', 'set_column', 10, 5 );
function set_column( $input_info, $field, $column, $value, $form_id ) {
    return array( 'type' => 'select', 'choices' => 'Fluent,Adequate,Basic' );
}

add_filter( 'gform_column_input_1_27_3', 'set_column', 10, 5 );
function set_column( $input_info, $field, $column, $value, $form_id ) {
return array( 'type' => 'select', 'choices' => 'Fluent,Adequate,Basic' );
}

Возвращает ошибку:

Cannot redeclare set_column() (previously declared in wp-content/themes/xxxxxx/functions.php:40)

Может кто-нибудь объяснить, как заставить третий столбец отображать выпадающий список, как второй?Спасибо.

1 Ответ

1 голос
/ 28 сентября 2019

Вы объявляете функцию set_columns() дважды.

Если у них обоих будет одинаковый выбор, вы можете написать это так, чтобы оба фильтра вызывали одну и ту же функцию (без повторного объявления):

add_filter( 'gform_column_input_1_27_2', 'set_column', 10, 5 );
add_filter( 'gform_column_input_1_27_3', 'set_column', 10, 5 );
function set_column( $input_info, $field, $column, $value, $form_id ) {
    return array( 'type' => 'select', 'choices' => 'Fluent,Adequate,Basic' );
}

Если вам нужны другие варианты для второй, вы можете переименовать вторую функцию:

add_filter( 'gform_column_input_1_27_2', 'set_column', 10, 5 );
function set_column( $input_info, $field, $column, $value, $form_id ) {
    return array( 'type' => 'select', 'choices' => 'Fluent,Adequate,Basic' );
}

add_filter( 'gform_column_input_1_27_3', 'set_column2', 10, 5 );
function set_column2( $input_info, $field, $column, $value, $form_id ) {
return array( 'type' => 'select', 'choices' => 'One,Two,Three' );
}
...