public function handle_api_requests()
{
global $wp;
if (!empty($_GET['wc-api'])) {
$wp->query_vars['wc-api'] = $_GET['wc-api'];
}
// wc-api endpoint requests.
if (!empty($wp->query_vars['wc-api'])) {
// Buffer, we won't want any output here.
ob_start();
// No cache headers.
nocache_headers();
// Clean the API request.
$api_request = strtolower(wc_clean($wp->query_vars['wc-api']));
// Trigger generic action before request hook.
do_action('woocommerce_api_request', $api_request);
// Is there actually something hooked into this API request? If not trigger 400 - Bad request.
status_header(has_action('woocommerce_api_' . $api_request) ? 200 : 400);
// Trigger an action which plugins can hook into to fulfill the request.
do_action('woocommerce_api_' . $api_request);
// Done, clear buffer and exit.
ob_end_clean();
die('-1');
}
}