如何从Ninja Forms中获取数据以显示在前端?

时间:2018-09-17 16:00:26

标签: php wordpress ninja-forms

我对Javascript有点了解,我还不是程序员。 我创建了一个Ninja Forms用于我的Wordpress网站。当用户填写表单的4个字段并按 Submit 时,我需要这些数据始终显示在前端(在html中创建的4个特定位置),最后一个显示提交了对上一个的覆盖。

Ninja像这样将数据保存在wp_postmeta中:

    **meta_key**   **meta_value**
    _field_12     (the first of the values I want appear in frontend)
    _field_13     (the second one)
    _field_14     (the third one)
    _field_15     (the fourth one)
    _form_id      1 (always the same value)
    _seq_num      3 (increase 1 every time Submit is pressed)

我该怎么办? 我知道没有PHP知识超出了我的范围,但是,有人可以给我一些窍门吗?有插件吗?

请帮助

1 个答案:

答案 0 :(得分:1)

您有几种选择:

  1. 创建一个自定义的Ninja Forms Action。显然,这将需要大量的编程技能,了解Ninja Forms的工作原理等。优点是,您可以将数据存储在首选的位置和格式(例如,在wp_options表中)。

  2. 修复该问题。您可能可以在模板中执行以下操作:

$form_id = 3;
$submissions = Ninja_Forms()->form( $form_id )->get_subs();
if ( is_array( $submissions ) && count( $submissions ) > 0 ) {

    // Get first element of array; latest submission
    $latest_submission = reset( $submissions );

    // Returns array with all submission values
    $all_fields = $latest_submission->get_field_values();
    print_r( $all_fields );

    // To get/display single value
    $single_field = $latest_submission->get_field_value( 'firstname_1531139833971' );
    echo $single_field;
}

如果不确定表单ID,请检查简码中列出的ID(“忍者表单->仪表板,然后是简码”列)。例如。 [ninja_form id = 3] id = 3 是您的form_id。

获取方法 get_field_value 的键的最简单方法是print_r所有提交值并检查哪一个是提交值,否则,单击以编辑表单,选择要编辑的字段,展开管理部分,您应该查看该字段的密钥。

enter image description here

选项#1应该是解决此问题的首选方法,如果打算继续使用选项#2,请确保首先检查功能Ninja_Forms(),否则如果禁用/未加载/禁用了Ninja Forms,则会出现致命错误等