PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.15.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.15.3
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
← All changes | includes/Core/WorkFlow/Actions.php +75 -11 2.02.15.3 View file →
@@ -5,17 +5,21 @@
5 5 namespace BitCode\BitForm\Core\WorkFlow;
6 6
7 7 use BitCode\BitForm\Core\Integration\IntegrationHandler;
8 8 use BitCode\BitForm\Core\Messages\SuccessMessageHandler;
9 +use BitCode\BitForm\Core\Util\Utilities;
9 10
10 -final class Actions {
11 +final class Actions
12 +{
11 13 private static $_formID;
12 14
13 - public function __construct($formId) {
15 + public function __construct($formId)
16 + {
14 17 static::$_formID = $formId;
15 18 }
16 19
17 - public function setValue($actionDetail, $fieldData, $fields) {
20 + public function setValue($actionDetail, $fieldData, $fields)
21 + {
18 22 if (!empty($actionDetail->val)) {
19 23 $actionValue = '';
20 24 $fieldType = $fields->{$fieldData[$actionDetail->field]['key']}->typ;
21 25 $evalMathExpr = preg_match('/month|date/', $fieldType);
@@ -26,9 +30,39 @@
26 30 }
27 31 return [$fields, $fieldData];
28 32 }
29 33
30 - public function show($fields, $fieldData, $actionDetail) {
34 + public function getActionValue($actionDetail, $fieldData, $fields)
35 + {
36 + $actionValue = '';
37 + if (!empty($actionDetail->val)) {
38 + $fieldType = $fields->{$fieldData[$actionDetail->field]['key']}->typ;
39 + $evalMathExpr = preg_match('/month|date/', $fieldType);
40 + $fields->{$fieldData[$actionDetail->field]['key']}->val = '';
41 + $actionValue = Helper::replaceFieldWithValue($actionDetail->val, $fieldData, !(bool)$evalMathExpr);
42 + }
43 + return $actionValue;
44 + }
45 +
46 + public function getActiveListIndex($actionDetail, $fieldData, $fields)
47 + {
48 + $activeList = $this->getActionValue($actionDetail, $fieldData, $fields);
49 + $optionsList = $fields->{$fieldData[$actionDetail->field]['key']}->optionsList;
50 + $activeListIndex = 0;
51 + foreach ($optionsList as $key => $optionObj) {
52 + $valueArr = (array) $optionObj;
53 + $listName = array_keys($valueArr)[0];
54 + if ($listName === $activeList) {
55 + $activeListIndex = $key;
56 + break;
57 + }
58 + }
59 +
60 + return $activeListIndex;
61 + }
62 +
63 + public function show($fields, $fieldData, $actionDetail)
64 + {
31 65 $fields->{$fieldData[$actionDetail->field]['key']}->valid->hide = false;
32 66 if ('hidden' === $fields->{$fieldData[$actionDetail->field]['key']}->typ) {
33 67 $fields->{$fieldData[$actionDetail->field]['key']}->typ = 'text';
34 68 }
@@ -33,14 +67,15 @@
33 67 $fields->{$fieldData[$actionDetail->field]['key']}->typ = 'text';
34 68 }
35 69 }
36 70
37 - public function setFieldProperty($actions, $fieldData, $fields) {
71 + public function setFieldProperty($actions, $fieldData, $fields)
72 + {
38 73 if (empty($actions)) {
39 - return $fields;
74 + return [$fields, $fieldData];
40 75 }
41 76 foreach ($actions as $actionDetail) {
42 - if (!empty($actionDetail->action) && !empty($actionDetail->field)) {
77 + if (!empty($actionDetail->action) && !empty($actionDetail->field) && isset($fields->{$fieldData[$actionDetail->field]['key']}) && !empty($fields->{$fieldData[$actionDetail->field]['key']})) {
43 78 switch ($actionDetail->action) {
44 79 case 'value':
45 80 $data = $this->setValue($actionDetail, $fieldData, $fields);
46 81 $fields = $data[0];
@@ -60,8 +95,11 @@
60 95 break;
61 96 case 'readonly':
62 97 $fields->{$fieldData[$actionDetail->field]['key']}->valid->readonly = true;
63 98 break;
99 + case 'writeable':
100 + $fields->{$fieldData[$actionDetail->field]['key']}->valid->readonly = false;
101 + break;
64 102 case 'required':
65 103 $fields->{$fieldData[$actionDetail->field]['key']}->valid->required = true;
66 104 break;
67 105 case 'limit':
@@ -72,8 +110,27 @@
72 110 break;
73 111 case 'max':
74 112 $fields->{$fieldData[$actionDetail->field]['key']}->valid->max = true;
75 113 break;
114 + case 'activelist':
115 + $fields->{$fieldData[$actionDetail->field]['key']}->config->activeList = $this->getActiveListIndex($actionDetail, $fieldData, $fields);
116 + break;
117 + case 'lbl':
118 + case 'ct':
119 + $fields->{$fieldData[$actionDetail->field]['key']}->lbl = $this->getActionValue($actionDetail, $fieldData, $fields);
120 + break;
121 + case 'sub-titl':
122 + $fields->{$fieldData[$actionDetail->field]['key']}->subtitle = $this->getActionValue($actionDetail, $fieldData, $fields);
123 + break;
124 + case 'hlp-txt':
125 + $fields->{$fieldData[$actionDetail->field]['key']}->helperTxt = $this->getActionValue($actionDetail, $fieldData, $fields);
126 + break;
127 + case 'placeholder':
128 + $fields->{$fieldData[$actionDetail->field]['key']}->ph = $this->getActionValue($actionDetail, $fieldData, $fields);
129 + break;
130 + case 'title':
131 + $fields->{$fieldData[$actionDetail->field]['key']}->title = $this->getActionValue($actionDetail, $fieldData, $fields);
132 + break;
76 133 }
77 134 }
78 135 }
79 136 return [$fields, $fieldData];
@@ -78,9 +135,10 @@
78 135 }
79 136 return [$fields, $fieldData];
80 137 }
81 138
82 - public function setOnSubmitSetFieldValue($actions, $fieldValue) {
139 + public function setOnSubmitSetFieldValue($actions, $fieldValue)
140 + {
83 141 if (empty($actions)) {
84 142 return $fieldValue;
85 143 }
86 144 foreach ($actions as $actionDetail) {
@@ -98,9 +156,10 @@
98 156 }
99 157 return $fieldValue;
100 158 }
101 159
102 - public function setOnFormSuccess($data, $actions, $fieldValue) {
160 + public function setOnFormSuccess($data, $actions, $fieldValue)
161 + {
103 162 if (empty($actions)) {
104 163 return $data;
105 164 }
106 165
@@ -136,14 +195,18 @@
136 195 }
137 196 return $data;
138 197 }
139 198
140 - public function confirmationMessage($workFlowReturnable, $successActionDetailId, $fieldValue) {
199 + public function confirmationMessage($workFlowReturnable, $successActionDetailId, $fieldValue)
200 + {
141 201 $id = json_decode($successActionDetailId)->id;
142 202 $messageHandler = new SuccessMessageHandler(static::$_formID);
143 203 $message = $messageHandler->getAMessage($id);
144 204 if (!is_wp_error($message) && !empty($message)) {
145 205 $workFlowReturnable['message'] = Helper::replaceFieldWithValue($message[0]->message_content, $fieldValue);
206 + if (!empty($workFlowReturnable['message']) && Utilities::isPro()) {
207 + $workFlowReturnable['message'] = do_shortcode($workFlowReturnable['message']);
208 + }
146 209 $workFlowReturnable['msg_id'] = $message[0]->id;
147 210 $msgConfig = json_decode($message[0]->message_config);
148 211 if ($msgConfig->autoHide) {
149 212 $workFlowReturnable['msg_duration'] = abs(floatval($msgConfig->duration) * 1000);
@@ -151,9 +214,10 @@
151 214 }
152 215 return $workFlowReturnable;
153 216 }
154 217
155 - public function redirectPage($workFlowReturnable, $successActionDetailId, $fieldValue) {
218 + public function redirectPage($workFlowReturnable, $successActionDetailId, $fieldValue)
219 + {
156 220 $id = json_decode($successActionDetailId)->id;
157 221 $integrationHandler = new IntegrationHandler(static::$_formID);
158 222 $redirectPage = $integrationHandler->getAIntegration($id, 'form', 'redirectPage');
159 223 if (!is_wp_error($redirectPage) && !empty($redirectPage)) {