PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.2
GiveWP – Donation Plugin and Fundraising Platform v2.19.2
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 / 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
207 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 $amount;
87 /**
88 * @var string
89 */
90 public $userId;
91 /**
92 * @var Address
93 */
94 public $billingAddress;
95 /**
96 * @var DonorInfo
97 */
98 public $donorInfo;
99 /**
100 * This property is only for internal use. It will be removed in the future.
101 * We will use this property to gracefully deprecate action and filter which exist in existing donation flow.
102 *
103 * @deprecated
104 * @var array
105 */
106 public $legacyDonationData;
107
108 /**
109 * Convert data from request into DTO
110 *
111 * @since 2.18.0
112 *
113 * @return self
114 */
115 public static function fromRequest(array $request)
116 {
117 $self = new static();
118
119 $self->legacyDonationData = $request;
120 $self->price = $request['price'];
121 $self->date = $request['date'];
122 $self->purchaseKey = $request['purchase_key'];
123 $self->currency = give_get_currency($request['post_data']['give-form-id'], $request);
124 $self->userInfo = $request['user_info'];
125 $self->postData = $request['post_data'];
126 $self->formTitle = $request['post_data']['give-form-title'];
127 $self->formId = (int)$request['post_data']['give-form-id'];
128 $self->priceId = isset($request['post_data']['give-price-id']) ? $request['post_data']['give-price-id'] : '';
129 $self->formIdPrefix = $request['post_data']['give-form-id-prefix'];
130 $self->currentUrl = $request['post_data']['give-current-url'];
131 $self->formMinimum = $request['post_data']['give-form-minimum'];
132 $self->formMaximum = $request['post_data']['give-form-maximum'];
133 $self->formHash = $request['post_data']['give-form-hash'];
134 $self->amount = $request['post_data']['give-amount'];
135 $self->paymentGateway = $request['post_data']['give-gateway'];
136 $self->gatewayNonce = $request['gateway_nonce'];
137 $self->donorInfo = DonorInfo::fromArray([
138 'wpUserId' => $request['user_info']['id'],
139 'firstName' => $request['user_info']['first_name'],
140 'lastName' => $request['user_info']['last_name'],
141 'email' => $request['user_info']['email'],
142 'honorific' => ! empty($request['user_info']['title']) ? $request['user_info']['title'] : '',
143 'address' => $request['user_info']['address']
144 ]);
145 $self->cardInfo = CardInfo::fromArray([
146 'name' => $request['card_info']['card_name'],
147 'cvc' => $request['card_info']['card_cvc'],
148 'expMonth' => $request['card_info']['card_exp_month'],
149 'expYear' => $request['card_info']['card_exp_year'],
150 'number' => $request['card_info']['card_number'],
151 ]);
152 $self->billingAddress = Address::fromArray([
153 'line1' => $request['card_info']['card_address'],
154 'line2' => $request['card_info']['card_address_2'],
155 'city' => $request['card_info']['card_city'],
156 'state' => $request['card_info']['card_state'],
157 'country' => $request['card_info']['card_country'],
158 'postalCode' => $request['card_info']['card_zip'],
159 ]);
160
161 return $self;
162 }
163
164 /**
165 *
166 * @return GiveInsertPaymentData
167 */
168 public function toGiveInsertPaymentData()
169 {
170 return GiveInsertPaymentData::fromArray([
171 'price' => $this->price,
172 'formTitle' => $this->formTitle,
173 'formId' => $this->formId,
174 'priceId' => $this->priceId,
175 'date' => $this->date,
176 'donorEmail' => $this->donorInfo->email,
177 'purchaseKey' => $this->purchaseKey,
178 'currency' => $this->currency,
179 'userInfo' => $this->userInfo,
180 'paymentGateway' => $this->paymentGateway
181 ]);
182 }
183
184 /**
185 * @param int $donationId
186 *
187 * @return GatewayPaymentData
188 */
189 public function toGatewayPaymentData($donationId)
190 {
191 return GatewayPaymentData::fromArray([
192 'legacyPaymentData' => $this->legacyDonationData,
193 'amount' => $this->amount,
194 'currency' => $this->currency,
195 'date' => $this->date,
196 'price' => $this->price,
197 'priceId' => $this->priceId,
198 'gatewayId' => $this->paymentGateway,
199 'donationId' => $donationId,
200 'purchaseKey' => $this->purchaseKey,
201 'donorInfo' => $this->donorInfo,
202 'cardInfo' => $this->cardInfo,
203 'billingAddress' => $this->billingAddress,
204 ]);
205 }
206 }
207