2016-07-15 9 views
0

私は、ラジオボタンを使用して一連の質問を提示するマルチページGravity Formを持っています。gform_pre_render()にGravity Formsフィールドを追加する方法

Which of the following would you choose? 

    o Choice #1 
    o Choice #2 

    +----------+ +----------+ 
    | BACK | | NEXT | 
    +----------+ +----------+ 

各質問と選択セットは、カスタムフィールド(詳細カスタムフィールド)を使用して構成されています。私はgform_pre_renderフィルタの中からこれらの質問と選択肢をすべて反復することができました。そして今、必要な重力フォームフィールドをオンザフライで作成したいと思います。

具体的には、質問ごとにページフィールドとラジオボタンフィールドがあります。

Googleで考えることができるすべての検索条件を試してみましたが、Gravityヘルプのドキュメントを参照していましたが、フィールドを動的に追加する例はありません。

誰かが私のために光を照らすことができますか? :P

答えて

1

GFFields::create()でフィールドを作成できます。ここでは大まかな例としては、(だあなたはgform_pre_renderフィルター内にある前提としています。

$props = array( 
    'id' => 123, 
    'label' => 'My Field Label', 
    'type' => 'text' 
); 
$field = GF_Fields::create($props); 
array_push($form['fields'], $field); 

あなたはフィールドが作業を取得するために指定する必要があります複数のプロパティは、おそらくあります。私はのアイデアを得るために、既存のフィールドにprint_r()を使用することをお勧めします

最後に、これらの既存のフィールドからデータを取得するには、gform_pre_validationフィルタを使用してダイナミックフィールドを追加することをお勧めします

+0

私は致命的なエラーが発生しますまたは:クラスGFFieldが見つかりません。 – rwkiii

+0

'GFFields'ではなく' GF_Fields'のように見えますか? – rwkiii

+0

また、 'GF_Fields :: create()'はフィールドをフォームに追加するようです。 'array_push()'を実行すると、フォームに2つのフィールドが追加されます。 – rwkiii

関連する問題