PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.0
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
231 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\Helpers\Call;
12 use Give\PaymentGateways\DataTransferObjects\GatewayPaymentData;
13 use Give\PaymentGateways\PayPalCommerce\Actions\GetPayPalOrderFromRequest;
14 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
15
16 /**
17 * Class PayPalCommerce
18 *
19 * Boots the PayPalCommerce gateway and provides its basic registration properties
20 *
21 * @since 2.9.0
22 */
23 class PayPalCommerce extends PaymentGateway
24 {
25 /**
26 * @deprecated
27 *
28 * Use getId or id function to access payment gateway id.
29 *
30 */
31 const GATEWAY_ID = 'paypal-commerce';
32
33 /**
34 * @since 2.19.0
35 *
36 * @param int $formId
37 * @param array $args
38 *
39 * @return string
40 */
41 public function getLegacyFormFieldMarkup($formId, $args)
42 {
43 return give(AdvancedCardFields::class)->addCreditCardForm($formId);
44 }
45
46 /**
47 * @since 2.19.0
48 *
49 * @return string
50 */
51 public static function id()
52 {
53 return 'paypal-commerce';
54 }
55
56 /**
57 * @since 2.19.0
58 *
59 * @return string
60 */
61 public function getId()
62 {
63 return self::id();
64 }
65
66 /**
67 * @since 2.19.0
68 *
69 * @return string
70 */
71 public function getName()
72 {
73 return esc_html__('PayPal Donations', 'give');
74 }
75
76 /**
77 * @since 2.19.0
78 *
79 * @return string
80 */
81 public function getPaymentMethodLabel()
82 {
83 return esc_html__('Credit Card', 'give');
84 }
85
86 /**
87 * @since 2.19.0
88 *
89 * @param GatewayPaymentData $paymentData
90 *
91 * @return GatewayCommand
92 * @throws PaymentGatewayException
93 */
94 public function createPayment(GatewayPaymentData $paymentData)
95 {
96 $paypalOrder = Call::invoke(GetPayPalOrderFromRequest::class);
97 $command = PaymentComplete::make($paypalOrder->payment->id);
98 $command->paymentNotes = [
99 sprintf(
100 __('Transaction Successful. PayPal Transaction ID: %1$s PayPal Order ID: %2$s', 'give'),
101 $paypalOrder->payment->id,
102 $paypalOrder->id
103 )
104 ];
105
106 give('payment_meta')->update_meta(
107 $paymentData->donationId,
108 '_give_order_id',
109 $paypalOrder->id
110 );
111
112 return $command;
113 }
114
115 /**
116 * @since 2.16.2 Add setting "Transaction type".
117 */
118 public function getOptions()
119 {
120 $settings = [
121 [
122 'type' => 'title',
123 'id' => 'give_gateway_settings_1',
124 'table_html' => false,
125 ],
126 [
127 'id' => 'paypal_commerce_introduction',
128 'type' => 'paypal_commerce_introduction',
129 ],
130 [
131 'type' => 'sectionend',
132 'id' => 'give_gateway_settings_1',
133 'table_html' => false,
134 ],
135 [
136 'type' => 'title',
137 'id' => 'give_gateway_settings_2',
138 ],
139 [
140 'name' => esc_html__('Account Country', 'give'),
141 'id' => 'paypal_commerce_account_country',
142 'type' => 'paypal_commerce_account_country',
143 ],
144 [
145 'name' => esc_html__('Connect With Paypal', 'give'),
146 'id' => 'paypal_commerce_account_manger',
147 'type' => 'paypal_commerce_account_manger',
148 ],
149 [
150 'name' => esc_html__('Transaction Type', 'give'),
151 'desc' => esc_html__(
152 '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.',
153 'give'
154 ),
155 'id' => 'paypal_commerce_transaction_type',
156 'type' => 'radio_inline',
157 'options' => [
158 'donation' => esc_html__('Donation', 'give'),
159 'standard' => esc_html__('Standard Transaction', 'give'),
160 ],
161 'default' => 'donation',
162 ],
163 [
164 'name' => esc_html__('Accept Venmo', 'give'),
165 'id' => 'paypal_commerce_accept_venmo',
166 'type' => 'radio_inline',
167 'desc' => esc_html__(
168 '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.',
169 'give'
170 ),
171 'default' => 'disabled',
172 'options' => [
173 'enabled' => esc_html__('Enabled', 'give'),
174 'disabled' => esc_html__('Disabled', 'give'),
175 ],
176 ],
177 [
178 'name' => esc_html__('PayPal Donations Gateway Settings Docs Link', 'give'),
179 'id' => 'paypal_commerce_gateway_settings_docs_link',
180 'url' => esc_url('http://docs.givewp.com/paypal-donations'),
181 'title' => esc_html__('PayPal Donations Gateway Settings', 'give'),
182 'type' => 'give_docs_link',
183 ],
184 [
185 'type' => 'sectionend',
186 'id' => 'give_gateway_settings_2',
187 ],
188 ];
189
190 if (give(MerchantDetail::class)->accountIsReady) {
191 $settings = give_settings_array_insert(
192 $settings,
193 'paypal_commerce_gateway_settings_docs_link',
194 [
195 [
196 'name' => esc_html__('Collect Billing Details', 'give'),
197 'id' => 'paypal_commerce_collect_billing_details',
198 'type' => 'radio_inline',
199 'desc' => esc_html__(
200 '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.',
201 'give'
202 ),
203 'default' => 'disabled',
204 'options' => [
205 'enabled' => esc_html__('Enabled', 'give'),
206 'disabled' => esc_html__('Disabled', 'give'),
207 ],
208 ],
209 ]
210 );
211 }
212
213 /**
214 * filter the settings
215 *
216 * @since 2.9.6
217 */
218 return apply_filters('give_get_settings_paypal_commerce', $settings);
219 }
220
221 /**
222 * @since 2.20.0
223 * @inerhitDoc
224 * @throws Exception
225 */
226 public function refundDonation(Donation $donation)
227 {
228 throw new Exception('Method has not been implemented yet. Please use the legacy method in the meantime.');
229 }
230 }
231