PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.15.0
GiveWP – Donation Plugin and Fundraising Platform v4.15.0
4.18.0 4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.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 All 257 releases
give / src / Framework / FieldsAPI / DonationAmount.php

DonationAmount.php in GiveWP – Donation Plugin and Fundraising Platform 4.15.0, at src/Framework/FieldsAPI/DonationAmount.php

105 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Give\Framework\FieldsAPI;
6
7 use Give\Framework\FieldsAPI\Exceptions\EmptyNameException;
8 use Give\Framework\FieldsAPI\Exceptions\NameCollisionException;
9
10 class DonationAmount extends Group
11 {
12 const TYPE = 'donationAmount';
13 /**
14 * @var boolean
15 */
16 public $subscriptionsEnabled = false;
17 /**
18 * @var boolean
19 */
20 public $subscriptionDetailsAreFixed = false;
21
22 /**
23 * @throws NameCollisionException
24 * @throws EmptyNameException
25 */
26 public static function make($name): DonationAmount
27 {
28 return parent::make($name)
29 ->append(
30 Amount::make('amount'),
31 Hidden::make('currency')
32 );
33 }
34
35 /**
36 * @since 3.0.0
37 */
38 public function enableSubscriptions($enable = true): self
39 {
40 $this->subscriptionsEnabled = $enable;
41
42 return $this;
43 }
44
45 /**
46 * @since 3.0.0
47 */
48 public function subscriptionDetailsAreFixed($fixed = true): self
49 {
50 $this->subscriptionDetailsAreFixed = $fixed;
51
52 return $this;
53 }
54
55 /**
56 * @since 3.0.0
57 * @throws NameCollisionException
58 */
59 public function donationType(Field $field): self
60 {
61 $this->append($field);
62
63 return $this;
64 }
65
66 /**
67 * @since 3.0.0
68 * @throws NameCollisionException
69 */
70 public function subscriptionPeriod(Field $field): self
71 {
72 if ($this->subscriptionsEnabled){
73 $this->append($field);
74 }
75
76 return $this;
77 }
78
79 /**
80 * @since 3.0.0
81 * @throws NameCollisionException
82 */
83 public function subscriptionFrequency(Field $field): self
84 {
85 if ($this->subscriptionsEnabled){
86 $this->append($field);
87 }
88
89 return $this;
90 }
91
92 /**
93 * @since 3.0.0
94 * @throws NameCollisionException
95 */
96 public function subscriptionInstallments(Field $field): self
97 {
98 if ($this->subscriptionsEnabled){
99 $this->append($field);
100 }
101
102 return $this;
103 }
104 }
105