PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.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 / Donors / CustomFields / Views / DonorDetailsView.php
give / src / Donors / CustomFields / Views Last commit date
DonorDetailsView.php 2 years ago
DonorDetailsView.php
107 lines
1 <?php
2
3 namespace Give\Donors\CustomFields\Views;
4
5 use Give\Donors\Models\Donor;
6 use Give\Framework\FieldsAPI\Field;
7 use Give\Framework\FieldsAPI\Types;
8
9 /**
10 * @since 3.0.0
11 */
12 class DonorDetailsView
13 {
14 /** @var Donor */
15 protected $donor;
16
17 /** @var Field[] */
18 protected $fields;
19
20 /**
21 * @since 3.0.0
22 *
23 * @param Donor $donor
24 * @param Field[] $fields
25 */
26 public function __construct(Donor $donor, array $fields)
27 {
28 $this->donor = $donor;
29 $this->fields = $fields;
30 }
31
32 /**
33 * @since 3.0.0
34 *
35 * @return string
36 */
37 public function render(): string
38 {
39 return "<h3>{$this->getTitle()}</h3>
40 <table class='wp-list-table widefat striped donations'>
41 <thead>
42 <tr>
43 <th scope='col'>Field</th>
44 <th scope='col'>Value</th>
45 </tr>
46 </thead>
47 <tbody>
48 {$this->getTableRows()}
49 </tbody>
50 </table>";
51 }
52
53 /**
54 * @since 3.0.0
55 *
56 * @return string
57 */
58 protected function getTitle(): string
59 {
60 return __('Custom Fields', 'give');
61 }
62
63 /**
64 * @since 3.0.0
65 *
66 * @return string
67 */
68 protected function getTableRows(): string
69 {
70 return array_reduce($this->fields, function($output, Field $field) {
71 $value = $this->getFieldValue($field);
72 $label = method_exists($field, 'getLabel') ? $field->getLabel() : $field->getName();
73
74 if (empty($value)) {
75 return $output;
76 }
77
78 return $output . "
79 <tr>
80 <td>{$label}</td>
81 <td>{$value}</td>
82 </tr>
83 ";
84 }, '');
85 }
86
87 /**
88 * @since 3.0.0
89 *
90 * @return mixed
91 */
92 protected function getFieldValue(Field $field)
93 {
94 $metaValue = give()->donor_meta->get_meta($this->donor->id, $field->getName(), true);
95
96 if (empty($metaValue)) {
97 return '';
98 }
99
100 if ($field->getType() === Types::FILE) {
101 return wp_get_attachment_link($metaValue);
102 }
103
104 return $metaValue;
105 }
106 }
107