1

我正在向 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 formContact formmessageemailname

在此处输入图像描述

在检查 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但是没有保存电子邮件字段。我在这里做错了什么?keyname

4

0 回答 0