Wordpress 以编程方式提交到ninja表单

Wordpress 以编程方式提交到ninja表单,wordpress,ninja-forms,Wordpress,Ninja Forms,我已经研究了好几天了,我想做的就是在忍者表单管理员列表中创建条目。通过提交自定义表单(不是生成的ninja表单)或者仅仅调用一个钩子并传递数据(数据将匹配在ninja表单中创建的实际表单字段) 我希望能够做到这一点,以便我可以创建任何类型的表单布局,仍然能够提交给忍者表单条目。或者,如果任何人有任何关于插件的其他信息,可以让我做这样的事情,请分享。在NinjaForms 3版中,您可能希望查看以下文件: ninjaforms/includes/Actions/Save.php 过程功能包含可能有

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


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

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

ninjaforms/includes/Actions/Save.php

过程
功能包含可能有助于您的重要位:

$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_字段数组如下所示:

$form_fields = array(

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

);

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

如果你在你的项目中还足够早的话,我建议你转换到重力形式。他们的API确实有一个
submit\u form()
函数,该函数还可以触发通知和操作步骤。我只希望他们能花点时间在他们绝对糟糕的界面上。我讨厌他们的管理用户体验,但是对于像这样更复杂的开发,他们确实是最好的选择


谢谢!这很有效。我只是想补充一点,如果你想在调用
$sub->save()
后获得提交ID,你可以使用
$entry\u ID=$sub->get\u ID()