@@ -7,7 +7,7 @@ discard block |
||
7 | 7 | * @version 3.1.0 |
8 | 8 | */ |
9 | 9 | |
10 | -if ( ! defined( 'ABSPATH' ) ) { |
|
10 | +if ( ! defined('ABSPATH')) { |
|
11 | 11 | exit; |
12 | 12 | } |
13 | 13 | |
@@ -20,12 +20,12 @@ discard block |
||
20 | 20 | * Initialize class actions. |
21 | 21 | */ |
22 | 22 | public function __construct() { |
23 | - add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) ); |
|
23 | + add_action('wp_enqueue_scripts', array($this, 'scripts')); |
|
24 | 24 | |
25 | - add_action( 'wc_ajax_wc_stripe_get_cart_details', array( $this, 'ajax_get_cart_details' ) ); |
|
26 | - add_action( 'wc_ajax_wc_stripe_get_shipping_options', array( $this, 'ajax_get_shipping_options' ) ); |
|
27 | - add_action( 'wc_ajax_wc_stripe_update_shipping_method', array( $this, 'ajax_update_shipping_method' ) ); |
|
28 | - add_action( 'wc_ajax_wc_stripe_create_order', array( $this, 'ajax_create_order' ) ); |
|
25 | + add_action('wc_ajax_wc_stripe_get_cart_details', array($this, 'ajax_get_cart_details')); |
|
26 | + add_action('wc_ajax_wc_stripe_get_shipping_options', array($this, 'ajax_get_shipping_options')); |
|
27 | + add_action('wc_ajax_wc_stripe_update_shipping_method', array($this, 'ajax_update_shipping_method')); |
|
28 | + add_action('wc_ajax_wc_stripe_create_order', array($this, 'ajax_create_order')); |
|
29 | 29 | } |
30 | 30 | |
31 | 31 | /** |
@@ -34,10 +34,10 @@ discard block |
||
34 | 34 | * @return bool |
35 | 35 | */ |
36 | 36 | protected function is_activated() { |
37 | - $options = get_option( 'woocommerce_stripe_settings', array() ); |
|
38 | - $enabled = isset( $options['enabled'] ) && 'yes' === $options['enabled']; |
|
39 | - $stripe_checkout = isset( $options['stripe_checkout'] ) && 'yes' !== $options['stripe_checkout']; |
|
40 | - $request_payment_api = isset( $options['request_payment_api'] ) && 'yes' === $options['request_payment_api']; |
|
37 | + $options = get_option('woocommerce_stripe_settings', array()); |
|
38 | + $enabled = isset($options['enabled']) && 'yes' === $options['enabled']; |
|
39 | + $stripe_checkout = isset($options['stripe_checkout']) && 'yes' !== $options['stripe_checkout']; |
|
40 | + $request_payment_api = isset($options['request_payment_api']) && 'yes' === $options['request_payment_api']; |
|
41 | 41 | |
42 | 42 | return $enabled && $stripe_checkout && $request_payment_api && is_ssl(); |
43 | 43 | } |
@@ -48,9 +48,9 @@ discard block |
||
48 | 48 | * @return string |
49 | 49 | */ |
50 | 50 | protected function get_publishable_key() { |
51 | - $options = get_option( 'woocommerce_stripe_settings', array() ); |
|
51 | + $options = get_option('woocommerce_stripe_settings', array()); |
|
52 | 52 | |
53 | - if ( empty( $options ) ) { |
|
53 | + if (empty($options)) { |
|
54 | 54 | return ''; |
55 | 55 | } |
56 | 56 | |
@@ -62,39 +62,39 @@ discard block |
||
62 | 62 | */ |
63 | 63 | public function scripts() { |
64 | 64 | // Load PaymentRequest only on cart for now. |
65 | - if ( ! is_cart() ) { |
|
65 | + if ( ! is_cart()) { |
|
66 | 66 | return; |
67 | 67 | } |
68 | 68 | |
69 | - if ( ! $this->is_activated() ) { |
|
69 | + if ( ! $this->is_activated()) { |
|
70 | 70 | return; |
71 | 71 | } |
72 | 72 | |
73 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
73 | + $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
74 | 74 | |
75 | - wp_enqueue_script( 'stripe', 'https://js.stripe.com/v2/', '', '1.0', true ); |
|
76 | - wp_enqueue_script( 'google-payment-request-shim', 'https://storage.googleapis.com/prshim/v1/payment-shim.js', '', '1.0', false ); |
|
77 | - wp_enqueue_script( 'wc-stripe-payment-request', plugins_url( 'assets/js/payment-request' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), array( 'jquery', 'stripe' ), WC_STRIPE_VERSION, true ); |
|
75 | + wp_enqueue_script('stripe', 'https://js.stripe.com/v2/', '', '1.0', true); |
|
76 | + wp_enqueue_script('google-payment-request-shim', 'https://storage.googleapis.com/prshim/v1/payment-shim.js', '', '1.0', false); |
|
77 | + wp_enqueue_script('wc-stripe-payment-request', plugins_url('assets/js/payment-request' . $suffix . '.js', WC_STRIPE_MAIN_FILE), array('jquery', 'stripe'), WC_STRIPE_VERSION, true); |
|
78 | 78 | |
79 | 79 | wp_localize_script( |
80 | 80 | 'wc-stripe-payment-request', |
81 | 81 | 'wcStripePaymentRequestParams', |
82 | 82 | array( |
83 | - 'ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ), |
|
83 | + 'ajax_url' => WC_AJAX::get_endpoint('%%endpoint%%'), |
|
84 | 84 | 'stripe' => array( |
85 | 85 | 'key' => $this->get_publishable_key(), |
86 | - 'allow_prepaid_card' => apply_filters( 'wc_stripe_allow_prepaid_card', true ) ? 'yes' : 'no', |
|
86 | + 'allow_prepaid_card' => apply_filters('wc_stripe_allow_prepaid_card', true) ? 'yes' : 'no', |
|
87 | 87 | ), |
88 | 88 | 'nonce' => array( |
89 | - 'payment' => wp_create_nonce( 'wc-stripe-payment-request' ), |
|
90 | - 'shipping' => wp_create_nonce( 'wc-stripe-payment-request-shipping' ), |
|
91 | - 'update_shipping' => wp_create_nonce( 'wc-stripe-update-shipping-method' ), |
|
92 | - 'checkout' => wp_create_nonce( 'woocommerce-process_checkout' ), |
|
89 | + 'payment' => wp_create_nonce('wc-stripe-payment-request'), |
|
90 | + 'shipping' => wp_create_nonce('wc-stripe-payment-request-shipping'), |
|
91 | + 'update_shipping' => wp_create_nonce('wc-stripe-update-shipping-method'), |
|
92 | + 'checkout' => wp_create_nonce('woocommerce-process_checkout'), |
|
93 | 93 | ), |
94 | 94 | 'i18n' => array( |
95 | - 'no_prepaid_card' => __( 'Sorry, we\'re not accepting prepaid cards at this time.', 'woocommerce-gateway-stripe' ), |
|
95 | + 'no_prepaid_card' => __('Sorry, we\'re not accepting prepaid cards at this time.', 'woocommerce-gateway-stripe'), |
|
96 | 96 | /* translators: Do not translate the [option] placeholder */ |
97 | - 'unknown_shipping' => __( 'Unknown shipping option "[option]".', 'woocommerce-gateway-stripe' ), |
|
97 | + 'unknown_shipping' => __('Unknown shipping option "[option]".', 'woocommerce-gateway-stripe'), |
|
98 | 98 | ), |
99 | 99 | ) |
100 | 100 | ); |
@@ -104,10 +104,10 @@ discard block |
||
104 | 104 | * Get cart details. |
105 | 105 | */ |
106 | 106 | public function ajax_get_cart_details() { |
107 | - check_ajax_referer( 'wc-stripe-payment-request', 'security' ); |
|
107 | + check_ajax_referer('wc-stripe-payment-request', 'security'); |
|
108 | 108 | |
109 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
110 | - define( 'WOOCOMMERCE_CART', true ); |
|
109 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
110 | + define('WOOCOMMERCE_CART', true); |
|
111 | 111 | } |
112 | 112 | |
113 | 113 | WC()->cart->calculate_totals(); |
@@ -119,18 +119,18 @@ discard block |
||
119 | 119 | 'shipping_required' => WC()->cart->needs_shipping(), |
120 | 120 | 'order_data' => array( |
121 | 121 | 'total' => array( |
122 | - 'label' => __( 'Total', 'woocommerce-gateway-stripe' ), |
|
122 | + 'label' => __('Total', 'woocommerce-gateway-stripe'), |
|
123 | 123 | 'amount' => array( |
124 | - 'value' => max( 0, apply_filters( 'woocommerce_calculated_total', round( WC()->cart->cart_contents_total + WC()->cart->fee_total + WC()->cart->tax_total, WC()->cart->dp ), WC()->cart ) ), |
|
124 | + 'value' => max(0, apply_filters('woocommerce_calculated_total', round(WC()->cart->cart_contents_total + WC()->cart->fee_total + WC()->cart->tax_total, WC()->cart->dp), WC()->cart)), |
|
125 | 125 | 'currency' => $currency, |
126 | 126 | ), |
127 | 127 | ), |
128 | 128 | // Include line items such as subtotal, fees and taxes. No shipping option is provided here because it is not chosen yet. |
129 | - 'displayItems' => $this->compute_display_items( null ), |
|
129 | + 'displayItems' => $this->compute_display_items(null), |
|
130 | 130 | ), |
131 | 131 | ); |
132 | 132 | |
133 | - wp_send_json( $data ); |
|
133 | + wp_send_json($data); |
|
134 | 134 | } |
135 | 135 | |
136 | 136 | /** |
@@ -140,7 +140,7 @@ discard block |
||
140 | 140 | * @version 3.2.0 |
141 | 141 | * @param array $address |
142 | 142 | */ |
143 | - public function calculate_shipping( $address = array() ) { |
|
143 | + public function calculate_shipping($address = array()) { |
|
144 | 144 | global $states; |
145 | 145 | |
146 | 146 | $country = $address['country']; |
@@ -157,28 +157,28 @@ discard block |
||
157 | 157 | * In some versions of Chrome, state can be a full name. So we need |
158 | 158 | * to convert that to abbreviation as WC is expecting that. |
159 | 159 | */ |
160 | - if ( 2 < strlen( $state ) ) { |
|
161 | - $state = array_search( ucfirst( $state ), $states[ $country ] ); |
|
160 | + if (2 < strlen($state)) { |
|
161 | + $state = array_search(ucfirst($state), $states[$country]); |
|
162 | 162 | } |
163 | 163 | |
164 | 164 | WC()->shipping->reset_shipping(); |
165 | 165 | |
166 | - if ( $postcode && WC_Validation::is_postcode( $postcode, $country ) ) { |
|
167 | - $postcode = wc_format_postcode( $postcode, $country ); |
|
166 | + if ($postcode && WC_Validation::is_postcode($postcode, $country)) { |
|
167 | + $postcode = wc_format_postcode($postcode, $country); |
|
168 | 168 | } |
169 | 169 | |
170 | - if ( $country ) { |
|
171 | - WC()->customer->set_location( $country, $state, $postcode, $city ); |
|
172 | - WC()->customer->set_shipping_location( $country, $state, $postcode, $city ); |
|
170 | + if ($country) { |
|
171 | + WC()->customer->set_location($country, $state, $postcode, $city); |
|
172 | + WC()->customer->set_shipping_location($country, $state, $postcode, $city); |
|
173 | 173 | } else { |
174 | 174 | WC()->customer->set_to_base(); |
175 | 175 | WC()->customer->set_shipping_to_base(); |
176 | 176 | } |
177 | 177 | |
178 | - if ( version_compare( WC_VERSION, '3.0', '<' ) ) { |
|
179 | - WC()->customer->calculated_shipping( true ); |
|
178 | + if (version_compare(WC_VERSION, '3.0', '<')) { |
|
179 | + WC()->customer->calculated_shipping(true); |
|
180 | 180 | } else { |
181 | - WC()->customer->set_calculated_shipping( true ); |
|
181 | + WC()->customer->set_calculated_shipping(true); |
|
182 | 182 | WC()->customer->save(); |
183 | 183 | } |
184 | 184 | |
@@ -195,17 +195,17 @@ discard block |
||
195 | 195 | $packages[0]['destination']['address'] = $address_1; |
196 | 196 | $packages[0]['destination']['address_2'] = $address_2; |
197 | 197 | |
198 | - foreach ( WC()->cart->get_cart() as $item ) { |
|
199 | - if ( $item['data']->needs_shipping() ) { |
|
200 | - if ( isset( $item['line_total'] ) ) { |
|
198 | + foreach (WC()->cart->get_cart() as $item) { |
|
199 | + if ($item['data']->needs_shipping()) { |
|
200 | + if (isset($item['line_total'])) { |
|
201 | 201 | $packages[0]['contents_cost'] += $item['line_total']; |
202 | 202 | } |
203 | 203 | } |
204 | 204 | } |
205 | 205 | |
206 | - $packages = apply_filters( 'woocommerce_cart_shipping_packages', $packages ); |
|
206 | + $packages = apply_filters('woocommerce_cart_shipping_packages', $packages); |
|
207 | 207 | |
208 | - WC()->shipping->calculate_shipping( $packages ); |
|
208 | + WC()->shipping->calculate_shipping($packages); |
|
209 | 209 | } |
210 | 210 | |
211 | 211 | /** |
@@ -216,19 +216,19 @@ discard block |
||
216 | 216 | * @see WC_Shipping::get_packages(). |
217 | 217 | */ |
218 | 218 | public function ajax_get_shipping_options() { |
219 | - check_ajax_referer( 'wc-stripe-payment-request-shipping', 'security' ); |
|
219 | + check_ajax_referer('wc-stripe-payment-request-shipping', 'security'); |
|
220 | 220 | |
221 | 221 | // Set the shipping package. |
222 | - $posted = filter_input_array( INPUT_POST, array( |
|
222 | + $posted = filter_input_array(INPUT_POST, array( |
|
223 | 223 | 'country' => FILTER_SANITIZE_STRING, |
224 | 224 | 'state' => FILTER_SANITIZE_STRING, |
225 | 225 | 'postcode' => FILTER_SANITIZE_STRING, |
226 | 226 | 'city' => FILTER_SANITIZE_STRING, |
227 | 227 | 'address' => FILTER_SANITIZE_STRING, |
228 | 228 | 'address_2' => FILTER_SANITIZE_STRING, |
229 | - ) ); |
|
229 | + )); |
|
230 | 230 | |
231 | - $this->calculate_shipping( $posted ); |
|
231 | + $this->calculate_shipping($posted); |
|
232 | 232 | |
233 | 233 | // Set the shipping options. |
234 | 234 | $currency = get_woocommerce_currency(); |
@@ -236,13 +236,13 @@ discard block |
||
236 | 236 | |
237 | 237 | $packages = WC()->shipping->get_packages(); |
238 | 238 | |
239 | - if ( ! empty( $packages ) && WC()->customer->has_calculated_shipping() ) { |
|
240 | - foreach ( $packages as $package_key => $package ) { |
|
241 | - if ( empty( $package['rates'] ) ) { |
|
239 | + if ( ! empty($packages) && WC()->customer->has_calculated_shipping()) { |
|
240 | + foreach ($packages as $package_key => $package) { |
|
241 | + if (empty($package['rates'])) { |
|
242 | 242 | break; |
243 | 243 | } |
244 | 244 | |
245 | - foreach ( $package['rates'] as $key => $rate ) { |
|
245 | + foreach ($package['rates'] as $key => $rate) { |
|
246 | 246 | $data[] = array( |
247 | 247 | 'id' => $rate->id, |
248 | 248 | 'label' => $rate->label, |
@@ -257,55 +257,55 @@ discard block |
||
257 | 257 | } |
258 | 258 | |
259 | 259 | // Auto select when have only one shipping method available. |
260 | - if ( 1 === count( $data ) ) { |
|
260 | + if (1 === count($data)) { |
|
261 | 261 | $data[0]['selected'] = true; |
262 | 262 | } |
263 | 263 | |
264 | - wp_send_json( $data ); |
|
264 | + wp_send_json($data); |
|
265 | 265 | } |
266 | 266 | |
267 | 267 | /** |
268 | 268 | * Update shipping method. |
269 | 269 | */ |
270 | 270 | public function ajax_update_shipping_method() { |
271 | - check_ajax_referer( 'wc-stripe-update-shipping-method', 'security' ); |
|
271 | + check_ajax_referer('wc-stripe-update-shipping-method', 'security'); |
|
272 | 272 | |
273 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
274 | - define( 'WOOCOMMERCE_CART', true ); |
|
273 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
274 | + define('WOOCOMMERCE_CART', true); |
|
275 | 275 | } |
276 | 276 | |
277 | - $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); |
|
278 | - $shipping_method = filter_input( INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); |
|
277 | + $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); |
|
278 | + $shipping_method = filter_input(INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
|
279 | 279 | |
280 | - if ( is_array( $shipping_method ) ) { |
|
281 | - foreach ( $shipping_method as $i => $value ) { |
|
282 | - $chosen_shipping_methods[ $i ] = wc_clean( $value ); |
|
280 | + if (is_array($shipping_method)) { |
|
281 | + foreach ($shipping_method as $i => $value) { |
|
282 | + $chosen_shipping_methods[$i] = wc_clean($value); |
|
283 | 283 | } |
284 | 284 | } |
285 | 285 | |
286 | - WC()->session->set( 'chosen_shipping_methods', $chosen_shipping_methods ); |
|
286 | + WC()->session->set('chosen_shipping_methods', $chosen_shipping_methods); |
|
287 | 287 | |
288 | 288 | WC()->cart->calculate_totals(); |
289 | 289 | |
290 | 290 | // Send back the new cart total and line items to be displayed, such as subtotal, shipping rate(s), fees and taxes. |
291 | - $data = array( |
|
291 | + $data = array( |
|
292 | 292 | 'total' => WC()->cart->total, |
293 | - 'items' => $this->compute_display_items( $shipping_method[0] ), |
|
293 | + 'items' => $this->compute_display_items($shipping_method[0]), |
|
294 | 294 | ); |
295 | 295 | |
296 | - wp_send_json( $data ); |
|
296 | + wp_send_json($data); |
|
297 | 297 | } |
298 | 298 | |
299 | 299 | /** |
300 | 300 | * Create order. |
301 | 301 | */ |
302 | 302 | public function ajax_create_order() { |
303 | - if ( WC()->cart->is_empty() ) { |
|
304 | - wp_send_json_error( __( 'Empty cart', 'woocommerce-gateway-stripe' ) ); |
|
303 | + if (WC()->cart->is_empty()) { |
|
304 | + wp_send_json_error(__('Empty cart', 'woocommerce-gateway-stripe')); |
|
305 | 305 | } |
306 | 306 | |
307 | - if ( ! defined( 'WOOCOMMERCE_CHECKOUT' ) ) { |
|
308 | - define( 'WOOCOMMERCE_CHECKOUT', true ); |
|
307 | + if ( ! defined('WOOCOMMERCE_CHECKOUT')) { |
|
308 | + define('WOOCOMMERCE_CHECKOUT', true); |
|
309 | 309 | } |
310 | 310 | |
311 | 311 | $_POST['terms'] = 1; |
@@ -313,7 +313,7 @@ discard block |
||
313 | 313 | |
314 | 314 | WC()->checkout()->process_checkout(); |
315 | 315 | |
316 | - die( 0 ); |
|
316 | + die(0); |
|
317 | 317 | } |
318 | 318 | |
319 | 319 | /** |
@@ -321,26 +321,26 @@ discard block |
||
321 | 321 | * |
322 | 322 | * @param string shipping_method_id If shipping method ID is provided, will include display items about shipping. |
323 | 323 | */ |
324 | - protected function compute_display_items( $shipping_method_id ) { |
|
324 | + protected function compute_display_items($shipping_method_id) { |
|
325 | 325 | $currency = get_woocommerce_currency(); |
326 | 326 | $items = array( |
327 | 327 | // Subtotal excluding tax, because taxes is a separate item, below. |
328 | 328 | array( |
329 | - 'label' => __( 'Subtotal', 'woocommerce-gateway-stripe' ), |
|
329 | + 'label' => __('Subtotal', 'woocommerce-gateway-stripe'), |
|
330 | 330 | 'amount' => array( |
331 | - 'value' => max( 0, round( WC()->cart->subtotal_ex_tax, WC()->cart->dp ) ), |
|
331 | + 'value' => max(0, round(WC()->cart->subtotal_ex_tax, WC()->cart->dp)), |
|
332 | 332 | 'currency' => $currency, |
333 | 333 | ), |
334 | 334 | ), |
335 | 335 | ); |
336 | 336 | // If a chosen shipping option was provided, add line item(s) for it and include the shipping tax. |
337 | - $tax_total = max( 0, round( WC()->cart->tax_total, WC()->cart->dp ) ); |
|
338 | - if ( $shipping_method_id ) { |
|
339 | - $tax_total = max( 0, round( WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp ) ); |
|
337 | + $tax_total = max(0, round(WC()->cart->tax_total, WC()->cart->dp)); |
|
338 | + if ($shipping_method_id) { |
|
339 | + $tax_total = max(0, round(WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp)); |
|
340 | 340 | // Look through the package rates for $shipping_method_id, and when found, add a line item. |
341 | - foreach ( WC()->shipping->get_packages() as $package_key => $package ) { |
|
342 | - foreach ( $package['rates'] as $key => $rate ) { |
|
343 | - if ( $rate->id == $shipping_method_id ) { |
|
341 | + foreach (WC()->shipping->get_packages() as $package_key => $package) { |
|
342 | + foreach ($package['rates'] as $key => $rate) { |
|
343 | + if ($rate->id == $shipping_method_id) { |
|
344 | 344 | $items[] = array( |
345 | 345 | 'label' => $rate->label, |
346 | 346 | 'amount' => array( |
@@ -354,7 +354,7 @@ discard block |
||
354 | 354 | } |
355 | 355 | } |
356 | 356 | // Include fees and taxes as display items. |
357 | - foreach ( WC()->cart->fees as $key => $fee ) { |
|
357 | + foreach (WC()->cart->fees as $key => $fee) { |
|
358 | 358 | $items[] = array( |
359 | 359 | 'label' => $fee->name, |
360 | 360 | 'amount' => array( |
@@ -364,9 +364,9 @@ discard block |
||
364 | 364 | ); |
365 | 365 | } |
366 | 366 | // The tax total may include the shipping taxes if a shipping option is provided. |
367 | - if ( 0 < $tax_total ) { |
|
367 | + if (0 < $tax_total) { |
|
368 | 368 | $items[] = array( |
369 | - 'label' => __( 'Tax', 'woocommerce-gateway-stripe' ), |
|
369 | + 'label' => __('Tax', 'woocommerce-gateway-stripe'), |
|
370 | 370 | 'amount' => array( |
371 | 371 | 'currency' => $currency, |
372 | 372 | 'value' => $tax_total, |