PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.2
GiveWP – Donation Plugin and Fundraising Platform v3.19.2
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 / Actions / ConvertLegacyNotificationToEmailNotificationData.php
give / src / FormBuilder / Actions Last commit date
ConvertGlobalDefaultOptionsToDefaultBlocks.php 2 years ago ConvertLegacyNotificationToEmailNotificationData.php 2 years ago DequeueAdminScriptsInFormBuilder.php 2 years ago DequeueAdminStylesInFormBuilder.php 2 years ago GenerateDefaultDonationFormBlockCollection.php 2 years ago UpdateDonorCommentsMeta.php 2 years ago UpdateEmailSettingsMeta.php 2 years ago UpdateEmailTemplateMeta.php 2 years ago UpdateFormGridMeta.php 2 years ago
ConvertLegacyNotificationToEmailNotificationData.php
90 lines
1 <?php
2
3 namespace Give\FormBuilder\Actions;
4
5 use Give\FormBuilder\DataTransferObjects\EmailNotificationData;
6
7 /**
8 * Convert data from legacy configuration into DTO.
9 *
10 * @since 3.0.0
11 */
12 class ConvertLegacyNotificationToEmailNotificationData
13 {
14 /** @var string */
15 protected $id;
16
17 /** @var string */
18 protected $title;
19
20 /** @var array */
21 protected $fields;
22
23 public function __construct(array $notification)
24 {
25 $this->id = $notification['id'];
26 $this->title = $notification['title'];
27 $this->fields = $notification['fields'];
28 }
29
30 public function __invoke(): EmailNotificationData
31 {
32 $dto = new EmailNotificationData;
33
34 $dto->id = $this->id;
35 $dto->title = $this->title;
36 $dto->statusOptions = $this->getStatusOptions();
37 $dto->supportsRecipients = $this->hasRecipientField();
38 $dto->defaultValues = $this->getDefaultValues();
39
40 return $dto;
41 }
42
43 protected function getStatusOptions()
44 {
45 try {
46 $field = $this->findFieldBy('id', "_give_{$this->id}_notification");
47 $formattedOptions = [];
48 foreach($field['options'] as $value => $label) {
49 $formattedOptions[] = [
50 'value' => $value,
51 'label' => $label,
52 ];
53 }
54 return $formattedOptions;
55 } catch(\Exception $e) {
56 return [];
57 }
58 }
59
60 protected function hasRecipientField(): bool
61 {
62 try {
63 $this->findFieldBy('id', "_give_{$this->id}_recipient");
64 return true;
65 } catch(\Exception $e) {
66 return false;
67 }
68 }
69
70 protected function findFieldBy($key, $value)
71 {
72 foreach( $this->fields as $field ) {
73 if( isset($field[$key]) && $field[$key] === $value ) {
74 return $field;
75 }
76 }
77 throw new \Exception("Field not found with $key of '$value'");
78 }
79
80 protected function getDefaultValues(): array
81 {
82 $defaultValues = [];
83 foreach($this->fields as $field){
84 $key = str_replace("_give_{$this->id}_", '', $field['id']);
85 $defaultValues[$key] = $field['default'] ?? '';
86 }
87 return $defaultValues;
88 }
89 }
90