Как получить ответ от объекта, отправленного через запрос с API WordPress - PullRequest
0 голосов
/ 22 мая 2019

Я зарегистрировал запрос API следующим образом в коде, затем в почтальоне я вызываю этот запрос и добавляю несколько параметров, но когда я запускаю конечную точку запроса API, он возвращает ноль. Как мне вернуть отправляемые данные?

/**
 * This is our callback
 * function that embeds our phrase in a WP_REST_Response 
 */

function addProductFromCRM($data) {

  //$name = $data['name'];
  // rest_ensure_response() wraps the data we want to return into a WP_REST_Response, and ensures it will be properly returned.
  return rest_ensure_response($data);
}

/**
 * This function is where we register our routes for our example endpoint.
 */
function wp_register_crm_routes() {

  // register_rest_route() handles more arguments but we are going to stick to the basics for now.
  register_rest_route('crm/v1', '/addproduct/', array(
    // By using this constant we ensure that when the WP_REST_Server changes our readable endpoints will work as intended.
    'methods' => 'POST',
    // Here we register our callback. The callback is fired when this endpoint is matched by the WP_REST_Server class.
    'callback' => 'addProductFromCRM',
  ));
}

add_action('rest_api_init', 'wp_register_crm_routes');

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Вы можете использовать приведенный ниже фрагмент кода, как вам нужно, как на isset($_POST) или любом другом callback function. У вас должна быть идея URL вашего регистрационного маршрута, и он должен работать. Вы можете использовать wp_remote_get или wp_remote_post в соответствии с вашими потребностями. Для получения дополнительной информации, пожалуйста, проверьте официальный сайт WordPress

$response = wp_remote_get("URL TO YOUR REGISTER ROUTE");
if ( is_array( $response ) ) {
  $response_code = wp_remote_retrieve_response_code( $response );
  $body = wp_remote_retrieve_body( $response );
  $body_data = json_decode($body);
}
0 голосов
/ 22 мая 2019

Какая конечная точка addproduct должна возвращаться?JSON?Вы можете сделать что-то вроде этого:

function addProductFromCRM($request) {
    wp_send_json($request->get_params());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...