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