以编程方式提交给忍者表单

时间:2017-10-20 17:04:32

标签: wordpress ninja-forms

我已经研究了好几天,而我想要做的就是在忍者形式的管理列表中创建条目。通过提交自定义表单(不是生成忍者表单)或只是调用钩子并传递数据(数据将匹配以忍者形式创建的实际表单字段)。

我希望能够这样做,以便我可以创建任何类型的表单布局,并仍然能够提交到忍者表单条目。或者如果任何人有关于插件的任何其他信息可以允许我做这样的事情,请分享。

2 个答案:

答案 0 :(得分:2)

在NinjaForms第3版中,您可能希望查看此文件:

ninja-forms/includes/Actions/Save.php

process函数包含可能对您有用的重要位:

$sub = Ninja_Forms()->form( $form_id )->sub()->get();

foreach($fields as $field_id => $field_value){
    $sub->update_field_value( $field_id, $field_value );
}

$sub->save();

在NinjaForms第2版中,它有点不同

$sub_id = Ninja_Forms()->subs()->create( $form_id );

foreach( $form_fields as $field_id => $value ) {

    Ninja_Forms()->sub( $sub_id )->add_field( $field_id, $value );
}

$ form_fields数组的位置如下:

$form_fields = array(

    $fiel_id_1 => $value_1,
    $fiel_id_2 => $value_2,
    ...

);

答案 1 :(得分:0)

我知道这对这篇文章的最后评论已经有一段时间了,但是应该注意的是,如果您以此方式提交表单,将无法触发任何通知。我花了数小时的时间尝试包含不同的类和函数,并尝试在正在处理表单的Webhook脚本中本地重写通知类,但无法正常工作。也许有人比我更聪明,可以弄清楚这一点,或者也许有一天,Ninja Forms将在其API中正确构建此功能。但是目前,如果您需要通知,这还不是完整的解决方案。

如果您还很早地进入项目,我建议您切换到重力形式。他们的API确实具有submit_form()函数,该函数还会触发通知和操作步骤。我只希望他们能花一些时间在他们绝对恶劣的界面上。我讨厌他们的管理UX,但是对于像这样的更复杂的开发,它们确实是最好的选择。

Documentation