PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.6.0
GiveWP – Donation Plugin and Fundraising Platform v3.6.0
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 / Framework / LegacyPaymentGateways / Adapters / LegacyPaymentGatewayRegisterAdapter.php
give / src / Framework / LegacyPaymentGateways / Adapters Last commit date
LegacyPaymentGatewayRegisterAdapter.php 2 years ago
LegacyPaymentGatewayRegisterAdapter.php
102 lines
1 <?php
2
3 namespace Give\Framework\LegacyPaymentGateways\Adapters;
4
5 use Exception;
6 use Give\Framework\PaymentGateways\PaymentGateway;
7 use Give\LegacyPaymentGateways\Adapters\LegacyPaymentGatewayAdapter;
8
9 class LegacyPaymentGatewayRegisterAdapter
10 {
11 /**
12 * Run the necessary legacy hooks on our LegacyPaymentGatewayAdapter
13 * that prepares data to be sent to each gateway
14 *
15 * @since 2.30.0 check for getLegacyFormFieldMarkup before attempting to use
16 *
17 * @since 2.19.0
18 * @throws Exception
19 */
20 public function connectGatewayToLegacyPaymentGatewayAdapter(string $gatewayClass)
21 {
22 /** @var LegacyPaymentGatewayAdapter $legacyPaymentGatewayAdapter */
23 $legacyPaymentGatewayAdapter = give(LegacyPaymentGatewayAdapter::class);
24
25 /** @var PaymentGateway $registeredGateway */
26 $registeredGateway = give($gatewayClass);
27 $registeredGatewayId = $registeredGateway::id();
28
29 if (method_exists($registeredGateway, 'getLegacyFormFieldMarkup')) {
30 add_action(
31 "give_{$registeredGatewayId}_cc_form",
32 static function ($formId, $args) use ($registeredGateway, $legacyPaymentGatewayAdapter) {
33 echo $legacyPaymentGatewayAdapter->getLegacyFormFieldMarkup($formId, $args, $registeredGateway);
34 },
35 10,
36 2
37 );
38 }
39
40 add_action(
41 "give_gateway_{$registeredGatewayId}",
42 static function ($legacyPaymentData) use ($registeredGateway, $legacyPaymentGatewayAdapter) {
43 $legacyPaymentGatewayAdapter->handleBeforeGateway(give_clean($legacyPaymentData), $registeredGateway);
44 }
45 );
46
47 if ($registeredGateway->supportsRefund()) {
48 add_action(
49 "give_view_donation_details_totals_after",
50 static function (int $donationId) use ($registeredGateway, $legacyPaymentGatewayAdapter) {
51 $legacyPaymentGatewayAdapter->addOptRefundCheckbox($donationId, $registeredGateway);
52 },
53 PHP_INT_MAX // Ensure this will be the last callback registered to this hook.
54 );
55 add_action(
56 "give_update_payment_status",
57 static function (int $donationId, string $newStatus, string $oldStatus) use (
58 $registeredGateway,
59 $legacyPaymentGatewayAdapter
60 ) {
61 $legacyPaymentGatewayAdapter->maybeRefundOnGateway($donationId, $newStatus, $oldStatus,
62 $registeredGateway);
63 },
64 11,
65 3
66 );
67 }
68 }
69
70 /**
71 * Adds new payment gateways to legacy list for settings
72 *
73 * @since 2.30.0 update admin_label to include version compatibility
74 * @since 2.25.0 add is_visible key to $gatewayData
75 * @since 2.19.0
76 */
77 public function addNewPaymentGatewaysToLegacyListSettings(array $gatewaysData, array $newPaymentGateways): array
78 {
79 foreach ($newPaymentGateways as $gatewayClassName) {
80 /* @var PaymentGateway $paymentGateway */
81 $paymentGateway = give($gatewayClassName);
82
83 $gatewaysData[$paymentGateway::id()] = [
84 'admin_label' => $paymentGateway->getName(),
85 'checkout_label' => $paymentGateway->getPaymentMethodLabel(),
86 'is_visible' => $this->supportsV2Forms($paymentGateway),
87 ];
88 }
89
90 return $gatewaysData;
91 }
92
93 /**
94 * @since 2.30.0 check if v2 compatible
95 * @since 2.25.0
96 */
97 public function supportsV2Forms(PaymentGateway $gateway): bool
98 {
99 return in_array(2, $gateway->supportsFormVersions(), true);
100 }
101 }
102