PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.23.2
GiveWP – Donation Plugin and Fundraising Platform v2.23.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 / DataTransferObjects / DonorResponseData.php
give / src / Donors / DataTransferObjects Last commit date
DonorQueryData.php 3 years ago DonorResponseData.php 3 years ago
DonorResponseData.php
122 lines
1 <?php
2
3 namespace Give\Donors\DataTransferObjects;
4
5 use Give\Framework\Support\Contracts\Arrayable;
6 use Give\Helpers\Date;
7
8 /**
9 * Class DonorResponseData
10 *
11 * @since 2.20.0
12 */
13 final class DonorResponseData implements Arrayable
14 {
15 /**
16 * @var int
17 */
18 public $id;
19
20 /**
21 * @var int
22 */
23 public $userId;
24
25 /**
26 * @var string
27 */
28 public $email;
29
30 /**
31 * @var string
32 */
33 public $name;
34
35 /**
36 * @var string
37 */
38 public $titlePrefix;
39
40 /**
41 * @var int
42 */
43 public $donationCount;
44
45 /**
46 * @var string
47 */
48 public $dateCreated;
49
50 /**
51 * @var string|null
52 */
53 public $donorType;
54 /**
55 * @var string
56 */
57 public $latestDonation;
58
59 /**
60 * @var string
61 */
62 public $donationRevenue;
63
64 /**
65 * @var string
66 */
67 public $gravatar;
68
69 /**
70 * Convert data from object to Donor
71 *
72 * @since 2.20.0
73 *
74 * @param object $donor
75 *
76 * @return self
77 */
78 public static function fromObject($donor)
79 {
80 $self = new static();
81
82 $donorLatestDonationDate = give()->donors->getDonorLatestDonationDate($donor->id);
83
84 $self->id = (int)$donor->id;
85 $self->userId = (int)$donor->userId;
86 $self->email = $donor->email;
87 $self->name = $donor->name;
88 $self->titlePrefix = $donor->titlePrefix;
89 $self->donationCount = (int)$donor->donationCount;
90 $self->dateCreated = Date::getDateTime($donor->createdAt);
91 $self->donorType = give()->donors->getDonorType($donor->id);
92 $self->latestDonation = $donorLatestDonationDate ? Date::getDateTime($donorLatestDonationDate) : '';
93 $self->donationRevenue = $self->formatAmount($donor->donationRevenue);
94 $self->gravatar = get_avatar_url($donor->email, ["size" => 64]);
95
96 return $self;
97 }
98
99 /**
100 * Convert DTO to array
101 *
102 * @since 2.20.0
103 * @return array
104 */
105 public function toArray()
106 {
107 return get_object_vars($this);
108 }
109
110 /**
111 * @since 2.20.0
112 *
113 * @param string $amount
114 *
115 * @return string
116 */
117 private function formatAmount($amount)
118 {
119 return html_entity_decode(give_currency_filter(give_format_amount($amount)));
120 }
121 }
122