PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.9.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.9.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 2.10.2 All 137 releases
bit-form / includes / Core / Fallback / Validation.php

Validation.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.9.1, at includes/Core/Fallback/Validation.php

146 lines 4.4 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\Fallback;
4
5 use BitCode\BitForm\Core\Database\FormModel;
6
7 class Validation
8 {
9 public function errorMessage()
10 {
11 $formModel = new FormModel();
12 $forms = $formModel->get(
13 ['id', 'form_content']
14 );
15
16 if (isset($forms) && !is_wp_error($forms)) {
17 foreach ($forms as $form) {
18 $formID = $form->id;
19 $formContent = json_decode($form->form_content);
20 $fields = $formContent->fields;
21
22 foreach ($fields as $fldKey => $fldData) {
23 if (isset($fldData->valid->req)) {
24 if (!isset($fldData->err)) {
25 $fldData->err = (object) [];
26 }
27 $fldData->err->req = (object) [
28 'show' => true,
29 'dflt' => 'This field is required',
30 ];
31 }
32
33 if ('check' === $fldData->typ) {
34 $reqOpts = array_map(function ($op) {
35 return $op->lbl;
36 }, array_filter($fldData->opt, function ($ot) {
37 return isset($ot->req);
38 }));
39 if (!empty($reqOpts)) {
40 if (!isset($fldData->err)) {
41 $fldData->err = (object) [];
42 }
43 $fldData->err->req = (object) [
44 'show' => true,
45 'dflt' => implode(', ', $reqOpts) . ' is required',
46 ];
47 }
48 }
49
50 if ('number' === $fldData->typ) {
51 if (!isset($fldData->err)) {
52 $fldData->err = (object) [];
53 }
54 $fldData->err->invalid = (object) [
55 'show' => true,
56 'dflt' => 'Number is invalid',
57 ];
58
59 if (isset($fldData->mn)) {
60 $fldData->err->mn = (object) [
61 'show' => true,
62 'dflt' => 'Minimum number is ' . $fldData->mn,
63 ];
64 }
65
66 if (isset($fldData->mx)) {
67 $fldData->err->mx = (object) [
68 'show' => true,
69 'dflt' => 'Maximum number is ' . $fldData->mx,
70 ];
71 }
72 }
73
74 if ('email' === $fldData->typ) {
75 $fldData->pattern = '^$_bf_$w+([.-]?$_bf_$w+)*@$_bf_$w+([.-]?$_bf_$w+)*($_bf_$.$_bf_$w{2,3})+$';
76 if (!isset($fldData->err)) {
77 $fldData->err = (object) [];
78 }
79 $fldData->err->invalid = (object) [
80 'show' => true,
81 'dflt' => 'Email is invalid',
82 ];
83 }
84
85 if ('url' === $fldData->typ) {
86 $fldData->attr->pattern = '^(?:(?:https?|ftp):$_bf_$/$_bf_$/)?(?:(?!(?:10|127)(?:$_bf_$.$_bf_$d{1,3}){3})(?!(?:169$_bf_$.254|192$_bf_$.168)(?:$_bf_$.$_bf_$d{1,3}){2})(?!172$_bf_$.(?:1[6-9]|2$_bf_$d|3[0-1])(?:$_bf_$.$_bf_$d{1,3}){2})(?:[1-9]$_bf_$d?|1$_bf_$d$_bf_$d|2[01]$_bf_$d|22[0-3])(?:$_bf_$.(?:1?$_bf_$d{1,2}|2[0-4]$_bf_$d|25[0-5])){2}(?:$_bf_$.(?:[1-9]$_bf_$d?|1$_bf_$d$_bf_$d|2[0-4]$_bf_$d|25[0-4]))|(?:(?:[a-z$_bf_$u00a1-$_bf_$uffff0-9]-*)*[a-z$_bf_$u00a1-$_bf_$uffff0-9]+)(?:$_bf_$.(?:[a-z$_bf_$u00a1-$_bf_$uffff0-9]-*)*[a-z$_bf_$u00a1-$_bf_$uffff0-9]+)*(?:$_bf_$.(?:[a-z$_bf_$u00a1-$_bf_$uffff]{2,})))(?::$_bf_$d{2,5})?(?:$_bf_$/$_bf_$S*)?$';
87 if (!isset($fldData->err)) {
88 $fldData->err = (object) [];
89 }
90 $fldData->err->invalid = [
91 'show' => true,
92 'dflt' => 'URL is invalid',
93 ];
94 }
95 $fields->{$fldKey} = $fldData;
96 }
97
98 $formContent->fields = $fields;
99
100 $formModel->update(
101 [
102 'form_content' => wp_json_encode($formContent),
103 ],
104 [
105 'id' => $formID,
106 ]
107 );
108 }
109 }
110 }
111
112 public function email()
113 {
114 $formModel = new FormModel();
115 $forms = $formModel->get(
116 ['id', 'form_content']
117 );
118
119 if (!is_wp_error($forms)) {
120 foreach ($forms as $form) {
121 $formID = $form->id;
122 $formContent = json_decode($form->form_content);
123 $fields = $formContent->fields;
124
125 foreach ($fields as $fldKey => $fldData) {
126 if ('email' === $fldData->typ) {
127 $fldData->pattern = '^$_bf_$w+([.-]?$_bf_$w+)*@$_bf_$w+([.-]?$_bf_$w+)*($_bf_$.$_bf_$w{1,24})+$';
128 }
129 $fields->{$fldKey} = $fldData;
130 }
131
132 $formContent->fields = $fields;
133
134 $formModel->update(
135 [
136 'form_content' => wp_json_encode($formContent),
137 ],
138 [
139 'id' => $formID,
140 ]
141 );
142 }
143 }
144 }
145 }
146