PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.3
GiveWP – Donation Plugin and Fundraising Platform v3.19.3
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 / Actions / UpdateValidationRulesWithOptionalAsDefault.php
give / src / Framework / FieldsAPI / Actions Last commit date
CreateValidatorFromForm.php 2 years ago CreateValidatorFromFormFields.php 2 years ago UpdateValidationRulesWithOptionalAsDefault.php 2 years ago
UpdateValidationRulesWithOptionalAsDefault.php
45 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Give\Framework\FieldsAPI\Actions;
6
7 use Give\Vendors\StellarWP\Validation\Rules\ExcludeIf;
8 use Give\Vendors\StellarWP\Validation\Rules\ExcludeUnless;
9 use Give\Vendors\StellarWP\Validation\Rules\Optional;
10 use Give\Vendors\StellarWP\Validation\ValidationRuleSet;
11
12 class UpdateValidationRulesWithOptionalAsDefault
13 {
14 /**
15 * This adds the "optional" rule to fields that don't have a "required" rule.
16 * This is to ensure that fields that are not required are not validated unless they have a value.
17 * Additionally, this ensures that the "optional" rule is placed before the "exclude" rules to preserve the intended pipeline functionality.
18 *
19 * @since 3.0.0
20 */
21 public function __invoke(ValidationRuleSet $rules): ValidationRuleSet
22 {
23 if (!$rules->hasRules() || $rules->hasRule('optional')) {
24 return $rules;
25 }
26
27 if (!$rules->hasRule('required')) {
28 $rules->prependRule('optional');
29 }
30
31 $excludeRuleIds = [ExcludeIf::id(), ExcludeUnless::id()];
32
33 foreach ($excludeRuleIds as $excludeRuleId) {
34 // If the exclude rule is present, remove it and prepend it to the rules array so that optional comes after.
35 if ($rules->hasRule($excludeRuleId) && $rules->getRules()[0] instanceof Optional) {
36 $excludeRule = $rules->getRule($excludeRuleId);
37
38 $rules->removeRuleWithId($excludeRuleId);
39 $rules->prependRule($excludeRule);
40 }
41 }
42
43 return $rules;
44 }
45 }