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