PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.2
GiveWP – Donation Plugin and Fundraising Platform v2.27.2
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
74 lines
1 <?php
2
3 namespace Give\Framework\LegacyPaymentGateways\Adapters;
4
5 use Give\Framework\PaymentGateways\Contracts\PaymentGatewayInterface;
6 use Give\LegacyPaymentGateways\Adapters\LegacyPaymentGatewayAdapter;
7
8 use function method_exists;
9
10 class LegacyPaymentGatewayRegisterAdapter
11 {
12 /**
13 * Run the necessary legacy hooks on our LegacyPaymentGatewayAdapter
14 * that prepares data to be sent to each gateway
15 *
16 * @since 2.19.0
17 */
18 public function connectGatewayToLegacyPaymentGatewayAdapter(string $gatewayClass)
19 {
20 /** @var LegacyPaymentGatewayAdapter $legacyPaymentGatewayAdapter */
21 $legacyPaymentGatewayAdapter = give(LegacyPaymentGatewayAdapter::class);
22
23 /** @var PaymentGatewayInterface $registeredGateway */
24 $registeredGateway = give($gatewayClass);
25 $registeredGatewayId = $registeredGateway::id();
26
27 add_action(
28 "give_{$registeredGatewayId}_cc_form",
29 static function ($formId, $args) use ($registeredGateway, $legacyPaymentGatewayAdapter) {
30 echo $legacyPaymentGatewayAdapter->getLegacyFormFieldMarkup($formId, $args, $registeredGateway);
31 },
32 10,
33 2
34 );
35
36 add_action(
37 "give_gateway_{$registeredGatewayId}",
38 static function ($legacyPaymentData) use ($registeredGateway, $legacyPaymentGatewayAdapter) {
39 $legacyPaymentGatewayAdapter->handleBeforeGateway(give_clean($legacyPaymentData), $registeredGateway);
40 }
41 );
42 }
43
44 /**
45 * Adds new payment gateways to legacy list for settings
46 *
47 * @since 2.25.0 add is_visible key to $gatewayData
48 * @since 2.19.0
49 */
50 public function addNewPaymentGatewaysToLegacyListSettings(array $gatewaysData, array $newPaymentGateways): array
51 {
52 foreach ($newPaymentGateways as $gatewayClassName) {
53 /* @var PaymentGatewayInterface $paymentGateway */
54 $paymentGateway = give($gatewayClassName);
55
56 $gatewaysData[$paymentGateway::id()] = [
57 'admin_label' => $paymentGateway->getName(),
58 'checkout_label' => $paymentGateway->getPaymentMethodLabel(),
59 'is_visible' => $this->supportsLegacyForm($paymentGateway),
60 ];
61 }
62
63 return $gatewaysData;
64 }
65
66 /**
67 * @since 2.25.0
68 */
69 public function supportsLegacyForm(PaymentGatewayInterface $gateway): bool
70 {
71 return method_exists($gateway, 'supportsLegacyForm') ? $gateway->supportsLegacyForm() : true;
72 }
73 }
74