PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.0
GiveWP – Donation Plugin and Fundraising Platform v2.18.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
DataTransferObjects 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 DonationProcessor.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
198 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce;
4
5 use Give\Helpers\Hooks;
6 use Give\PaymentGateways\PaymentGateway;
7 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
8 use Give\PaymentGateways\PayPalCommerce\Webhooks\WebhookChecker;
9
10 /**
11 * Class PayPalCommerce
12 *
13 * Boots the PayPalCommerce gateway and provides its basic registration properties
14 *
15 * @since 2.9.0
16 */
17 class PayPalCommerce implements PaymentGateway
18 {
19 const GATEWAY_ID = 'paypal-commerce';
20
21 /**
22 * @inheritDoc
23 */
24 public function getId()
25 {
26 return self::GATEWAY_ID;
27 }
28
29 /**
30 * @inheritDoc
31 */
32 public function getName()
33 {
34 return esc_html__('PayPal Donations', 'give');
35 }
36
37 /**
38 * @inheritDoc
39 */
40 public function getPaymentMethodLabel()
41 {
42 return esc_html__('Credit Card', 'give');
43 }
44
45 /**
46 * @inheritDoc
47 * @since 2.16.2 Add setting "Transaction type".
48 */
49 public function getOptions()
50 {
51 $settings = [
52 [
53 'type' => 'title',
54 'id' => 'give_gateway_settings_1',
55 'table_html' => false,
56 ],
57 [
58 'id' => 'paypal_commerce_introduction',
59 'type' => 'paypal_commerce_introduction',
60 ],
61 [
62 'type' => 'sectionend',
63 'id' => 'give_gateway_settings_1',
64 'table_html' => false,
65 ],
66 [
67 'type' => 'title',
68 'id' => 'give_gateway_settings_2',
69 ],
70 [
71 'name' => esc_html__('Account Country', 'give'),
72 'id' => 'paypal_commerce_account_country',
73 'type' => 'paypal_commerce_account_country',
74 ],
75 [
76 'name' => esc_html__('Connect With Paypal', 'give'),
77 'id' => 'paypal_commerce_account_manger',
78 'type' => 'paypal_commerce_account_manger',
79 ],
80 [
81 'name' => esc_html__('Transaction Type', 'give'),
82 'desc' => esc_html__(
83 '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.',
84 'give'
85 ),
86 'id' => 'paypal_commerce_transaction_type',
87 'type' => 'radio_inline',
88 'options' => [
89 'donation' => esc_html__('Donation', 'give'),
90 'standard' => esc_html__('Standard Transaction', 'give'),
91 ],
92 'default' => 'donation',
93 ],
94 [
95 'name' => esc_html__('PayPal Donations Gateway Settings Docs Link', 'give'),
96 'id' => 'paypal_commerce_gateway_settings_docs_link',
97 'url' => esc_url('http://docs.givewp.com/paypal-donations'),
98 'title' => esc_html__('PayPal Donations Gateway Settings', 'give'),
99 'type' => 'give_docs_link',
100 ],
101 [
102 'type' => 'sectionend',
103 'id' => 'give_gateway_settings_2',
104 ],
105 ];
106
107 if (give(MerchantDetail::class)->accountIsReady) {
108 $settings = give_settings_array_insert(
109 $settings,
110 'paypal_commerce_gateway_settings_docs_link',
111 [
112 [
113 'name' => esc_html__('Collect Billing Details', 'give'),
114 'id' => 'paypal_commerce_collect_billing_details',
115 'type' => 'radio_inline',
116 'desc' => esc_html__(
117 '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.',
118 'give'
119 ),
120 'default' => 'disabled',
121 'options' => [
122 'enabled' => esc_html__('Enabled', 'give'),
123 'disabled' => esc_html__('Disabled', 'give'),
124 ],
125 ],
126 ]
127 );
128 }
129
130 /**
131 * filter the settings
132 *
133 * @since 2.9.6
134 */
135 return apply_filters('give_get_settings_paypal_commerce', $settings);
136 }
137
138 /**
139 * @inheritDoc
140 */
141 public function boot()
142 {
143 Hooks::addAction(
144 'wp_ajax_give_paypal_commerce_user_on_boarded',
145 AjaxRequestHandler::class,
146 'onBoardedUserAjaxRequestHandler'
147 );
148 Hooks::addAction(
149 'wp_ajax_give_paypal_commerce_get_partner_url',
150 AjaxRequestHandler::class,
151 'onGetPartnerUrlAjaxRequestHandler'
152 );
153 Hooks::addAction(
154 'wp_ajax_give_paypal_commerce_disconnect_account',
155 AjaxRequestHandler::class,
156 'removePayPalAccount'
157 );
158 Hooks::addAction('wp_ajax_give_paypal_commerce_create_order', AjaxRequestHandler::class, 'createOrder');
159 Hooks::addAction(
160 'wp_ajax_give_paypal_commerce_onboarding_trouble_notice',
161 AjaxRequestHandler::class,
162 'onBoardingTroubleNotice'
163 );
164 Hooks::addAction('wp_ajax_nopriv_give_paypal_commerce_create_order', AjaxRequestHandler::class, 'createOrder');
165 Hooks::addAction('wp_ajax_give_paypal_commerce_approve_order', AjaxRequestHandler::class, 'approveOrder');
166 Hooks::addAction(
167 'wp_ajax_nopriv_give_paypal_commerce_approve_order',
168 AjaxRequestHandler::class,
169 'approveOrder'
170 );
171
172 Hooks::addAction('admin_enqueue_scripts', ScriptLoader::class, 'loadAdminScripts');
173 Hooks::addAction('wp_enqueue_scripts', ScriptLoader::class, 'loadPublicAssets');
174 Hooks::addAction('give_pre_form_output', DonationFormPaymentMethod::class, 'handle');
175
176 Hooks::addAction('give_paypal_commerce_refresh_token', RefreshToken::class, 'refreshToken');
177 Hooks::addAction('give_paypal-commerce_cc_form', AdvancedCardFields::class, 'addCreditCardForm');
178 Hooks::addAction('give_gateway_paypal-commerce', DonationProcessor::class, 'handle');
179
180 Hooks::addAction('admin_init', AccountAdminNotices::class, 'displayNotices');
181 Hooks::addFilter(
182 'give_payment_details_transaction_id-paypal-commerce',
183 DonationDetailsPage::class,
184 'getPayPalPaymentUrl'
185 );
186
187 Hooks::addAction('give_update_edited_donation', RefundPaymentHandler::class, 'refundPayment');
188 Hooks::addAction('admin_notices', RefundPaymentHandler::class, 'showPaymentRefundFailureNotice');
189 Hooks::addAction(
190 'give_view_donation_details_totals_after',
191 RefundPaymentHandler::class,
192 'optInForRefundFormField'
193 );
194
195 Hooks::addAction('admin_init', WebhookChecker::class, 'checkWebhookCriteria');
196 }
197 }
198