我正在向 Ninja forms 插件发送数据以保存在 WP 中,基于如何从前端发送数据的示例,我可以在Ninja form docs上看到。我已经在使用以下内容构建的后端实现了该功能laravel/php
:
$url = $this->postUrl . '/wp-admin/admin-ajax.php';
$client = new Client();
$response = $client->request('POST', $url, [
'form_params' => [
'security' => $this->getNonce(),
'action' => 'nf_ajax_submit',
'formData' => $request->formData,
]
]);
formData
看起来像这样:
{
"id":"1",
"fields":[
{"id":"1","value":"My Name"},
{"id": "2","value":"myemail@email.com"},
{"id":"3","value":"some message"}
]
}
在我的情况下,WP 中id
的 id在哪里,fields 数组中的每个对象都代表表单中的一个字段。该对象的ID是该字段的ID。在我的情况下,ID 1是名称字段的ID,ID 2是电子邮件字段的ID,而ID 3是消息字段的ID。如下图所示,数据正常保存到字段,但未保存到字段。ninja form
Contact form
message
email
name
在检查 WP DB postmeta 表时,我可以看到字段被保存为:
post_id | meta_key | meta_value
341 field_2 myemail@email.com
341 field_3 some message
341 field_
所以,问题是该name
字段被保存为field_
没有值,为什么当其他字段被保存时会出现问题?我也试过用这样的键值对发送数据:
{
"id":"1",
"fields":[
{"key":"name","value":"My Name"},
{"key": "email","value":"myemail@email.com"},
{"key":"message","value":"some message"}
]
}
但是,那么该message
领域并没有被保存。我什至尝试了字段和字段的 id 组合,message
但是没有保存电子邮件字段。我在这里做错了什么?key
name