PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.1
GiveWP – Donation Plugin and Fundraising Platform v2.27.1
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / FieldsAPI / Conditions / BasicCondition.php
give / src / Framework / FieldsAPI / Conditions Last commit date
BasicCondition.php 4 years ago Condition.php 4 years ago NestedCondition.php 4 years ago
BasicCondition.php
104 lines
1 <?php
2
3 namespace Give\Framework\FieldsAPI\Conditions;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6
7 /**
8 * @since 2.13.0
9 */
10 class BasicCondition extends Condition
11 {
12
13 const OPERATORS = ['=', '!=', '>', '>=', '<', '<='];
14
15 const BOOLEANS = ['and', 'or'];
16
17 /** @var string */
18 const TYPE = 'basic';
19
20 /** @var string */
21 public $field;
22
23 /** @var mixed */
24 public $value;
25
26 /** @var string */
27 public $operator;
28
29 /** @var string */
30 public $boolean;
31
32 /**
33 * Create a new BasicCondition.
34 *
35 * @since 2.13.0
36 *
37 * @param string $field
38 * @param string $operator
39 * @param mixed $value
40 * @param string $boolean
41 */
42 public function __construct($field, $operator, $value, $boolean = 'and')
43 {
44 if ($this->invalidOperator($operator)) {
45 throw new InvalidArgumentException(
46 "Invalid operator: $operator. Must be one of: " . implode(', ', static::OPERATORS)
47 );
48 }
49
50 if ($this->invalidBoolean($boolean)) {
51 throw new InvalidArgumentException(
52 "Invalid boolean: $boolean. Must be one of: " . implode(', ', static::BOOLEANS)
53 );
54 }
55
56 $this->field = $field;
57 $this->operator = $operator;
58 $this->value = $value;
59 $this->boolean = $boolean;
60 }
61
62 /**
63 * Check if the provided operator is invalid.
64 *
65 * @since 2.13.0
66 *
67 * @param string $operator
68 *
69 * @return bool
70 */
71 protected function invalidOperator($operator)
72 {
73 return ! in_array($operator, static::OPERATORS, true);
74 }
75
76 /**
77 * Check if the provided boolean is invalid.
78 *
79 * @since 2.13.0
80 *
81 * @param $boolean
82 *
83 * @return bool
84 */
85 protected function invalidBoolean($boolean)
86 {
87 return ! in_array($boolean, static::BOOLEANS, true);
88 }
89
90 /**
91 * {@inheritDoc}
92 */
93 public function jsonSerialize()
94 {
95 return [
96 'type' => static::TYPE,
97 'field' => $this->field,
98 'value' => $this->value,
99 'operator' => $this->operator,
100 'boolean' => $this->boolean,
101 ];
102 }
103 }
104