PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.0
GiveWP – Donation Plugin and Fundraising Platform v2.18.0
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 / PaymentGateways / DataTransferObjects / FormData.php
give / src / PaymentGateways / DataTransferObjects Last commit date
FormData.php 4 years ago GatewayPaymentData.php 4 years ago GatewaySubscriptionData.php 4 years ago GiveInsertPaymentData.php 4 years ago SubscriptionData.php 4 years ago
FormData.php
210 lines
1 <?php
2
3 namespace Give\PaymentGateways\DataTransferObjects;
4
5 use Give\ValueObjects\Address;
6 use Give\ValueObjects\CardInfo;
7 use Give\ValueObjects\DonorInfo;
8
9 /**
10 * Class FormData
11 * @since 2.18.0
12 */
13 class FormData
14 {
15 /**
16 * @var float
17 */
18 public $price;
19 /**
20 * @var string
21 */
22 public $formTitle;
23 /**
24 * @var string
25 */
26 public $date;
27 /**
28 * @var string
29 */
30 public $purchaseKey;
31 /**
32 * @var string
33 */
34 public $currency;
35 /**
36 * @var array
37 */
38 public $userInfo;
39 /**
40 * @var string
41 */
42 public $paymentGateway;
43 /**
44 * @var string
45 */
46 public $gatewayNonce;
47 /**
48 * @var array
49 */
50 public $postData;
51 /**
52 * @var CardInfo
53 */
54 public $cardInfo;
55 /**
56 * @var int
57 */
58 public $formId;
59 /**
60 * @var string
61 */
62 public $priceId;
63 /**
64 * @var string
65 */
66 public $formIdPrefix;
67 /**
68 * @var string
69 */
70 public $currentUrl;
71 /**
72 * @var string
73 */
74 public $formMinimum;
75 /**
76 * @var string
77 */
78 public $formMaximum;
79 /**
80 * @var string
81 */
82 public $formHash;
83 /**
84 * @var string
85 */
86 public $loggedInOnly;
87 /**
88 * @var string
89 */
90 public $amount;
91 /**
92 * @var string
93 */
94 public $userId;
95 /**
96 * @var Address
97 */
98 public $billingAddress;
99 /**
100 * @var DonorInfo
101 */
102 public $donorInfo;
103 /**
104 * This property is only for internal use. It will be removed in the future.
105 * We will use this property to gracefully deprecate action and filter which exist in existing donation flow.
106 *
107 * @deprecated
108 * @var array
109 */
110 public $legacyDonationData;
111
112 /**
113 * Convert data from request into DTO
114 *
115 * @since 2.18.0
116 *
117 * @return self
118 */
119 public static function fromRequest(array $request)
120 {
121 $self = new static();
122
123 $self->legacyDonationData = $request;
124 $self->price = $request['price'];
125 $self->date = $request['date'];
126 $self->purchaseKey = $request['purchase_key'];
127 $self->currency = give_get_currency($request['post_data']['give-form-id'], $request);
128 $self->userInfo = $request['user_info'];
129 $self->postData = $request['post_data'];
130 $self->formTitle = $request['post_data']['give-form-title'];
131 $self->formId = (int)$request['post_data']['give-form-id'];
132 $self->priceId = isset($request['post_data']['give-price-id']) ? $request['post_data']['give-price-id'] : '';
133 $self->formIdPrefix = $request['post_data']['give-form-id-prefix'];
134 $self->currentUrl = $request['post_data']['give-current-url'];
135 $self->formMinimum = $request['post_data']['give-form-minimum'];
136 $self->formMaximum = $request['post_data']['give-form-maximum'];
137 $self->formHash = $request['post_data']['give-form-hash'];
138 $self->loggedInOnly = $request['post_data']['give-logged-in-only'];
139 $self->amount = $request['post_data']['give-amount'];
140 $self->paymentGateway = $request['post_data']['give-gateway'];
141 $self->gatewayNonce = $request['gateway_nonce'];
142 $self->donorInfo = DonorInfo::fromArray([
143 'wpUserId' => $request['user_info']['id'],
144 'firstName' => $request['user_info']['first_name'],
145 'lastName' => $request['user_info']['last_name'],
146 'email' => $request['user_info']['email'],
147 'honorific' => !empty($request['user_info']['title']) ? $request['user_info']['title'] : '',
148 'address' => $request['user_info']['address']
149 ]);
150 $self->cardInfo = CardInfo::fromArray([
151 'name' => $request['card_info']['card_name'],
152 'cvc' => $request['card_info']['card_cvc'],
153 'expMonth' => $request['card_info']['card_exp_month'],
154 'expYear' => $request['card_info']['card_exp_year'],
155 'number' => $request['card_info']['card_number'],
156 ]);
157 $self->billingAddress = Address::fromArray([
158 'line1' => $request['card_info']['card_address'],
159 'line2' => $request['card_info']['card_address_2'],
160 'city' => $request['card_info']['card_city'],
161 'state' => $request['card_info']['card_state'],
162 'country' => $request['card_info']['card_country'],
163 'postalCode' => $request['card_info']['card_zip'],
164 ]);
165
166 return $self;
167 }
168
169 /**
170 *
171 * @return GiveInsertPaymentData
172 */
173 public function toGiveInsertPaymentData()
174 {
175 return GiveInsertPaymentData::fromArray([
176 'price' => $this->price,
177 'formTitle' => $this->formTitle,
178 'formId' => $this->formId,
179 'priceId' => $this->priceId,
180 'date' => $this->date,
181 'donorEmail' => $this->donorInfo->email,
182 'purchaseKey' => $this->purchaseKey,
183 'currency' => $this->currency,
184 'userInfo' => $this->userInfo,
185 'paymentGateway' => $this->paymentGateway
186 ]);
187 }
188
189 /**
190 * @param int $donationId
191 * @return GatewayPaymentData
192 */
193 public function toGatewayPaymentData($donationId)
194 {
195 return GatewayPaymentData::fromArray([
196 'amount' => $this->amount,
197 'currency' => $this->currency,
198 'date' => $this->date,
199 'price' => $this->price,
200 'priceId' => $this->priceId,
201 'gatewayId' => $this->paymentGateway,
202 'donationId' => $donationId,
203 'purchaseKey' => $this->purchaseKey,
204 'donorInfo' => $this->donorInfo,
205 'cardInfo' => $this->cardInfo,
206 'billingAddress' => $this->billingAddress,
207 ]);
208 }
209 }
210