PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 1.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v1.2
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 2.10.2 All 137 releases
bit-form / includes / Core / WorkFlow / WorkFlowHandler.php

WorkFlowHandler.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 1.2, at includes/Core/WorkFlow/WorkFlowHandler.php

231 lines 9.6 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\WorkFlow;
4
5 use BitCode\BitForm\Core\Database\WorkFlowModel;
6
7 final class WorkFlowHandler
8 {
9 private static $_formID;
10 private static $_workFlowModel;
11 private $_user_details;
12
13 public function __construct($formID, array $user_details = null)
14 {
15 static::$_formID = $formID;
16 static::$_workFlowModel = new WorkFlowModel();
17 $this->_user_details = $user_details;
18 }
19
20 public function getAllworkFlow()
21 {
22 $workFlows = static::$_workFlowModel->get(
23 array(
24 'id',
25 'workflow_name',
26 'workflow_type',
27 'workflow_run',
28 'workflow_behaviour',
29 'workflow_condition',
30 'workflow_action'
31 ),
32 array(
33 'form_id' => static::$_formID,
34 ), null, null, 'id', 'desc'
35 );
36 $workFlowsFormated = array();
37 if (empty($workFlows) || is_wp_error($workFlows)) {
38 return [];
39 }
40 foreach ($workFlows as $key => $value) {
41 $allAction = json_decode($value->workflow_action);
42 $workFlow['id'] = $value->id;
43 $workFlow['title'] = $value->workflow_name;
44 $workFlow['action_type'] = $value->workflow_type;
45 $workFlow['action_run'] = $value->workflow_run;
46 $workFlow['action_behaviour'] = $value->workflow_behaviour;
47 $workFlow['logics'] = json_decode($value->workflow_condition);
48 $workFlow['actions'] = $allAction->action;
49 $workFlow['successAction'] = $allAction->successAction;
50 if (isset($allAction->validateMsg)) {
51 $workFlow['validateMsg'] = $allAction->validateMsg;
52 }
53 if (isset($allAction->avoid_delete)) {
54 $workFlow['avoid_delete'] = $allAction->avoid_delete;
55 }
56 $workFlowsFormated[$key] = $workFlow;
57 }
58
59 return $workFlowsFormated;
60 }
61
62 public function saveworkFlow($workFlowDetails, $actionIntegrationDetails)
63 {
64 $workFlowActions['action'] = $workFlowDetails->actions;
65 foreach ($workFlowDetails->successAction as $successActionkey => $successActionValue) {
66 if (!empty($successActionValue->details->id)) {
67 if (is_array($successActionValue->details->id)) {
68 foreach ($successActionValue->details->id as $key => $value) {
69 $actionIntegrationID = \json_decode($value);
70 $workFlowDetails->successAction[$successActionkey]->details->id[$key]
71 = isset($actionIntegrationID->index) ?
72 json_encode(
73 [
74 'id'=>
75 $actionIntegrationDetails[$successActionValue->type][$actionIntegrationID->index]
76 ]
77 )
78 : $value;
79 }
80 } else {
81 $actionIntegrationID = \json_decode($successActionValue->details->id);
82 $workFlowDetails->successAction[$successActionkey]->details->id
83 = isset($actionIntegrationID->index) ?
84 json_encode(
85 [
86 'id'=>
87 $actionIntegrationDetails[$successActionValue->type][$actionIntegrationID->index]
88 ]
89 )
90 : $successActionValue->details->id;
91 }
92 }
93 }
94 $workFlowActions['successAction'] = $workFlowDetails->successAction;
95 if (!empty($workFlowDetails->validateMsg)) {
96 $actionIntegrationID = \json_decode($workFlowDetails->validateMsg);
97 $workFlowActions['validateMsg'] = isset($actionIntegrationID->index) ?
98 json_encode(
99 [
100 'id'=>
101 $actionIntegrationDetails['successMsg'][$actionIntegrationID->index]
102 ]
103 )
104 : $workFlowDetails->validateMsg;
105 }
106 if (!empty($workFlowDetails->avoid_delete)) {
107 $workFlowActions['avoid_delete'] = $workFlowDetails->avoid_delete;
108 }
109 return static::$_workFlowModel->insert(
110 array(
111 "workflow_name"=> $workFlowDetails->title,
112 "workflow_type"=> $workFlowDetails->action_run === 'delete'? 'delete' : $workFlowDetails->action_type,
113 "workflow_run"=> $workFlowDetails->action_run,
114 "workflow_behaviour" => $workFlowDetails->action_behaviour,
115 "workflow_condition"=> json_encode($workFlowDetails->logics),
116 "workflow_action"=> json_encode($workFlowActions),
117 "form_id"=> static::$_formID,
118 "user_id"=> $this->_user_details['id'],
119 "user_ip"=> $this->_user_details['ip'],
120 "user_location"=> '',
121 "user_device"=> $this->_user_details['device'],
122 "created_at"=> $this->_user_details['time'],
123 "updated_at" => $this->_user_details['time']
124 )
125 );
126 }
127
128 public function updateworkFlow($workFlowID, $workFlowDetails, $actionIntegrationDetails)
129 {
130 $workFlowActions['action'] = $workFlowDetails->actions;
131 foreach ($workFlowDetails->successAction as $successActionkey => $successActionValue) {
132 if (!empty($successActionValue->details->id)) {
133 if (is_array($successActionValue->details->id)) {
134 foreach ($successActionValue->details->id as $key => $value) {
135 $actionIntegrationID = \json_decode($value);
136 $workFlowDetails->successAction[$successActionkey]->details->id[$key]
137 = isset($actionIntegrationID->index) ?
138 json_encode(
139 [
140 'id'=>
141 $actionIntegrationDetails[$successActionValue->type][$actionIntegrationID->index]
142 ]
143 )
144 : $value;
145 }
146 } else {
147 $actionIntegrationID = \json_decode($successActionValue->details->id);
148 $workFlowDetails->successAction[$successActionkey]->details->id
149 = isset($actionIntegrationID->index) ?
150 json_encode(
151 [
152 'id'=>
153 $actionIntegrationDetails[$successActionValue->type][$actionIntegrationID->index]
154 ]
155 )
156 : $successActionValue->details->id;
157 }
158 }
159 }
160 $workFlowActions['successAction'] = $workFlowDetails->successAction;
161 if (!empty($workFlowDetails->validateMsg)) {
162 $validateMsgID = \json_decode($workFlowDetails->validateMsg);
163 $workFlowActions['validateMsg'] = isset($validateMsgID->index) ?
164 json_encode(
165 [
166 'id'=>
167 $actionIntegrationDetails['successMsg'][$validateMsgID->index]
168 ]
169 )
170 : $workFlowDetails->validateMsg;
171 }
172 if (!empty($workFlowDetails->avoid_delete)) {
173 $workFlowActions['avoid_delete'] = $workFlowDetails->avoid_delete;
174 }
175 return static::$_workFlowModel->update(
176 array(
177 "workflow_name"=> $workFlowDetails->title,
178 "workflow_type"=> $workFlowDetails->action_run === 'delete'? 'delete' : $workFlowDetails->action_type,
179 "workflow_run"=> $workFlowDetails->action_run,
180 "workflow_behaviour" => $workFlowDetails->action_behaviour,
181 "workflow_condition"=> json_encode($workFlowDetails->logics),
182 "workflow_action"=> json_encode($workFlowActions),
183 "user_id"=> $this->_user_details['id'],
184 "user_ip"=> $this->_user_details['ip'],
185 "user_location"=> '',
186 "user_device"=> $this->_user_details['device'],
187 "updated_at" => $this->_user_details['time']
188 ),
189 array(
190 "id" => $workFlowID,
191 'form_id' => static::$_formID,
192 )
193 );
194 }
195
196 public function duplicateWorkFlow($currentFormID)
197 {
198 $workFlowCols = [
199 "workflow_name","workflow_type","workflow_run","workflow_behaviour" ,
200 "workflow_condition","workflow_action","form_id","user_id",
201 "user_ip","user_location","user_device","created_at","updated_at"
202 ];
203 $dupData = array(
204 "workflow_name",
205 "workflow_type",
206 "workflow_run",
207 "workflow_behaviour",
208 "workflow_condition",
209 "workflow_action",
210 static::$_formID,
211 $this->_user_details['id'],
212 $this->_user_details['ip'],
213 '',
214 $this->_user_details['device'],
215 $this->_user_details['time'],
216 $this->_user_details['time']
217 );
218 return static::$_workFlowModel->duplicate($workFlowCols, $dupData, ['form_id' => $currentFormID]);
219 }
220
221 public function deleteworkFlow($workFlowID)
222 {
223 return static::$_workFlowModel->delete(
224 array(
225 'id' => $workFlowID,
226 'form_id' => static::$_formID,
227 )
228 );
229 }
230 }
231