PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.1
GiveWP – Donation Plugin and Fundraising Platform v2.18.1
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 / LegacyPaymentGateways / Adapters / LegacyPaymentGatewayAdapter.php
give / src / LegacyPaymentGateways / Adapters Last commit date
LegacyPaymentGatewayAdapter.php 4 years ago
LegacyPaymentGatewayAdapter.php
126 lines
1 <?php
2
3 namespace Give\LegacyPaymentGateways\Adapters;
4
5 use Give\Framework\PaymentGateways\Contracts\PaymentGatewayInterface;
6 use Give\PaymentGateways\Actions\CreatePaymentAction;
7 use Give\PaymentGateways\Actions\CreateSubscriptionAction;
8 use Give\PaymentGateways\DataTransferObjects\FormData;
9 use Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData;
10 use Give\PaymentGateways\DataTransferObjects\SubscriptionData;
11
12 /**
13 * Class LegacyPaymentGatewayAdapter
14 * @since 2.18.0
15 */
16 class LegacyPaymentGatewayAdapter
17 {
18
19 /**
20 * Get legacy form field markup to display gateway specific payment fields
21 *
22 * @since 2.18.0
23 *
24 * @param int $formId
25 * @param PaymentGatewayInterface $registeredGateway
26 *
27 * @return string|bool
28 */
29 public function getLegacyFormFieldMarkup($formId, $registeredGateway)
30 {
31 return $registeredGateway->getLegacyFormFieldMarkup($formId);
32 }
33
34 /**
35 * First we create a payment, then move on to the gateway processing
36 *
37 * @since 2.18.0
38 *
39 * @param array $legacyDonationData Legacy Donation Data
40 * @param PaymentGatewayInterface $registeredGateway
41 *
42 * @return void
43 */
44 public function handleBeforeGateway($legacyDonationData, $registeredGateway)
45 {
46 $formData = FormData::fromRequest($legacyDonationData);
47
48 $this->validateGatewayNonce($formData->gatewayNonce);
49
50 $donationId = $this->createPayment($formData->toGiveInsertPaymentData());
51
52 $gatewayPaymentData = $formData->toGatewayPaymentData($donationId);
53
54 if (
55 function_exists('Give_Recurring') &&
56 Give_Recurring()->is_donation_recurring($formData->legacyDonationData)
57 ) {
58 $subscriptionData = SubscriptionData::fromRequest($legacyDonationData);
59 $subscriptionId = $this->createSubscription($donationId, $formData, $subscriptionData);
60
61 $gatewaySubscriptionData = $subscriptionData->toGatewaySubscriptionData($subscriptionId);
62
63 $registeredGateway->handleCreateSubscription($gatewayPaymentData, $gatewaySubscriptionData);
64 }
65
66 $registeredGateway->handleCreatePayment($gatewayPaymentData);
67 }
68
69 /**
70 * Create the payment
71 *
72 * @since 2.18.0
73 *
74 * @param GiveInsertPaymentData $giveInsertPaymentData
75 *
76 * @return int
77 */
78 private function createPayment(GiveInsertPaymentData $giveInsertPaymentData)
79 {
80 /** @var CreatePaymentAction $createPaymentAction */
81 $createPaymentAction = give(CreatePaymentAction::class);
82
83 return $createPaymentAction($giveInsertPaymentData);
84 }
85
86 /**
87 * Create the payment
88 *
89 * @since 2.18.0
90 *
91 * @param int $donationId
92 * @param FormData $formData
93 * @param SubscriptionData $subscriptionData
94 *
95 * @return int
96 */
97 private function createSubscription($donationId, FormData $formData, SubscriptionData $subscriptionData)
98 {
99 /** @var CreateSubscriptionAction $createSubscriptionAction */
100 $createSubscriptionAction = give(CreateSubscriptionAction::class);
101
102 return $createSubscriptionAction($donationId, $formData, $subscriptionData);
103 }
104
105 /**
106 * Validate Gateway Nonce
107 *
108 * @since 2.18.0
109 *
110 * @param string $gatewayNonce
111 */
112 private function validateGatewayNonce($gatewayNonce)
113 {
114 if (!wp_verify_nonce($gatewayNonce, 'give-gateway')) {
115 wp_die(
116 esc_html__(
117 'We\'re unable to recognize your session. Please refresh the screen to try again; otherwise contact your website administrator for assistance.',
118 'give'
119 ),
120 esc_html__('Error', 'give'),
121 ['response' => 403]
122 );
123 }
124 }
125 }
126