3

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

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

4

2 回答 2

6

在 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,
    ...

);
于 2017-10-30T06:49:35.150 回答
0

我知道这是在这篇文章的最后评论之后的一段时间,但应该注意的是,如果您以这种方式提交表单,您将无法触发任何通知。我花了好几个小时试图包含不同的类和函数,并尝试在处理我的表单的 webhook 脚本中本地重写通知类,但我无法让它工作。也许有比我更聪明的人可以解决这个问题,或者也许有一天 Ninja Forms 会在他们的 API 中正确构建这个功能。但就目前而言,如果您需要通知,这不是一个完整的解决方案。

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

文档

于 2020-04-24T06:35:26.060 回答