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
← All changes | includes/Core/Util/ApiResponse.php +50 -5 2.03.3.1 View file →
@@ -3,15 +3,40 @@
3 3 namespace BitCode\BitForm\Core\Util;
4 4
5 5 use BitCode\BitForm\Core\Database\FormEntryLogModel;
6 6
7 -final class ApiResponse {
8 - public function apiResponse($logID, $integrationId, $apiType, $responseType, $responseObj) {
9 - if (!$apiType || !$responseObj) {
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) {
10 24 return false;
11 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 +
12 37 $apiType = wp_json_encode($apiType);
13 - $responseObj = wp_json_encode($responseObj);
38 + $apiResponse = wp_json_encode($apiResponse);
14 39
15 40 $ipTool = new IpTool();
16 41 $user_details = $ipTool->getUserDetail();
17 42 $formEntryModel = new FormEntryLogModel();
@@ -20,11 +45,31 @@
20 45 'log_id' => $logID,
21 46 'integration_id' => $integrationId,
22 47 'api_type' => $apiType,
23 48 'response_type' => $responseType,
24 - 'response_obj' => $responseObj,
49 + 'response_obj' => $apiResponse,
25 50 'created_at' => $user_details['time'],
26 51 ]
27 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 +
28 73 return $result;
29 74 }
30 75 }