PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 / FeatureFlags / OptionBasedFormEditor / Settings / AbstractOptionBasedFormEditorSettings.php
give / src / FeatureFlags / OptionBasedFormEditor / Settings Last commit date
AbstractOptionBasedFormEditorSettings.php 1 year ago Advanced.php 1 year ago DefaultOptions.php 1 year ago General.php 5 months ago
AbstractOptionBasedFormEditorSettings.php
101 lines
1 <?php
2
3 namespace Give\FeatureFlags\OptionBasedFormEditor\Settings;
4
5 use Give\FeatureFlags\OptionBasedFormEditor\OptionBasedFormEditor;
6
7 /**
8 * @since 3.18.0
9 */
10 abstract class AbstractOptionBasedFormEditorSettings
11 {
12 /**
13 * @since 3.18.0
14 */
15 abstract public function getDisabledOptionIds(): array;
16
17 /**
18 * @since 3.18.0
19 */
20 public function getDisabledSectionIds(): array
21 {
22 return [];
23 }
24
25 /**
26 * @since 3.18.0
27 */
28 public function getNewDefaultSection(): string
29 {
30 return '';
31 }
32
33 /**
34 * @since 3.18.0
35 */
36 final public function maybeDisableSections(array $sections): array
37 {
38 if (OptionBasedFormEditor::isEnabled()) {
39 return $sections;
40 }
41
42 foreach ($sections as $key => $value) {
43 if (in_array($key, $this->getDisabledSectionIds())) {
44 unset($sections[$key]);
45 }
46 }
47
48 return $sections;
49 }
50
51 /**
52 * @since 3.18.0
53 */
54 final public function maybeDisableOptions(array $options): array
55 {
56 foreach ($options as $key => $value) {
57 if ( ! $this->isOptionDisabled($value['id']) && ! $this->isCurrentSectionDisabled()) {
58 continue;
59 }
60
61 if (OptionBasedFormEditor::isEnabled()) {
62 $options[$key]['name'] .= isset($value['name']) ? OptionBasedFormEditor::helperText() : '';
63 } else {
64 unset($options[$key]);
65 }
66 }
67
68 return $options;
69 }
70
71 /**
72 * @since 3.18.0
73 */
74 final public function maybeSetNewDefaultSection($currentSection)
75 {
76 if (OptionBasedFormEditor::isEnabled()) {
77 return $currentSection;
78 }
79
80 $newDefaultSection = $this->getNewDefaultSection();
81
82 return ! empty($newDefaultSection) && $newDefaultSection != $currentSection ? $newDefaultSection : $currentSection;
83 }
84
85 /**
86 * @since 3.18.0
87 */
88 private function isOptionDisabled($option): bool
89 {
90 return $option && in_array($option, $this->getDisabledOptionIds());
91 }
92
93 /**
94 * @since 3.18.0
95 */
96 private function isCurrentSectionDisabled(): bool
97 {
98 return in_array(give_get_current_setting_section(), $this->getDisabledSectionIds());
99 }
100 }
101