PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.14.0
GiveWP – Donation Plugin and Fundraising Platform v2.14.0
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
95 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 const OPERATORS = [ '=', '!=', '>', '>=', '<', '<=' ];
13
14 const BOOLEANS = [ 'and', 'or' ];
15
16 /** @var string */
17 const TYPE = 'basic';
18
19 /** @var string */
20 public $field;
21
22 /** @var mixed */
23 public $value;
24
25 /** @var string */
26 public $operator;
27
28 /** @var string */
29 public $boolean;
30
31 /**
32 * Create a new BasicCondition.
33 *
34 * @since 2.13.0
35 *
36 * @param string $field
37 * @param string $operator
38 * @param mixed $value
39 * @param string $boolean
40 */
41 public function __construct( $field, $operator, $value, $boolean = 'and' ) {
42 if ( $this->invalidOperator( $operator ) ) {
43 throw new InvalidArgumentException( "Invalid operator: $operator. Must be one of: " . implode( ', ', static::OPERATORS ) );
44 }
45
46 if ( $this->invalidBoolean( $boolean ) ) {
47 throw new InvalidArgumentException( "Invalid boolean: $boolean. Must be one of: " . implode( ', ', static::BOOLEANS ) );
48 }
49
50 $this->field = $field;
51 $this->operator = $operator;
52 $this->value = $value;
53 $this->boolean = $boolean;
54 }
55
56 /**
57 * Check if the provided operator is invalid.
58 *
59 * @since 2.13.0
60 *
61 * @param string $operator
62 *
63 * @return bool
64 */
65 protected function invalidOperator( $operator ) {
66 return ! in_array( $operator, static::OPERATORS, true );
67 }
68
69 /**
70 * Check if the provided boolean is invalid.
71 *
72 * @since 2.13.0
73 *
74 * @param $boolean
75 *
76 * @return bool
77 */
78 protected function invalidBoolean( $boolean ) {
79 return ! in_array( $boolean, static::BOOLEANS, true );
80 }
81
82 /**
83 * {@inheritDoc}
84 */
85 public function jsonSerialize() {
86 return [
87 'type' => static::TYPE,
88 'field' => $this->field,
89 'value' => $this->value,
90 'operator' => $this->operator,
91 'boolean' => $this->boolean,
92 ];
93 }
94 }
95