PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.4
GiveWP – Donation Plugin and Fundraising Platform v3.0.4
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 / FormBuilder / BlockModels / DonationAmountBlockModel.php
give / src / FormBuilder / BlockModels Last commit date
DonationAmountBlockModel.php 2 years ago
DonationAmountBlockModel.php
219 lines
1 <?php
2
3 namespace Give\FormBuilder\BlockModels;
4
5 use Give\Framework\Blocks\BlockModel;
6 use Give\Subscriptions\ValueObjects\SubscriptionPeriod;
7
8 /**
9 * This is a decorator for the Block Model block "givewp/donation-amount".
10 *
11 * @since 3.0.0
12 */
13 class DonationAmountBlockModel
14 {
15 /**
16 * @var BlockModel
17 */
18 public $block;
19
20 /**
21 * @since 3.0.0
22 */
23 public function __construct(BlockModel $block)
24 {
25 $this->block = $block;
26 }
27
28 /**
29 * @since 3.0.0
30 */
31 public function getAttribute($name)
32 {
33 return $this->block->getAttribute($name);
34 }
35
36 /**
37 * @since 3.0.0
38 */
39 public function hasAttribute($name): bool
40 {
41 return $this->block->hasAttribute($name);
42 }
43
44 /**
45 * @since 3.0.0
46 */
47 public function setAttribute(string $name, $value): self
48 {
49 $this->block->setAttribute($name, $value);
50
51 return $this;
52 }
53
54 /**
55 * @since 3.0.0
56 */
57 public function getLabel(): string
58 {
59 return $this->block->getAttribute('label');
60 }
61
62 /**
63 * @since 3.0.0
64 *
65 * @return float[]
66 */
67 public function getLevels(): array
68 {
69 return array_map(static function($level) {
70 return (float)filter_var($level, FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
71 }, $this->block->getAttribute('levels'));
72 }
73
74 /**
75 * @since 3.0.0
76 */
77 public function getDefaultLevel(): ?float
78 {
79 return (float)filter_var($this->block->getAttribute('defaultLevel'), FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
80 }
81
82 /**
83 * @return bool
84 */
85 public function isRecurringFixed(): bool
86 {
87 return count($this->block->getAttribute('recurringBillingPeriodOptions')) === 1 && $this->block->getAttribute(
88 'recurringEnableOneTimeDonations'
89 ) === false;
90 }
91
92 /**
93 * @since 3.0.0
94 */
95 public function getRecurringBillingInterval(): int
96 {
97 return (int)$this->block->getAttribute('recurringBillingInterval');
98 }
99
100 /**
101 * @since 3.0.0
102 */
103 public function getRecurringLengthOfTime(): int
104 {
105 return (int)$this->block->getAttribute('recurringLengthOfTime');
106 }
107
108 /**
109 * @since 3.0.0
110 */
111 public function getRecurringOptInDefaultBillingPeriod(): string
112 {
113 return $this->block->getAttribute('recurringOptInDefaultBillingPeriod');
114 }
115
116 /**
117 * @since 3.0.0
118 */
119 public function getRecurringBillingPeriodOptions(): array
120 {
121 return $this->block->getAttribute('recurringBillingPeriodOptions');
122 }
123
124 /**
125 * @since 3.0.0
126 */
127 public function isRecurringEnableOneTimeDonations(): bool
128 {
129 return $this->block->getAttribute('recurringEnableOneTimeDonations') === true;
130 }
131
132 /**
133 * @since 3.0.0
134 */
135 public function isRecurringEnabled(): bool
136 {
137 return $this->block->getAttribute('recurringEnabled') === true;
138 }
139
140 /**
141 * @since 3.0.0
142 */
143 public function setRecurringEnabled(bool $enabled = true): self
144 {
145 return $this->setAttribute('recurringEnabled', $enabled);
146 }
147
148 /**
149 * @since 3.0.0
150 */
151 public function setRecurringEnableOneTimeDonations(bool $enabled = true): self
152 {
153 return $this->setAttribute('recurringEnableOneTimeDonations', $enabled);
154 }
155
156 /**
157 * @since 3.0.0
158 */
159 public function setRecurringBillingInterval(int $interval): self
160 {
161 return $this->setAttribute('recurringBillingInterval', $interval);
162 }
163
164 /**
165 * @since 3.0.0
166 */
167 public function setRecurringLengthOfTime(int $lengthOfTime): self
168 {
169 return $this->setAttribute('recurringLengthOfTime', $lengthOfTime);
170 }
171
172 /**
173 * @since 3.0.0
174 */
175 public function setRecurringBillingPeriodOptions(SubscriptionPeriod ...$options): self
176 {
177 return $this->setAttribute(
178 'recurringBillingPeriodOptions',
179 array_values(
180 array_map(static function (SubscriptionPeriod $option) {
181 return $option->getValue();
182 }, $options)
183 )
184 );
185 }
186
187 /**
188 * @since 3.0.0
189 */
190 public function setRecurringOptInDefaultBillingPeriod(SubscriptionPeriod $period): self
191 {
192 return $this->setAttribute('recurringOptInDefaultBillingPeriod', $period->getValue());
193 }
194
195 /**
196 * @since 3.0.0
197 */
198 public function isCustomAmountEnabled(): bool
199 {
200 return $this->block->getAttribute('customAmount') === true;
201 }
202
203 /**
204 * @since 3.0.0
205 */
206 public function getPriceOption(): string
207 {
208 return $this->block->getAttribute('priceOption');
209 }
210
211 /**
212 * @since 3.0.0
213 */
214 public function getSetPrice(): int
215 {
216 return $this->block->getAttribute('setPrice');
217 }
218 }
219