PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.8.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.8.1
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 2.3.2 2.30.0 All 255 releases
give / src / Framework / FieldsAPI / DonationAmount.php

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

109 lines 2.2 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 * @since 4.16.5 Add levelId hidden field to donation amount group.
24 * @since 3.0.0
25 *
26 * @throws NameCollisionException
27 * @throws EmptyNameException
28 */
29 public static function make($name): DonationAmount
30 {
31 return parent::make($name)
32 ->append(
33 Amount::make('amount'),
34 Hidden::make('currency'),
35 Hidden::make('levelId')
36 );
37 }
38
39 /**
40 * @since 3.0.0
41 */
42 public function enableSubscriptions($enable = true): self
43 {
44 $this->subscriptionsEnabled = $enable;
45
46 return $this;
47 }
48
49 /**
50 * @since 3.0.0
51 */
52 public function subscriptionDetailsAreFixed($fixed = true): self
53 {
54 $this->subscriptionDetailsAreFixed = $fixed;
55
56 return $this;
57 }
58
59 /**
60 * @since 3.0.0
61 * @throws NameCollisionException
62 */
63 public function donationType(Field $field): self
64 {
65 $this->append($field);
66
67 return $this;
68 }
69
70 /**
71 * @since 3.0.0
72 * @throws NameCollisionException
73 */
74 public function subscriptionPeriod(Field $field): self
75 {
76 if ($this->subscriptionsEnabled){
77 $this->append($field);
78 }
79
80 return $this;
81 }
82
83 /**
84 * @since 3.0.0
85 * @throws NameCollisionException
86 */
87 public function subscriptionFrequency(Field $field): self
88 {
89 if ($this->subscriptionsEnabled){
90 $this->append($field);
91 }
92
93 return $this;
94 }
95
96 /**
97 * @since 3.0.0
98 * @throws NameCollisionException
99 */
100 public function subscriptionInstallments(Field $field): self
101 {
102 if ($this->subscriptionsEnabled){
103 $this->append($field);
104 }
105
106 return $this;
107 }
108 }
109