PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.3.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.3.1
3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 All 138 releases
bit-form / includes / Core / Util / ApiResponse.php

ApiResponse.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 3.3.1, at includes/Core/Util/ApiResponse.php

76 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Core\Util;
4
5 use BitCode\BitForm\Core\Database\FormEntryLogModel;
6
7 final class ApiResponse
8 {
9 /**
10 * Log API response
11 *
12 * @param int $logID
13 * @param int $integrationId
14 * @param array $apiType
15 * @param string $responseType
16 * @param mixed $apiResponse
17 * @param array $entryDetails = [] (optional) - (default: ['formId' => 0, 'entryId' => 0, 'fieldValues' => []])
18 *
19 * @return bool
20 */
21 public function apiResponse($logID, $integrationId, $apiType, $responseType, $apiResponse, $entryDetails = [])
22 {
23 if (!$apiType) {
24 return false;
25 }
26
27 // An empty response means a failed HTTP call; log it or the failure leaves no trace.
28 if (is_wp_error($apiResponse)) {
29 $apiResponse = [
30 'error_code' => $apiResponse->get_error_code(),
31 'description' => $apiResponse->get_error_message(),
32 ];
33 } elseif (!$apiResponse && !is_array($apiResponse)) {
34 $apiResponse = ['description' => __('Empty response received from the API.', 'bit-form')];
35 }
36
37 $apiType = wp_json_encode($apiType);
38 $apiResponse = wp_json_encode($apiResponse);
39
40 $ipTool = new IpTool();
41 $user_details = $ipTool->getUserDetail();
42 $formEntryModel = new FormEntryLogModel();
43 $result = $formEntryModel->log_history_insert(
44 [
45 'log_id' => $logID,
46 'integration_id' => $integrationId,
47 'api_type' => $apiType,
48 'response_type' => $responseType,
49 'response_obj' => $apiResponse,
50 'created_at' => $user_details['time'],
51 ]
52 );
53
54 $fieldValues = [];
55
56 if (isset($entryDetails['fieldValues']) && $entryDetails['fieldValues']) {
57 $fieldValues = $entryDetails['fieldValues'];
58 }
59
60 $formId = isset($entryDetails['formId']) && !empty($entryDetails['formId']) ? $entryDetails['formId'] : 0;
61 $entryId = isset($entryDetails['entryId']) && !empty($entryDetails['entryId']) ? $entryDetails['entryId'] : 0;
62
63 if ('error' === $responseType) {
64 // $this->sendErrorEmail($logID, $integrationId, $apiType, $apiResponse, $entryDetails);
65 do_action('bitform_integration_api_response_error', $formId, $entryId, $logID, $integrationId, $apiType, $apiResponse, $fieldValues);
66 }
67
68 if ('success' === $responseType) {
69 // $this->sendSuccessEmail($logID, $integrationId, $apiType, $apiResponse, $entryDetails);
70 do_action('bitform_integration_api_response_success', $formId, $entryId, $logID, $integrationId, $apiType, $apiResponse, $fieldValues);
71 }
72
73 return $result;
74 }
75 }
76