PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.4.2
GiveWP – Donation Plugin and Fundraising Platform v3.4.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 / Session / SessionDonation / DonationAccessor.php
give / src / Session / SessionDonation Last commit date
SessionObjects 4 years ago DonationAccessor.php 4 years ago
DonationAccessor.php
119 lines
1 <?php
2
3 namespace Give\Session\SessionDonation;
4
5 use DateTime;
6 use Give\Session\Accessor;
7 use Give\Session\SessionDonation\SessionObjects\Donation as DonationObject;
8 use Give\Session\SessionDonation\SessionObjects\FormEntry;
9
10 /**
11 * Class Donation
12 *
13 * This class provide way to access donation session data.
14 *
15 * @package Give\Session\Access
16 *
17 * @method DonationObject get
18 */
19 class DonationAccessor extends Accessor
20 {
21 /**
22 * Session Id
23 *
24 * @since 2.7.0
25 * @var string
26 */
27 protected $sessionKey = 'give_purchase';
28
29 /**
30 * Donation object.
31 *
32 * Since 2.7.0
33 *
34 * @var DonationObject
35 */
36 protected $dataObj;
37
38 /**
39 * property vs session key array.
40 * It is useful to map array keys to class properties.
41 *
42 * @var array
43 */
44 private $renameTo = [
45 'user_email' => 'donorEmail',
46 'user_info' => 'donorInfo',
47 'post_data' => 'formEntry',
48 'donation_id' => 'id',
49 'price' => 'totalAmount',
50 'gateway' => 'paymentGateway',
51 'date' => 'createdAt',
52 ];
53
54 /**
55 * Map array keys to class properties
56 *
57 * @since 2.7.0
58 *
59 * @param array $data
60 *
61 * @return DonationObject
62 */
63 protected function convertToObject($data)
64 {
65 if ( ! $data) {
66 return null;
67 }
68
69 // Cast date string to DateTime object.
70 $data['date'] = DateTime::createFromFormat('Y-m-d H:i:s', $data['date']);
71
72 // Rename key if property name exist for them.
73 foreach ($data as $key => $value) {
74 if (array_key_exists($key, $this->renameTo)) {
75 $data[$this->renameTo[$key]] = $value;
76 unset($data[$key]);
77 }
78 }
79
80 // Rename unknown keys.
81 $data = $this->renameArrayKeysToPropertyNames($data);
82
83 return DonationObject::fromArray($data);
84 }
85
86 /**
87 * Get donation id.
88 *
89 * @since 2.7.0
90 * @return int
91 *
92 */
93 public function getDonationId()
94 {
95 if ($donationId = $this->getByKey('id')) {
96 return absint($donationId);
97 }
98
99 return null;
100 }
101
102 /**
103 * Get donation id.
104 *
105 * @since 2.7.0
106 * @return int
107 *
108 */
109 public function getFormId()
110 {
111 /* @var FormEntry $data */
112 if ($data = $this->getByKey('formEntry')) {
113 return absint($data->formId);
114 }
115
116 return null;
117 }
118 }
119