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