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