PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
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 / FormBuilder / Actions / GenerateDefaultDonationFormBlockCollection.php

GenerateDefaultDonationFormBlockCollection.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.9, at src/FormBuilder/Actions/GenerateDefaultDonationFormBlockCollection.php

158 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\FormBuilder\Actions;
4
5 use Give\Framework\Blocks\BlockCollection;
6 use Give\Framework\Blocks\BlockModel;
7
8 /**
9 * @since 3.1.0
10 */
11 class GenerateDefaultDonationFormBlockCollection
12 {
13 /**
14 * @since 3.1.0
15 */
16 public function __invoke(): BlockCollection
17 {
18 $section1 = $this->createSection(
19 __('How much would you like to donate today?', 'give'),
20 __('All donations directly impact our organization and help us further our mission.', 'give'),
21 $this->createAmountBlock()
22 );
23
24 $section2 = $this->createSection(
25 __('Who\'s Giving Today?', 'give'),
26 __('We\'ll never share this information with anyone.', 'give'),
27 $this->createDonorNameBlock(),
28 $this->createEmailBlock()
29 );
30
31 $section3 = $this->createSection(
32 __('Payment Details', 'give'),
33 __('How would you like to pay for your donation?', 'give'),
34 $this->createDonationSummaryBlock(),
35 $this->createPaymentGatewaysBlock()
36 );
37
38 return BlockCollection::make([
39 $section1,
40 $section2,
41 $section3
42 ]);
43 }
44
45 /**
46 * @since 3.1.0
47 */
48 protected function createSection(string $title, string $description, BlockModel ...$innerBlocks): BlockModel
49 {
50 return BlockModel::make([
51 'name' => 'givewp/section',
52 'attributes' => [
53 'title' => $title,
54 'description' => $description,
55 ],
56 'innerBlocks' => new BlockCollection($innerBlocks),
57 ]);
58 }
59
60 /**
61 * @since 3.1.0
62 */
63 protected function createAmountBlock(): BlockModel
64 {
65 return BlockModel::make([
66 'name' => 'givewp/donation-amount',
67 'attributes' => [
68 "label" => __("Donation Amount", 'give'),
69 "levels" => [
70 ['value' => 10, 'checked' => true],
71 ['value' => 25],
72 ['value' => 50],
73 ['value' => 100],
74 ['value' => 250],
75 ['value' => 500],
76 ],
77 "priceOption" => "multi",
78 "setPrice" => 25,
79 "customAmount" => true,
80 "customAmountMin" => 1,
81 "recurringBillingPeriodOptions" => [
82 "month"
83 ],
84 "recurringBillingInterval" => 1,
85 "recurringEnabled" => false,
86 "recurringLengthOfTime" => "0",
87 "recurringOptInDefaultBillingPeriod" => "month",
88 "recurringEnableOneTimeDonations" => true
89 ],
90 'innerBlocks' => [],
91 ]);
92 }
93
94 /**
95 * @since 4.3.0 update firstNamePlaceholder and lastNamePlaceholder values.
96 * @since 3.1.0
97 */
98 protected function createDonorNameBlock(): BlockModel
99 {
100 return BlockModel::make([
101 'name' => 'givewp/donor-name',
102 'attributes' => [
103 "showHonorific" => false,
104 "honorifics" => [
105 __("Mr", 'give'),
106 __("Ms", 'give'),
107 __("Mrs", 'give')
108 ],
109 "firstNameLabel" => __("First name", 'give'),
110 "firstNamePlaceholder" => __("John", 'give'),
111 "lastNameLabel" => __("Last name", 'give'),
112 "lastNamePlaceholder" => __("Doe", 'give'),
113 "requireLastName" => false
114 ],
115 "innerBlocks" => []
116 ]);
117 }
118
119 /**
120 * @since 3.1.0
121 */
122 protected function createEmailBlock(): BlockModel
123 {
124 return BlockModel::make([
125 'name' => 'givewp/email',
126 'attributes' => [
127 "label" => __("Email Address", 'give'),
128 "isRequired" => true,
129 ],
130 "innerBlocks" => []
131 ]);
132 }
133
134 /**
135 * @since 3.1.0
136 */
137 protected function createDonationSummaryBlock(): BlockModel
138 {
139 return BlockModel::make([
140 'name' => 'givewp/donation-summary',
141 'attributes' => [],
142 'innerBlocks' => []
143 ]);
144 }
145
146 /**
147 * @since 3.1.0
148 */
149 protected function createPaymentGatewaysBlock(): BlockModel
150 {
151 return BlockModel::make([
152 'name' => 'givewp/payment-gateways',
153 'attributes' => [],
154 'innerBlocks' => []
155 ]);
156 }
157 }
158