/** * @param MC4WP_Form $form */ public function respond_to_request(MC4WP_Form $form) { // do nothing if we're not doing AJAX if (!defined('DOING_AJAX') || !DOING_AJAX) { return; } // clear output, some plugins might have thrown errors by now. if (ob_get_level() > 0) { ob_end_clean(); } // Format response using Google JSON Style Guide: https://google.github.io/styleguide/jsoncstyleguide.xml $response = array(); // error if ($form->has_errors()) { $response['error'] = array('type' => $form->errors[0], 'message' => $form->get_response_html(), 'errors' => $form->errors); wp_send_json($response); exit; } // success $response['data'] = array('event' => $form->get_action() . 'd', 'message' => $form->get_response_html(), 'hide_fields' => (bool) $form->settings['hide_after_success']); if ($form->get_redirect_url()) { $response['data']['redirect_to'] = $form->get_redirect_url(); } wp_send_json($response); exit; }