テンプレートに重力フォームのデータを表示するにはどうすればよいですか?[閉まっている]


21

序文

重力フォームをインストールし、フォームを作成し、ユーザーがサイトにデータを送信しています。私がしたいことは、ユーザーが私のページの1つで私のサイトに送信しているデータを表示することです。

Gravity Forms Directoryプラグインがあることは知っています。しかし、これは固定データ表示のみを提供します。

質問

このようなことをすることができる重力形式のものはありますか?(擬似コード)

<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>


2
@GhostToast信じてください私はドキュメントを完全にコーミングしましたが、これを達成する方法についての情報はありません。
hitautodestruct

1
未来からの注意:フロントエンドでGravity Formsデータを明示的に表示するプラグインは次のとおり
ダルトン

2
私はSOにこの質問を投稿場合、彼らはそれをここに投稿する私に言うだろうことを賭ける:-)すでに別の質問で起こっている何か...
hitautodestruct

回答:


25

ドキュメントを見ることができますが、おそらく実際のドキュメントであるソースコードを読むことになります。

もしそうなら、あなたはそれを見つけるでしょう:

  • GFFormsModel::get_leads($form_id)フォームのエントリのリストを返します(すでに知っているかもしれません)。ここで、配列内の各項目はそれ自体が配列であり、「Entry object
  • GFFormsModel::get_form_meta($form_id)フォーム内のフィールドメタ要素(つまり、名前、タイプ、ルールなど)のリストを返します。配列内の各項目は「フィールドオブジェクト」です

エントリオブジェクトを取得したら、フィールド番号によって要素としてフィールドにアクセスできます。名前またはタイプでフィールドを見つける必要がある場合は、フォーム内のフィールドのリストを反復処理して一致を取得し、フィールドIDでエントリのフィールドにアクセスする必要があります。

NB:フィールドのタイプを決定するには、フィールドのメタ要素を GFFormsModel::get_input_type($field)

編集:各フィールドの最初の200文字のみがEntryオブジェクトで返されることにも注意してください。より多くの情報を格納するフィールドがある場合は、たとえばを呼び出して、それを要求する必要がありますGFFormsModel::get_field_value_long($lead, $field_number, $form)


1
FYI、A重力フォーム管理者はショートのために、このスニペットを投稿pastebin.com/kHpaHQviにも。
hitautodestruct

21

Webawareの回答に感謝します。

クイックスタートを探している人のためのコピー/パスタを次に示します。これはエントリIDを取得し、そこからリードとフォームを取得します。この場合、値を渡すためにURLを使用しています。例:somedomain.com?entry=123。

<?php 
    $lead_id = $_GET['entry'];
    $lead = RGFormsModel::get_lead( $lead_id ); 
    $form = GFFormsModel::get_form_meta( $lead['form_id'] ); 

    $values= array();

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

        $values[$field['id']] = array(
            'id'    => $field['id'],
            'label' => $field['label'],
            'value' => $lead[ $field['id'] ],
        );
    }
?>
<pre><?php print_r($values); ?></pre>

1
あなたのコードは、のための素晴らしいが、文句を言わない仕事であるAdvanced fieldsようなaddress、またはfirst name/last name、彼らが使用しているので、.自分のID分割する
RPDeshaies

また、chckboxesでは機能しません。
numediaweb

エントリを投稿したユーザー情報を取得する方法は?
ジョン

1

gform_after_submissionフックを使用して、必要なものすべてをカスタム投稿タイプに書き込むことができます。これにより、「フィールド内」での操作が容易になり、たとえば、誰かが単一のフィールドを削除し、それに関連するすべてのデータを消去することから安全になります。

http://www.gravityhelp.com/documentation/page/Gform_after_submission

Yoastには、フックを使用しなくても、カスタムフィールドへの書き込みについてかなり優れた記事があります。 http://yoast.com/gravity-forms-custom-post-types/

がんばろう!


1
このようなデータの複製は少し厄介に思えます。
フェリックスイブ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.