Я отправляю данные в плагин форм Ninja для сохранения в WP, основываясь на примере отправки данных из внешнего интерфейса, который я мог видеть на Ниндзя форма документов. Я реализовал это на моей внутренней стороне, построенной с 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":"[email protected]"},
{"id":"3","value":"some message"}
]
}
куда id
является идентификатором этого ninja form
в WP в моем случае Contact form
и каждый объект в массиве fields представляет поле в форме. Идентификатор этого объекта является идентификатором этого поля. В моем случае идентификатор 1 является идентификатором поля имени, а идентификатор 2 является идентификатором поля электронной почты, а идентификатор 3 является идентификатором поля сообщения. Данные обычно сохраняются в message
а также email
поле, как вы можете видеть на изображении ниже, но не к name
поле.
При проверке таблицы postmeta WP DB я увидел, что поля сохраняются как:
post_id | meta_key | meta_value
341 field_2 [email protected]
341 field_3 some message
341 field_
Итак, проблема в том, что name
поле сохраняется как только field_
без значения, почему возникает проблема, когда другие поля сохраняются как следует?
Я также попытался отправить данные с ключами и парами ключей следующим образом:
{
"id":"1",
"fields":[
{"key":"name","value":"My Name"},
{"key": "email","value":"[email protected]"},
{"key":"message","value":"some message"}
]
}
Но тогда message
поле не сохраняется Я даже попробовал комбинацию наличия идентификатора для message
поле и key
за name
поле, но тогда поле электронной почты не было сохранено. Что я здесь не так делаю?
Задача ещё не решена.
Других решений пока нет …