Создание опроса гравитационной формы на основе типов сообщений

Есть ли способ создания / обновления полей опроса на основе типа контента? Например, у меня есть тип сообщения под названием Candidate и я хотел бы динамически обновлять список опроса при добавлении нового кандидата или при его удалении.

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

Я, конечно, могу добавить каждого кандидата по одному, а затем добавить каждого кандидата по одному в форме, но надеялся, что есть способ сделать это в коде. До сих пор я не нашел ничего, кроме фильтров, в документации Gravity Forms.

Повторим, мой вопрос здесь не в соединении веб-интерфейса, а в том, как динамически обновлять / добавлять опцию в поле опроса в форме при создании контента для Candidate тип сообщения.

Любая помощь будет оценена.

0

Решение

Я считаю, что решение, которое вы ищете, задокументировано здесь:

http://www.gravityhelp.com/documentation/gravity-forms/extending-gravity-forms/hooks/filters/gform_pre_render/

Возможно, комбинация примеров решений № 1 и № 2 на этой странице подойдет вашим потребностям? Так —

  1. Создайте категорию стандартных страниц WordPress (название категории: «Кандидаты»), и страницы будут содержать информацию о кандидате (биография, фото и т. Д.).

  2. В вашем файле functions.php для вашей текущей темы, вы бы добавили что-то вроде следующего, чтобы вытащить ценность этой категории постов:

    // modify form output for the public page
    add_filter("gform_pre_render", "populate_checkbox");
    // modify form in admin
    add_filter("gform_admin_pre_render", "populate_checkbox");
    
    function populate_dropdown($form) {
    // some kind of logic / code to limit what form you're editing
    if ($form["id"] != 1) { return $form; }
    
    //Reading posts for "Business" category;
    $posts = get_posts("category=" . get_cat_ID("Candidates"));
    
    foreach ($form['fields'] as &$field) {
    
    // assuming field #1, if this is a voting form that uses checkboxes
    $target_field = 1;
    if ($field['id'] != $target_field) { break; }
    
    // init the counting var for how many checkboxes we'll be outputting
    // there's some kind of error with checkboxes and multiples of 10?
    $input_id = 1;
    foreach ($posts as $post) {
    
    //skipping index that are multiples of 10 (multiples of 10 create problems as the input IDs)
    if($input_id % 10 == 0) { $input_id++; }
    
    // here's where you format your field inputs as you need
    $choices[] = array('text' => $post->post_title, 'value' => $post->post_title);
    $inputs[] = array("label" => $post->post_title, "id" => "{$field_id}.{$input_id}");
    
    // increment the number of checkboxes for ID handling
    $input_id++;
    }
    
    $field['choices'] = $choices;
    $field['inputs'] = $inputs;
    }
    
    // return the updated form
    return $form;
    }
    
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]