PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.21.2
GiveWP – Donation Plugin and Fundraising Platform v2.21.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 / PaymentGateways / PayPalCommerce / PayPalCommerce.php
give / src / PaymentGateways / PayPalCommerce Last commit date
Actions 4 years ago DataTransferObjects 4 years ago Exceptions 4 years ago Migrations 4 years ago Models 4 years ago Repositories 4 years ago Webhooks 4 years ago AccountAdminNotices.php 4 years ago AdminSettingFields.php 4 years ago AdvancedCardFields.php 4 years ago AjaxRequestHandler.php 4 years ago DonationDetailsPage.php 4 years ago DonationFormPaymentMethod.php 4 years ago PayPalClient.php 4 years ago PayPalCommerce.php 4 years ago RefreshToken.php 4 years ago RefundPaymentHandler.php 4 years ago ScriptLoader.php 4 years ago Utils.php 4 years ago onBoardingRedirectHandler.php 4 years ago
PayPalCommerce.php
222 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce;
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\Commands\PaymentComplete;
9 use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
10 use Give\Framework\PaymentGateways\PaymentGateway;
11 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
12 use Give\PaymentGateways\PayPalCommerce\Models\PayPalOrder;
13
14 /**
15 * Class PayPalCommerce
16 *
17 * Boots the PayPalCommerce gateway and provides its basic registration properties
18 *
19 * @since 2.9.0
20 */
21 class PayPalCommerce extends PaymentGateway
22 {
23 /**
24 * @deprecated
25 *
26 * Use getId or id function to access payment gateway id.
27 *
28 */
29 const GATEWAY_ID = 'paypal-commerce';
30
31 /**
32 * @since 2.19.0
33 */
34 public function getLegacyFormFieldMarkup(int $formId, array $args): string
35 {
36 return give(AdvancedCardFields::class)->addCreditCardForm($formId);
37 }
38
39 /**
40 * @since 2.19.0
41 *
42 * @return string
43 */
44 public static function id(): string
45 {
46 return 'paypal-commerce';
47 }
48
49 /**
50 * @since 2.19.0
51 *
52 * @return string
53 */
54 public function getId(): string
55 {
56 return self::id();
57 }
58
59 /**
60 * @since 2.19.0
61 *
62 * @return string
63 */
64 public function getName(): string
65 {
66 return esc_html__('PayPal Donations', 'give');
67 }
68
69 /**
70 * @since 2.19.0
71 *
72 * @return string
73 */
74 public function getPaymentMethodLabel(): string
75 {
76 return esc_html__('Credit Card', 'give');
77 }
78
79 /**
80 * @since 2.19.0
81 *
82 * @param PayPalOrder $payPalOrder
83 *
84 * @throws PaymentGatewayException
85 */
86 public function createPayment(Donation $donation, $payPalOrder): GatewayCommand
87 {
88 $command = PaymentComplete::make($payPalOrder->payment->id);
89 $command->paymentNotes = [
90 sprintf(
91 __('Transaction Successful. PayPal Transaction ID: %1$s PayPal Order ID: %2$s', 'give'),
92 $payPalOrder->payment->id,
93 $payPalOrder->id
94 )
95 ];
96
97 give('payment_meta')->update_meta(
98 $donation->id,
99 '_give_order_id',
100 $payPalOrder->id
101 );
102
103 return $command;
104 }
105
106 /**
107 * @since 2.16.2 Add setting "Transaction type".
108 */
109 public function getOptions()
110 {
111 $settings = [
112 [
113 'type' => 'title',
114 'id' => 'give_gateway_settings_1',
115 'table_html' => false,
116 ],
117 [
118 'id' => 'paypal_commerce_introduction',
119 'type' => 'paypal_commerce_introduction',
120 ],
121 [
122 'type' => 'sectionend',
123 'id' => 'give_gateway_settings_1',
124 'table_html' => false,
125 ],
126 [
127 'type' => 'title',
128 'id' => 'give_gateway_settings_2',
129 ],
130 [
131 'name' => esc_html__('Account Country', 'give'),
132 'id' => 'paypal_commerce_account_country',
133 'type' => 'paypal_commerce_account_country',
134 ],
135 [
136 'name' => esc_html__('Connect With Paypal', 'give'),
137 'id' => 'paypal_commerce_account_manger',
138 'type' => 'paypal_commerce_account_manger',
139 ],
140 [
141 'name' => esc_html__('Transaction Type', 'give'),
142 'desc' => esc_html__(
143 'Nonprofits must verify their status to withdraw donations they receive via PayPal. PayPal users that are not verified nonprofits must demonstrate how their donations will be used, once they raise more than $10,000. By default, GiveWP transactions are sent to PayPal as donations. You may change the transaction type using this option if you feel you may not meet PayPal\'s donation requirements.',
144 'give'
145 ),
146 'id' => 'paypal_commerce_transaction_type',
147 'type' => 'radio_inline',
148 'options' => [
149 'donation' => esc_html__('Donation', 'give'),
150 'standard' => esc_html__('Standard Transaction', 'give'),
151 ],
152 'default' => 'donation',
153 ],
154 [
155 'name' => esc_html__('Accept Venmo', 'give'),
156 'id' => 'paypal_commerce_accept_venmo',
157 'type' => 'radio_inline',
158 'desc' => esc_html__(
159 'Displays a button allowing Donors to pay with Venmo (a PayPal Company). Donations still come into your PayPal account and are subject to normal PayPal transaction fees.',
160 'give'
161 ),
162 'default' => 'disabled',
163 'options' => [
164 'enabled' => esc_html__('Enabled', 'give'),
165 'disabled' => esc_html__('Disabled', 'give'),
166 ],
167 ],
168 [
169 'name' => esc_html__('PayPal Donations Gateway Settings Docs Link', 'give'),
170 'id' => 'paypal_commerce_gateway_settings_docs_link',
171 'url' => esc_url('http://docs.givewp.com/paypal-donations'),
172 'title' => esc_html__('PayPal Donations Gateway Settings', 'give'),
173 'type' => 'give_docs_link',
174 ],
175 [
176 'type' => 'sectionend',
177 'id' => 'give_gateway_settings_2',
178 ],
179 ];
180
181 if (give(MerchantDetail::class)->accountIsReady) {
182 $settings = give_settings_array_insert(
183 $settings,
184 'paypal_commerce_gateway_settings_docs_link',
185 [
186 [
187 'name' => esc_html__('Collect Billing Details', 'give'),
188 'id' => 'paypal_commerce_collect_billing_details',
189 'type' => 'radio_inline',
190 'desc' => esc_html__(
191 'If enabled, required billing address fields are added to PayPal Donations Donation forms. These fields are required to process the transaction when enabled. Billing address details are added to both the donation and donor record in GiveWP.',
192 'give'
193 ),
194 'default' => 'disabled',
195 'options' => [
196 'enabled' => esc_html__('Enabled', 'give'),
197 'disabled' => esc_html__('Disabled', 'give'),
198 ],
199 ],
200 ]
201 );
202 }
203
204 /**
205 * filter the settings
206 *
207 * @since 2.9.6
208 */
209 return apply_filters('give_get_settings_paypal_commerce', $settings);
210 }
211
212 /**
213 * @since 2.20.0
214 * @inerhitDoc
215 * @throws Exception
216 */
217 public function refundDonation(Donation $donation)
218 {
219 throw new Exception('Method has not been implemented yet. Please use the legacy method in the meantime.');
220 }
221 }
222