PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.4
GiveWP – Donation Plugin and Fundraising Platform v2.10.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 / ScriptLoader.php
give / src / PaymentGateways / PayPalCommerce Last commit date
DataTransferObjects 5 years ago Models 5 years ago Repositories 5 years ago Webhooks 5 years ago AccountAdminNotices.php 5 years ago AdminSettingFields.php 5 years ago AdvancedCardFields.php 5 years ago AjaxRequestHandler.php 5 years ago DonationDetailsPage.php 5 years ago DonationFormPaymentMethod.php 5 years ago DonationProcessor.php 5 years ago PayPalClient.php 5 years ago PayPalCommerce.php 5 years ago RefreshToken.php 5 years ago RefundPaymentHandler.php 5 years ago ScriptLoader.php 5 years ago Utils.php 5 years ago onBoardingRedirectHandler.php 5 years ago
ScriptLoader.php
199 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce;
4
5 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
6 use Give\PaymentGateways\PayPalCommerce\Repositories\MerchantDetails;
7 use Give_Admin_Settings;
8
9 /**
10 * Class ScriptLoader
11 * @since 2.9.0
12 * @package Give\PaymentGateways\PayPalCommerce
13 *
14 */
15 class ScriptLoader {
16 /**
17 * @since 2.9.0
18 *
19 * @var MerchantDetails
20 */
21 private $merchantRepository;
22
23 /**
24 * ScriptLoader constructor.
25 *
26 * @since 2.9.0
27 *
28 * @param MerchantDetails $merchantRepository
29 */
30 public function __construct( MerchantDetails $merchantRepository ) {
31 $this->merchantRepository = $merchantRepository;
32 }
33
34 /**
35 * Load admin scripts
36 *
37 * @since 2.9.0
38 */
39 public function loadAdminScripts() {
40 if ( ! Give_Admin_Settings::is_setting_page( 'gateway', 'paypal' ) ) {
41 return;
42 }
43
44 wp_enqueue_script(
45 'give-paypal-partner-js',
46 $this->getPartnerJsUrl(),
47 [],
48 null,
49 true
50 );
51
52 wp_enqueue_style(
53 'give-admin-paypal-commerce-css',
54 GIVE_PLUGIN_URL . 'assets/dist/css/admin-paypal-commerce.css',
55 [],
56 GIVE_VERSION
57 );
58
59 wp_localize_script(
60 'give-paypal-partner-js',
61 'givePayPalCommerce',
62 [
63 'translations' => [
64 'confirmPaypalAccountDisconnection' => esc_html__( 'Disconnect PayPal Account', 'give' ),
65 'disconnectPayPalAccount' => esc_html__( 'Are you sure you want to disconnect your PayPal account?', 'give' ),
66 'connectSuccessTitle' => esc_html__( 'You’re connected to PayPal! Here’s what’s next...', 'give' ),
67 'pciWarning' => sprintf(
68 __(
69 'PayPal allows you to accept credit or debit cards directly on your website. Because of
70 this, your site needs to maintain <a href="%1$s" target="_blank">PCI-DDS compliance</a>.
71 GiveWP never stores sensitive information like card details to your server and works
72 seamlessly with SSL certificates. Compliance is comprised of, but not limited to:',
73 'give'
74 ),
75 'https://givewp.com/documentation/resources/pci-compliance/'
76 ),
77 'pciComplianceInstructions' => [
78 esc_html__( 'Using a trusted, secure hosting provider – preferably one which claims and actively promotes PCI compliance.', 'give' ),
79 esc_html__( 'Maintain security best practices when setting passwords and limit access to your server.', 'give' ),
80 esc_html__( 'Implement an SSL certificate to keep your donations secure.', 'give' ),
81 esc_html__( 'Keep plugins up to date to ensure latest security fixes are present.', 'give' ),
82 ],
83 'liveWarning' => give_is_test_mode() ? esc_html__(
84 'You have connected your account for test mode. You will need to connect again once you
85 are in live mode.',
86 'give'
87 ) : '',
88 ],
89 ]
90 );
91
92 $script = <<<EOT
93 function givePayPalOnBoardedCallback(authCode, sharedId) {
94 const query = '&authCode=' + authCode + '&sharedId=' + sharedId;
95 fetch( ajaxurl + '?action=give_paypal_commerce_user_on_boarded' + query )
96 .then(function(res){ return res.json() })
97 .then(function(res) {
98 if ( true !== res.success ) {
99 alert('Something went wrong!');
100 return;
101 }
102
103 // Remove PayPal quick help container.
104 const paypalErrorQuickHelp = document.getElementById('give-paypal-onboarding-trouble-notice');
105 paypalErrorQuickHelp && paypalErrorQuickHelp.remove();
106 });
107 }
108 EOT;
109
110 wp_add_inline_script(
111 'give-paypal-partner-js',
112 $script
113 );
114 }
115
116 /**
117 * Load public assets.
118 *
119 * @since 2.9.0
120 */
121 public function loadPublicAssets() {
122 if ( ! Utils::gatewayIsActive() || ! Utils::isAccountReadyToAcceptPayment() ) {
123 return;
124 }
125
126 /* @var MerchantDetail $merchant */
127 $merchant = give( MerchantDetail::class );
128 $scriptId = 'give-paypal-commerce-js';
129
130 /**
131 * List of PayPal query parameters: https://developer.paypal.com/docs/checkout/reference/customize-sdk/#query-parameters
132 */
133 $payPalSdkQueryParameters = [
134 'client-id' => $merchant->clientId,
135 'merchant-id' => $merchant->merchantIdInPayPal,
136 'components' => 'hosted-fields,buttons',
137 'locale' => get_locale(),
138 'disable-funding' => 'credit',
139 'vault' => true,
140 'data-partner-attribution-id' => give( 'PAYPAL_COMMERCE_ATTRIBUTION_ID' ),
141 'data-client-token' => $this->merchantRepository->getClientToken(),
142 ];
143
144 wp_enqueue_script(
145 $scriptId,
146 GIVE_PLUGIN_URL . 'assets/dist/js/paypal-commerce.js',
147 [],
148 GIVE_VERSION,
149 true
150 );
151
152 wp_localize_script(
153 $scriptId,
154 'givePayPalCommerce',
155 [
156 'paypalCardInfoErrorPrefixes' => [
157 'expirationDateField' => esc_html__( 'Card Expiration Date:', 'give' ),
158 'cardNumberField' => esc_html__( 'Card Number:', 'give' ),
159 'cardCvcField' => esc_html__( 'Card CVC:', 'give' ),
160 ],
161 'cardFieldPlaceholders' => [
162 'cardNumber' => esc_html__( 'Card Number', 'give' ),
163 'cardCvc' => esc_html__( 'CVC', 'give' ),
164 'expirationDate' => esc_html__( 'MM/YY', 'give' ),
165 ],
166 'threeDsCardAuthenticationFailedNotice' => esc_html__( 'There was a problem authenticating your payment method. Please try again. If the problem persists, please try another payment method.', 'give' ),
167 'errorCodeLabel' => esc_html__( 'Error Code', 'give' ),
168 'genericDonorErrorMessage' => __( 'There was an error processing your donation. Please contact the administrator.', 'give' ),
169 // List of style properties support by PayPal for advanced card fields: https://developer.paypal.com/docs/business/checkout/reference/style-guide/#style-the-card-payments-fields
170 'hostedCardFieldStyles' => apply_filters( 'give_paypal_commerce_hosted_field_style', [] ),
171 'supportsCustomPayments' => $merchant->supportsCustomPayments ? 1 : '',
172 'accountCountry' => $merchant->accountCountry,
173 'separatorLabel' => esc_html__( 'Or pay with card', 'give' ),
174 'payPalSdkQueryParameters' => $payPalSdkQueryParameters,
175 'textForOverlayScreen' => sprintf(
176 '<h3>%1$s</h3><p>%2$s</p><p>%3$s</p>',
177 esc_html__( 'Donation Processing...', 'give' ),
178 esc_html__( 'Checking donation status with PayPal.', 'give' ),
179 esc_html__( 'This will only take a second!', 'give' )
180 ),
181 ]
182 );
183 }
184
185 /**
186 * Get PayPal partner js url.
187 *
188 * @since 2.9.0
189 *
190 * @return string
191 */
192 private function getPartnerJsUrl() {
193 return sprintf(
194 '%1$swebapps/merchantboarding/js/lib/lightbox/partner.js',
195 give( PayPalClient::class )->getHomePageUrl()
196 );
197 }
198 }
199