PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.18.0
GiveWP – Donation Plugin and Fundraising Platform v4.18.0
4.18.0 4.17.0 4.16.9 4.16.8.1 4.16.8 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 All 257 releases
give / src / PaymentGateways / Gateways / Stripe / CreditCardGateway.php

CreditCardGateway.php in GiveWP – Donation Plugin and Fundraising Platform 4.18.0, at src/PaymentGateways/Gateways/Stripe/CreditCardGateway.php

113 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\Stripe;
4
5 use Give\Donations\Models\Donation;
6 use Give\Framework\Exceptions\Primitives\Exception;
7 use Give\Framework\PaymentGateways\Commands\GatewayCommand;
8 use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
9 use Give\Framework\PaymentGateways\PaymentGateway;
10 use Give\Framework\PaymentGateways\SubscriptionModule;
11 use Give\Helpers\Call;
12 use Give\PaymentGateways\Gateways\Stripe\ValueObjects\PaymentMethod;
13
14 /**
15 * @since 2.19.0
16 */
17 class CreditCardGateway extends PaymentGateway
18 {
19 use Traits\CreditCardForm;
20 use Traits\HandlePaymentIntentStatus;
21
22 /** @var array */
23 protected $errorMessages = [];
24
25 /**
26 * @since 4.17.0 Declare the nullable parameter explicitly.
27 */
28 public function __construct(?SubscriptionModule $subscriptionModule = null)
29 {
30 parent::__construct($subscriptionModule);
31
32 $this->errorMessages['accountConfiguredNoSsl'] = esc_html__(
33 'Credit Card fields are disabled because your site is not running securely over HTTPS.',
34 'give'
35 );
36 $this->errorMessages['accountNotConfiguredNoSsl'] = esc_html__(
37 'Credit Card fields are disabled because Stripe is not connected and your site is not running securely over HTTPS.',
38 'give'
39 );
40 $this->errorMessages['accountNotConfigured'] = esc_html__(
41 'Credit Card fields are disabled. Please connect and configure your Stripe account to accept donations.',
42 'give'
43 );
44 }
45
46 /**
47 * @inheritDoc
48 * @since 2.19.7 fix handlePaymentIntentStatus not receiving extra param
49 * @since 2.19.0
50 *
51 * @param array{stripePaymentMethod: PaymentMethod} $gatewayData
52 *
53 * @throws PaymentGatewayException
54 */
55 public function createPayment(Donation $donation, $gatewayData): GatewayCommand
56 {
57 $donationSummary = Call::invoke(Actions\SaveDonationSummary::class, $donation);
58 $stripeCustomer = Call::invoke(Actions\GetOrCreateStripeCustomer::class, $donation);
59
60 $createIntentAction = new Actions\CreatePaymentIntent([]);
61
62 return $this->handlePaymentIntentStatus(
63 $createIntentAction(
64 $donation,
65 $donationSummary,
66 $stripeCustomer,
67 $gatewayData['stripePaymentMethod']
68 ),
69 $donation
70 );
71 }
72
73 /**
74 * @inheritDoc
75 */
76 public static function id(): string
77 {
78 return 'stripe';
79 }
80
81 /**
82 * @inheritDoc
83 */
84 public function getId(): string
85 {
86 return self::id();
87 }
88
89 /**
90 * @inheritDoc
91 */
92 public function getName(): string
93 {
94 return __('Stripe - Credit Card', 'give');
95 }
96
97 /**
98 * @inheritDoc
99 */
100 public function getPaymentMethodLabel(): string
101 {
102 return __('Stripe - Credit Card', 'give');
103 }
104
105 /**
106 * @inheritDoc
107 */
108 public function getLegacyFormFieldMarkup(int $formId, array $args): string
109 {
110 return $this->getCreditCardFormHTML($formId, $args);
111 }
112 }
113