PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 2.1.1
JetFormBuilder — Dynamic Blocks Form Builder v2.1.1
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / classes / condition-helper.php
jetformbuilder / includes / classes Last commit date
arguments 3 years ago arrayable 3 years ago filters 3 years ago http 3 years ago post 3 years ago repository 3 years ago resources 3 years ago security 3 years ago theme 3 years ago attributes-trait.php 3 years ago base-attributes-trait.php 3 years ago builder-helper.php 3 years ago compatibility.php 3 years ago condition-helper.php 3 years ago gallery.php 3 years ago get-icon-trait.php 3 years ago get-template-trait.php 3 years ago html-attributes-trait.php 3 years ago instance-trait.php 3 years ago listing-filter-manager.php 3 years ago listing-filter.php 3 years ago macros-parser.php 3 years ago messages-helper-trait.php 3 years ago tools.php 3 years ago
condition-helper.php
96 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Classes;
5
6
7 use Jet_Form_Builder\Actions\Action_Handler;
8 use Jet_Form_Builder\Actions\Types\Base;
9 use Jet_Form_Builder\Exceptions\Condition_Exception;
10 use Jet_Form_Builder\Presets\Types\Dynamic_Preset;
11
12 class Condition_Helper {
13
14 private $conditions;
15 private $action_handler;
16
17 public function __construct( Base $action, Action_Handler $action_handler ) {
18 $this->conditions = $action->conditions;
19 $this->action_handler = $action_handler;
20
21 $this->check_all();
22 }
23
24 public function check_all() {
25 $request = $this->action_handler->request_data;
26
27 foreach ( $this->conditions as $condition ) {
28 if ( ( $condition['execute'] && ! $this->check( $condition ) )
29 || ( ! $condition['execute'] && $this->check( $condition ) )
30 ) {
31 throw new Condition_Exception( '', array(
32 'condition' => $condition,
33 'field' => isset( $request[ $condition['field'] ] ) ? $request[ $condition['field'] ] : null,
34 ) );
35 }
36 }
37 }
38
39 public function check( $condition ) {
40 $request = $this->action_handler->request_data;
41 $compare = $this->get_parsed_value( $condition );
42
43 switch ( $condition['operator'] ) {
44 case 'equal':
45 if ( isset( $request[ $condition['field'] ] ) ) {
46 return $request[ $condition['field'] ] == $compare;
47 }
48 break;
49 case 'greater':
50 if ( isset( $request[ $condition['field'] ] ) ) {
51 return $request[ $condition['field'] ] > $compare;
52 }
53 break;
54 case 'less':
55 if ( isset( $request[ $condition['field'] ] ) ) {
56 return $request[ $condition['field'] ] < $compare;
57 }
58 break;
59 case 'between':
60 if ( isset( $request[ $condition['field'] ] ) ) {
61 $compare_values = array_map( 'trim', explode( ',', $compare ) );
62
63 if ( count( $compare_values ) != 2 ) {
64 return false;
65 }
66
67 return ( $compare_values[0] < $request[ $condition['field'] ] && $compare_values[1] > $request[ $condition['field'] ] );
68 }
69 break;
70 case 'one_of':
71 if ( isset( $request[ $condition['field'] ] ) ) {
72 $compare_values = array_map( 'trim', explode( ',', $compare ) );
73
74 if ( ! is_array( $compare_values ) ) {
75 return false;
76 }
77
78 return ( in_array( $request[ $condition['field'] ], $compare_values ) );
79 }
80 break;
81 case 'contain':
82 if ( isset( $request[ $condition['field'] ] ) ) {
83 return ( strpos( $request[ $condition['field'] ], $compare ) !== false );
84 }
85 break;
86 }
87
88 return false;
89 }
90
91 private function get_parsed_value( $condition ) {
92 return ( new Dynamic_Preset )->parse_value( $condition );
93 }
94
95
96 }