PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.1.2
GiveWP – Donation Plugin and Fundraising Platform v3.1.2
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 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 / DonationForms / Properties / FormSettings.php
give / src / DonationForms / Properties Last commit date
FormSettings.php 2 years ago
FormSettings.php
293 lines
1 <?php
2
3 namespace Give\DonationForms\Properties;
4
5 use Give\DonationForms\ValueObjects\DonationFormStatus;
6 use Give\DonationForms\ValueObjects\GoalType;
7 use Give\Framework\Support\Contracts\Arrayable;
8 use Give\Framework\Support\Contracts\Jsonable;
9
10 /**
11 * @unreleased Remove addSlashesRecursive method
12 * @since 3.0.0
13 */
14 class FormSettings implements Arrayable, Jsonable
15 {
16 /**
17 * @var boolean
18 */
19 public $showHeader;
20 /**
21 * @var boolean
22 */
23 public $showHeading;
24 /**
25 * @var boolean
26 */
27 public $showDescription;
28 /**
29 * @var string
30 */
31 public $formTitle;
32 /**
33 * @var boolean
34 */
35 public $enableDonationGoal;
36 /**
37 * @var boolean
38 */
39 public $enableAutoClose;
40 /**
41 * @var GoalType
42 */
43 public $goalType;
44 /**
45 * @var string
46 */
47 public $designId;
48 /**
49 * @var string
50 */
51 public $heading;
52 /**
53 * @var string
54 */
55 public $description;
56 /**
57 * @var string
58 */
59 public $primaryColor;
60 /**
61 * @var string
62 */
63 public $secondaryColor;
64 /**
65 * @var float
66 */
67 public $goalAmount;
68 /**
69 * @unreleased Added registrationNotification property.
70 * @var string
71 */
72 public $registrationNotification;
73 /**
74 * @var string
75 */
76 public $customCss;
77 /**
78 * @var string
79 */
80 public $goalAchievedMessage;
81
82 /**
83 * @var string
84 */
85 public $pageSlug;
86
87 /**
88 * @var string
89 */
90 public $receiptHeading;
91
92 /**
93 * @var string
94 */
95 public $receiptDescription;
96
97 /**
98 * @var DonationFormStatus
99 */
100 public $formStatus;
101
102 /**
103 * @var array
104 */
105 public $emailTemplateOptions;
106
107 /**
108 * @var string
109 * @todo Extract to a value object.
110 */
111 public $emailOptionsStatus;
112
113 /**
114 * @var string
115 */
116 public $emailTemplate;
117
118 /**
119 * @var string
120 */
121 public $emailLogo;
122
123 /**
124 * @var string
125 */
126 public $emailFromName;
127
128 /**
129 * @var string
130 */
131 public $emailFromEmail;
132
133 /**
134 * @var boolean
135 */
136 public $formGridCustomize;
137
138 /**
139 * @var string
140 */
141 public $formGridRedirectUrl;
142
143 /**
144 * @var string
145 */
146 public $formGridDonateButtonText;
147
148 /**
149 * @var boolean
150 */
151 public $formGridHideDocumentationLink;
152
153 /**
154 * @var boolean
155 */
156 public $offlineDonationsCustomize;
157
158 /**
159 * @var string
160 */
161 public $offlineDonationsInstructions;
162
163 /**
164 * @var string
165 */
166 public $donateButtonCaption;
167 /**
168 * @var string
169 */
170 public $multiStepFirstButtonText;
171 /**
172 * @var string
173 */
174 public $multiStepNextButtonText;
175
176 /**
177 * @var array
178 */
179 public $pdfSettings;
180
181 /**
182 * @unreleased Added registrationNotification
183 * @since 3.0.0
184 */
185 public static function fromArray(array $array): self
186 {
187 $self = new self();
188
189 $self->showHeader = $array['showHeader'] ?? true;
190 $self->showHeading = $array['showHeading'] ?? true;
191 $self->heading = $array['heading'] ?? __('Support Our Cause', 'give');
192 $self->showDescription = $array['showDescription'] ?? true;
193 $self->description = $array['description'] ?? __(
194 'Help our organization by donating today! Donations go to making a difference for our cause.',
195 'give'
196 );
197 $self->formTitle = $array['formTitle'] ?? __('Donation Form', 'give');
198 $self->donateButtonCaption = $array['donateButtonCaption'] ?? __('Donate now', 'give');
199 $self->enableDonationGoal = $array['enableDonationGoal'] ?? false;
200 $self->enableAutoClose = $array['enableAutoClose'] ?? false;
201 $self->goalType = !empty($array['goalType']) && GoalType::isValid($array['goalType']) ? new GoalType(
202 $array['goalType']
203 ) : GoalType::AMOUNT();
204 $self->designId = $array['designId'] ?? null;
205 $self->primaryColor = $array['primaryColor'] ?? '#69b86b';
206 $self->secondaryColor = $array['secondaryColor'] ?? '#f49420';
207 $self->goalAmount = $array['goalAmount'] ?? 0;
208 $self->registrationNotification = $array['registrationNotification'] ?? false;
209 $self->customCss = $array['customCss'] ?? '';
210 $self->pageSlug = $array['pageSlug'] ?? '';
211 $self->goalAchievedMessage = $array['goalAchievedMessage'] ?? __(
212 'Thank you to all our donors, we have met our fundraising goal.',
213 'give'
214 );
215 $self->receiptHeading = $array['receiptHeading'] ?? __(
216 'Hey {first_name}, thanks for your donation!',
217 'give'
218 );
219 $self->receiptDescription = $array['receiptDescription'] ?? __(
220 '{first_name}, your contribution means a lot and will be put to good use in making a difference. We’ve sent your donation receipt to {email}.',
221 'give'
222 );
223 $self->formStatus = !empty($array['formStatus']) ? new DonationFormStatus(
224 $array['formStatus']
225 ) : DonationFormStatus::DRAFT();
226
227 $self->formGridCustomize = $array['formGridCustomize'] ?? false;
228 $self->formGridRedirectUrl = $array['formGridRedirectUrl'] ?? '';
229 $self->formGridDonateButtonText = $array['formGridDonateButtonText'] ?? '';
230 $self->formGridHideDocumentationLink = $array['formGridHideDocumentationLink'] ?? false;
231
232 $self->emailTemplateOptions = $array['emailTemplateOptions'] ?? [];
233
234 $self->emailOptionsStatus = $array['emailOptionsStatus'] ?? 'global';
235
236 $self->emailTemplate = $array['emailTemplate'] ?? 'default';
237
238 $self->emailFromName = $array['emailFromName'] ?? '';
239
240 $self->emailFromEmail = $array['emailFromEmail'] ?? '';
241
242 $self->emailLogo = $array['emailLogo'] ?? '';
243
244 $self->offlineDonationsCustomize = $array['offlineDonationsCustomize'] ?? false;
245
246 $self->offlineDonationsInstructions = $array['offlineDonationsInstructions'] ?? '';
247
248 $self->multiStepFirstButtonText = $array['multiStepFirstButtonText'] ?? __('Donate now', 'give');
249
250 $self->multiStepNextButtonText = $array['multiStepNextButtonText'] ?? __('Continue', 'give');
251
252 $self->pdfSettings = isset($array['pdfSettings']) && is_array(
253 $array['pdfSettings']
254 ) ? $array['pdfSettings'] : [];
255
256 return $self;
257 }
258
259 /**
260 * @since 3.0.0
261 */
262 public static function fromJson(string $json): self
263 {
264 return self::fromArray(
265 json_decode($json, true)
266 );
267 }
268
269 /**
270 * @since 3.0.0
271 */
272 public function toArray(): array
273 {
274 return get_object_vars($this);
275 }
276
277 /**
278 * @unreleased Remove call to addSlashesRecursive method for emailTemplateOptions in favor of SanitizeDonationFormPreviewRequest class
279 * @since 3.0.0
280 */
281 public function toJson($options = 0): string
282 {
283 return json_encode(
284 array_merge(
285 $this->toArray(),
286 [
287 'goalType' => $this->goalType ? $this->goalType->getValue() : null,
288 ]
289 )
290 );
291 }
292 }
293