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