PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.0
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.0
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 / Admin / Form / CustomFieldHandler.php

CustomFieldHandler.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.0, at includes/Admin/Form/CustomFieldHandler.php

208 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Handle Form Create,Update,delete Operation
5 *
6 */
7
8 namespace BitCode\BitForm\Admin\Form;
9
10 class CustomFieldHandler {
11 public function updatedEntries($formEntries, $fieldDetails) {
12 foreach ($formEntries['entries'] as $index => $entry) {
13 foreach ($fieldDetails as $field) {
14 $fieldKey = $field['key'];
15 if (isset($field['customType']) && !empty($entry->$fieldKey) && !empty($field['customType']->hiddenValue)) {
16 $hiddenvalue = $field['customType']->hiddenValue;
17 if ('taxanomy_field' === $field['customType']->fieldType) {
18 $hiddenvalue = $field['customType']->hiddenValue;
19 if (isset($field['mul'])) {
20 $mul = $field['mul'];
21 } else {
22 $mul = '';
23 }
24
25 $value = $this->getTermFieldValue($field['type'], $entry->$fieldKey, $mul, $hiddenvalue);
26 $formEntries['entries'][$index]->$fieldKey = $value;
27 } elseif ('user_field' === $field['customType']->fieldType) {
28 $hiddenvalue = $field['customType']->hiddenValue;
29 if (isset($field['mul'])) {
30 $mul = $field['mul'];
31 } else {
32 $mul = '';
33 }
34
35 $value = $this->getUserFieldValue($field['type'], $entry->$fieldKey, $mul, $hiddenvalue);
36 $formEntries['entries'][$index]->$fieldKey = $value;
37 } elseif ('post_field' === $field['customType']->fieldType) {
38 $hiddenvalue = $field['customType']->hiddenValue;
39 if (isset($field['mul'])) {
40 $mul = $field['mul'];
41 } else {
42 $mul = '';
43 }
44
45 $value = $this->getPostFieldValue($field['type'], $entry->$fieldKey, $mul, $hiddenvalue);
46 $formEntries['entries'][$index]->$fieldKey = $value;
47 }
48 }
49 }
50 }
51 return $formEntries;
52 }
53
54 public function updatedData($form_fields, $toUpdateValues) {
55 foreach ($form_fields as $field) {
56 if (isset($field['customType']) && !empty($toUpdateValues[$field['key']])) {
57 if (isset($field['customType']->hiddenValue)) {
58 $hiddenvalue = $field['customType']->hiddenValue;
59 if ('taxanomy_field' === $field['customType']->fieldType) {
60 if (isset($field['mul'])) {
61 $mul = $field['mul'];
62 } else {
63 $mul = '';
64 }
65
66 $value = $this->getTermFieldValue($field['type'], $toUpdateValues[$field['key']], $mul, $hiddenvalue);
67 $toUpdateValues[$field['key']] = $value;
68 } elseif ('user_field' === $field['customType']->fieldType) {
69 if (isset($field['mul'])) {
70 $mul = $field['mul'];
71 } else {
72 $mul = '';
73 }
74
75 $value = $this->getUserFieldValue($field['type'], $toUpdateValues[$field['key']], $mul, $hiddenvalue);
76 $toUpdateValues[$field['key']] = $value;
77 } elseif ('post_field' === $field['customType']->fieldType) {
78 if (isset($field['mul'])) {
79 $mul = $field['mul'];
80 } else {
81 $mul = '';
82 }
83
84 $value = $this->getPostFieldValue($field['type'], $toUpdateValues[$field['key']], $mul, $hiddenvalue);
85 $toUpdateValues[$field['key']] = $value;
86 }
87 }
88 }
89 }
90 return $toUpdateValues;
91 }
92
93 public function getPostFieldValue($type, $fieldValue, $mul, $hiddenvalue) {
94 $value = '';
95
96 if ('select' === $type) {
97 if (true === $mul) {
98 $multipleValue = [];
99 foreach (explode(',', $fieldValue) as $val) {
100 $exists = get_post($val);
101 if (false !== $exists) {
102 $multipleValue[] = $exists->$hiddenvalue;
103 }
104 }
105 $value = implode(',', $multipleValue);
106 } else {
107 $exists = get_post($fieldValue);
108 if (false !== $exists) {
109 $value = is_array($exists->$hiddenvalue) ? $exists->$hiddenvalue : (string) $exists->$hiddenvalue;
110 }
111 }
112 } elseif ('radio' === $type || 'check' === $type) {
113 if (is_array(json_decode($fieldValue))) {
114 $multipleValues = [];
115 foreach (json_decode($fieldValue) as $value) {
116 $exists = get_post($value);
117 if (false !== $exists) {
118 $multipleValues[] = $exists->$hiddenvalue;
119 }
120 }
121 $value = json_encode($multipleValues);
122 } else {
123 $exists = get_post($fieldValue);
124 if (false !== $exists) {
125 $value = $exists->$hiddenvalue;
126 }
127 }
128 }
129 return $value;
130 }
131
132 public function getUserFieldValue($type, $fieldValue, $mul, $hiddenvalue) {
133 $value = '';
134 if ('select' === $type) {
135 if (true === $mul) {
136 $multipleValue = [];
137 foreach (explode(',', $fieldValue) as $val) {
138 $exists = get_user_by('ID', $val);
139 if (false !== $exists) {
140 $multipleValue[] = $exists->data->$hiddenvalue;
141 }
142 }
143 $value = implode(',', $multipleValue);
144 } else {
145 $exists = get_user_by('ID', $fieldValue);
146 if (false !== $exists) {
147 $value = is_array($exists->data->$hiddenvalue) ? $exists->data->$hiddenvalue : (string) $exists->data->$hiddenvalue;
148 }
149 }
150 } elseif ('radio' === $type || 'check' === $type) {
151 if (is_array(json_decode($fieldValue))) {
152 $multipleValues = [];
153 foreach (json_decode($fieldValue) as $value) {
154 $exists = get_user_by('ID', $value);
155 if (false !== $exists) {
156 $multipleValues[] = $exists->data->$hiddenvalue;
157 }
158 }
159 $value = json_encode($multipleValues);
160 } else {
161 $exists = get_user_by('ID', $fieldValue);
162 if (false !== $exists) {
163 $value = $exists->data->$hiddenvalue;
164 }
165 }
166 }
167 return $value;
168 }
169
170 public function getTermFieldValue($type, $fieldValue, $mul, $hiddenvalue) {
171 $value = '';
172 if ('select' === $type) {
173 if (true === $mul) {
174 $multipleValue = [];
175 foreach (explode(',', $fieldValue) as $val) {
176 $exists = get_term_by('term_taxonomy_id', $val);
177 if (false !== $exists) {
178 $multipleValue[] = $exists->$hiddenvalue;
179 }
180 }
181 $value = implode(',', $multipleValue);
182 } else {
183 $exists = get_term_by('term_taxonomy_id', $fieldValue);
184 if (false !== $exists) {
185 $value = is_array($exists->$hiddenvalue) ? $exists->$hiddenvalue : (string) $exists->$hiddenvalue;
186 }
187 }
188 } elseif ('radio' === $type || 'check' === $type) {
189 if (is_array(json_decode($fieldValue))) {
190 $multipleValues = [];
191 foreach (json_decode($fieldValue) as $value) {
192 $exists = get_term_by('term_taxonomy_id', $value);
193 if (false !== $exists) {
194 $multipleValues[] = $exists->$hiddenvalue;
195 }
196 }
197 $value = json_encode($multipleValues);
198 } else {
199 $exists = get_term_by('term_taxonomy_id', $fieldValue);
200 if (false !== $exists) {
201 $value = $exists->$hiddenvalue;
202 }
203 }
204 }
205 return $value;
206 }
207 }
208