Intereting Posts
Как переписать URL страницы Действительно ли использование высокой памяти с почти никакими плагинами – может ли быть арабский / еврейский текст фактором? Перенаправить пользователя на вход, а затем на страницу, откуда они пришли Как показать больше случайных сообщений, если тег имеет менее 3 сообщений Можно ли удалить редактор полей Rich Text для определенного сообщения? Передача жестко заданного идентификатора страницы / сообщения в `get_post` Как разместить раскрывающийся список всех моих сообщений в меню боковой панели? Как определить плагины WP, используемые на сайте Панель уведомлений на главной странице для многозвенных Структура сайта в отношении пользовательских типов сообщений и таксономий Линия не работает на тему Пользовательская таксономия, если заявление Если категория находится в родительской категории? Можно ли загружать zip-файлы в WordPress? Автоматические выдержки

Сохранение данных в форме ниндзя через api

У меня есть встроенный интерфейс, и я извлекаю все через api из бэкэнд, который получает все данные из WP-сервера. В этом конкретном случае я получаю данные полей формы ниндзя через api и отправляю эти данные в интерфейс. Вот как выглядит конечная точка в WP:

add_action('init', function() { function getNinjaFormData(WP_REST_Request $request) { $id = $request->get_param('id'); $settings = ['label', 'type', 'required']; $formTitle = Ninja_Forms()->form( 1 )->get()->get_setting('title'); $formFields = Ninja_Forms()->form(1)->get_fields(); $data = ['title' => $formTitle]; foreach ($formFields as $formField) { $key = $formField->get_setting('key'); foreach ($settings as $setting) { $object[$setting] = $formField->get_setting($setting); } $data['fields'][] = $object; } return $data; } }); add_action('rest_api_init', function () { register_rest_route( 'ninja-forms/', '/id/(?P<id>\d+)', [ 'methods' => 'GET', 'callback' => 'getNinjaFormData', ]); }); 

Итак, я отправляю данные в интерфейс, который выглядит так:

 { "title": "Contact Me", "fields": [ { "label": "Name", "type": "textbox", "required": "1" }, { "label": "Email", "type": "email", "required": "1" }, { "label": "Message", "type": "textarea", "required": "1" }, { "label": "Submit", "type": "submit", "required": null } ] } 

И с этими данными я строю форму. Как я могу сделать конечную точку, где я бы сохранил данные отправки, которые я отправляю из интерфейса, например, когда я отправляю данные из интерфейса для этой формы, которая выглядит так:

 Array ( [name] => asdasd [email] => sadsad@asd [message] => sadas ) 

Поскольку я видел в документации, что публикация на бэкэнд из внешнего интерфейса выглядит так:

  var formData = JSON.stringify( { id: formID, fields: fields, settings: settings, extra: extra } ); var data = { 'action': 'nf_ajax_submit', 'security': nfFrontEnd.ajaxNonce, 'formData': formData } var that = this; jQuery.ajax({ url: nfFrontEnd.adminAjax, type: 'POST', data: data, cache: false, success: function( data, textStatus, jqXHR ) { try { var response = jQuery.parseJSON( data ); nfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) ); nfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR ); jQuery( document ).trigger( 'nfFormSubmitResponse', { response: response, id: formModel.get( 'id' ) } ); } catch( e ) { console.log( e ); console.log( 'Parse Error' ); console.log( e ); } }, 

Я попытался реализовать это в моем контроллере Laravel:

  $url = 'http://my-app.app/wp-admin/admin-ajax.php'; $data = []; $data['action'] = 'nf_ajax_submit'; $data['formData'] = $request->all(); $formData = json_encode($data); $client = new Client(); $response = $client->request('POST', $url, [ 'form_params' => [ 'data' => $formData, ] ]); $body = json_decode($response->getBody(), true); if ($body['success'] === true && $body['data'] !== false) { return $body['data']; } return null; 

Но это не работает, я получаю null для $body['success'] .