@@ -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.1.0 |
141 | 141 | * @param array $address |
142 | 142 | */ |
143 | - public function calculate_shipping( $address = array() ) { |
|
143 | + public function calculate_shipping($address = array()) { |
|
144 | 144 | $country = $address['country']; |
145 | 145 | $state = $address['state']; |
146 | 146 | $postcode = $address['postcode']; |
@@ -150,22 +150,22 @@ discard block |
||
150 | 150 | |
151 | 151 | WC()->shipping->reset_shipping(); |
152 | 152 | |
153 | - if ( $postcode && WC_Validation::is_postcode( $postcode, $country ) ) { |
|
154 | - $postcode = wc_format_postcode( $postcode, $country ); |
|
153 | + if ($postcode && WC_Validation::is_postcode($postcode, $country)) { |
|
154 | + $postcode = wc_format_postcode($postcode, $country); |
|
155 | 155 | } |
156 | 156 | |
157 | - if ( $country ) { |
|
158 | - WC()->customer->set_location( $country, $state, $postcode, $city ); |
|
159 | - WC()->customer->set_shipping_location( $country, $state, $postcode, $city ); |
|
157 | + if ($country) { |
|
158 | + WC()->customer->set_location($country, $state, $postcode, $city); |
|
159 | + WC()->customer->set_shipping_location($country, $state, $postcode, $city); |
|
160 | 160 | } else { |
161 | 161 | WC()->customer->set_to_base(); |
162 | 162 | WC()->customer->set_shipping_to_base(); |
163 | 163 | } |
164 | 164 | |
165 | - if ( version_compare( WC_VERSION, '3.0', '<' ) ) { |
|
166 | - WC()->customer->calculated_shipping( true ); |
|
165 | + if (version_compare(WC_VERSION, '3.0', '<')) { |
|
166 | + WC()->customer->calculated_shipping(true); |
|
167 | 167 | } else { |
168 | - WC()->customer->set_calculated_shipping( true ); |
|
168 | + WC()->customer->set_calculated_shipping(true); |
|
169 | 169 | WC()->customer->save(); |
170 | 170 | } |
171 | 171 | |
@@ -182,17 +182,17 @@ discard block |
||
182 | 182 | $packages[0]['destination']['address'] = $address_1; |
183 | 183 | $packages[0]['destination']['address_2'] = $address_2; |
184 | 184 | |
185 | - foreach ( WC()->cart->get_cart() as $item ) { |
|
186 | - if ( $item['data']->needs_shipping() ) { |
|
187 | - if ( isset( $item['line_total'] ) ) { |
|
185 | + foreach (WC()->cart->get_cart() as $item) { |
|
186 | + if ($item['data']->needs_shipping()) { |
|
187 | + if (isset($item['line_total'])) { |
|
188 | 188 | $packages[0]['contents_cost'] += $item['line_total']; |
189 | 189 | } |
190 | 190 | } |
191 | 191 | } |
192 | 192 | |
193 | - $packages = apply_filters( 'woocommerce_cart_shipping_packages', $packages ); |
|
193 | + $packages = apply_filters('woocommerce_cart_shipping_packages', $packages); |
|
194 | 194 | |
195 | - WC()->shipping->calculate_shipping( $packages ); |
|
195 | + WC()->shipping->calculate_shipping($packages); |
|
196 | 196 | } |
197 | 197 | |
198 | 198 | /** |
@@ -203,19 +203,19 @@ discard block |
||
203 | 203 | * @see WC_Shipping::get_packages(). |
204 | 204 | */ |
205 | 205 | public function ajax_get_shipping_options() { |
206 | - check_ajax_referer( 'wc-stripe-payment-request-shipping', 'security' ); |
|
206 | + check_ajax_referer('wc-stripe-payment-request-shipping', 'security'); |
|
207 | 207 | |
208 | 208 | // Set the shipping package. |
209 | - $posted = filter_input_array( INPUT_POST, array( |
|
209 | + $posted = filter_input_array(INPUT_POST, array( |
|
210 | 210 | 'country' => FILTER_SANITIZE_STRING, |
211 | 211 | 'state' => FILTER_SANITIZE_STRING, |
212 | 212 | 'postcode' => FILTER_SANITIZE_STRING, |
213 | 213 | 'city' => FILTER_SANITIZE_STRING, |
214 | 214 | 'address' => FILTER_SANITIZE_STRING, |
215 | 215 | 'address_2' => FILTER_SANITIZE_STRING, |
216 | - ) ); |
|
216 | + )); |
|
217 | 217 | |
218 | - $this->calculate_shipping( $posted ); |
|
218 | + $this->calculate_shipping($posted); |
|
219 | 219 | |
220 | 220 | // Set the shipping options. |
221 | 221 | $currency = get_woocommerce_currency(); |
@@ -223,13 +223,13 @@ discard block |
||
223 | 223 | |
224 | 224 | $packages = WC()->shipping->get_packages(); |
225 | 225 | |
226 | - if ( ! empty( $packages ) && WC()->customer->has_calculated_shipping() ) { |
|
227 | - foreach ( $packages as $package_key => $package ) { |
|
228 | - if ( empty( $package['rates'] ) ) { |
|
226 | + if ( ! empty($packages) && WC()->customer->has_calculated_shipping()) { |
|
227 | + foreach ($packages as $package_key => $package) { |
|
228 | + if (empty($package['rates'])) { |
|
229 | 229 | break; |
230 | 230 | } |
231 | 231 | |
232 | - foreach ( $package['rates'] as $key => $rate ) { |
|
232 | + foreach ($package['rates'] as $key => $rate) { |
|
233 | 233 | $data[] = array( |
234 | 234 | 'id' => $rate->id, |
235 | 235 | 'label' => $rate->label, |
@@ -244,62 +244,62 @@ discard block |
||
244 | 244 | } |
245 | 245 | |
246 | 246 | // Auto select when have only one shipping method available. |
247 | - if ( 1 === count( $data ) ) { |
|
247 | + if (1 === count($data)) { |
|
248 | 248 | $data[0]['selected'] = true; |
249 | 249 | } |
250 | 250 | |
251 | - wp_send_json( $data ); |
|
251 | + wp_send_json($data); |
|
252 | 252 | } |
253 | 253 | |
254 | 254 | /** |
255 | 255 | * Update shipping method. |
256 | 256 | */ |
257 | 257 | public function ajax_update_shipping_method() { |
258 | - check_ajax_referer( 'wc-stripe-update-shipping-method', 'security' ); |
|
258 | + check_ajax_referer('wc-stripe-update-shipping-method', 'security'); |
|
259 | 259 | |
260 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
261 | - define( 'WOOCOMMERCE_CART', true ); |
|
260 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
261 | + define('WOOCOMMERCE_CART', true); |
|
262 | 262 | } |
263 | 263 | |
264 | - $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); |
|
265 | - $shipping_method = filter_input( INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); |
|
264 | + $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); |
|
265 | + $shipping_method = filter_input(INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
|
266 | 266 | |
267 | - if ( is_array( $shipping_method ) ) { |
|
268 | - foreach ( $shipping_method as $i => $value ) { |
|
269 | - $chosen_shipping_methods[ $i ] = wc_clean( $value ); |
|
267 | + if (is_array($shipping_method)) { |
|
268 | + foreach ($shipping_method as $i => $value) { |
|
269 | + $chosen_shipping_methods[$i] = wc_clean($value); |
|
270 | 270 | } |
271 | 271 | } |
272 | 272 | |
273 | - WC()->session->set( 'chosen_shipping_methods', $chosen_shipping_methods ); |
|
273 | + WC()->session->set('chosen_shipping_methods', $chosen_shipping_methods); |
|
274 | 274 | |
275 | 275 | WC()->cart->calculate_totals(); |
276 | 276 | |
277 | 277 | // Send back the new cart total and line items to be displayed, such as subtotal, shipping rate(s), fees and taxes. |
278 | - $data = array( |
|
278 | + $data = array( |
|
279 | 279 | 'total' => WC()->cart->total, |
280 | - 'items' => $this->compute_display_items( $shipping_method[0] ), |
|
280 | + 'items' => $this->compute_display_items($shipping_method[0]), |
|
281 | 281 | ); |
282 | 282 | |
283 | - wp_send_json( $data ); |
|
283 | + wp_send_json($data); |
|
284 | 284 | } |
285 | 285 | |
286 | 286 | /** |
287 | 287 | * Create order. |
288 | 288 | */ |
289 | 289 | public function ajax_create_order() { |
290 | - if ( WC()->cart->is_empty() ) { |
|
291 | - wp_send_json_error( __( 'Empty cart', 'woocommerce-gateway-stripe' ) ); |
|
290 | + if (WC()->cart->is_empty()) { |
|
291 | + wp_send_json_error(__('Empty cart', 'woocommerce-gateway-stripe')); |
|
292 | 292 | } |
293 | 293 | |
294 | - if ( ! defined( 'WOOCOMMERCE_CHECKOUT' ) ) { |
|
295 | - define( 'WOOCOMMERCE_CHECKOUT', true ); |
|
294 | + if ( ! defined('WOOCOMMERCE_CHECKOUT')) { |
|
295 | + define('WOOCOMMERCE_CHECKOUT', true); |
|
296 | 296 | } |
297 | 297 | |
298 | 298 | $_POST['terms'] = 1; |
299 | 299 | |
300 | 300 | WC()->checkout()->process_checkout(); |
301 | 301 | |
302 | - die( 0 ); |
|
302 | + die(0); |
|
303 | 303 | } |
304 | 304 | |
305 | 305 | /** |
@@ -307,26 +307,26 @@ discard block |
||
307 | 307 | * |
308 | 308 | * @param string shipping_method_id If shipping method ID is provided, will include display items about shipping. |
309 | 309 | */ |
310 | - protected function compute_display_items( $shipping_method_id ) { |
|
310 | + protected function compute_display_items($shipping_method_id) { |
|
311 | 311 | $currency = get_woocommerce_currency(); |
312 | 312 | $items = array( |
313 | 313 | // Subtotal excluding tax, because taxes is a separate item, below. |
314 | 314 | array( |
315 | - 'label' => __( 'Subtotal', 'woocommerce-gateway-stripe' ), |
|
315 | + 'label' => __('Subtotal', 'woocommerce-gateway-stripe'), |
|
316 | 316 | 'amount' => array( |
317 | - 'value' => max( 0, round( WC()->cart->subtotal_ex_tax, WC()->cart->dp ) ), |
|
317 | + 'value' => max(0, round(WC()->cart->subtotal_ex_tax, WC()->cart->dp)), |
|
318 | 318 | 'currency' => $currency, |
319 | 319 | ), |
320 | 320 | ), |
321 | 321 | ); |
322 | 322 | // If a chosen shipping option was provided, add line item(s) for it and include the shipping tax. |
323 | - $tax_total = max( 0, round( WC()->cart->tax_total, WC()->cart->dp ) ); |
|
324 | - if ( $shipping_method_id ) { |
|
325 | - $tax_total = max( 0, round( WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp ) ); |
|
323 | + $tax_total = max(0, round(WC()->cart->tax_total, WC()->cart->dp)); |
|
324 | + if ($shipping_method_id) { |
|
325 | + $tax_total = max(0, round(WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp)); |
|
326 | 326 | // Look through the package rates for $shipping_method_id, and when found, add a line item. |
327 | - foreach ( WC()->shipping->get_packages() as $package_key => $package ) { |
|
328 | - foreach ( $package['rates'] as $key => $rate ) { |
|
329 | - if ( $rate->id == $shipping_method_id ) { |
|
327 | + foreach (WC()->shipping->get_packages() as $package_key => $package) { |
|
328 | + foreach ($package['rates'] as $key => $rate) { |
|
329 | + if ($rate->id == $shipping_method_id) { |
|
330 | 330 | $items[] = array( |
331 | 331 | 'label' => $rate->label, |
332 | 332 | 'amount' => array( |
@@ -340,7 +340,7 @@ discard block |
||
340 | 340 | } |
341 | 341 | } |
342 | 342 | // Include fees and taxes as display items. |
343 | - foreach ( WC()->cart->fees as $key => $fee ) { |
|
343 | + foreach (WC()->cart->fees as $key => $fee) { |
|
344 | 344 | $items[] = array( |
345 | 345 | 'label' => $fee->name, |
346 | 346 | 'amount' => array( |
@@ -350,9 +350,9 @@ discard block |
||
350 | 350 | ); |
351 | 351 | } |
352 | 352 | // The tax total may include the shipping taxes if a shipping option is provided. |
353 | - if ( 0 < $tax_total ) { |
|
353 | + if (0 < $tax_total) { |
|
354 | 354 | $items[] = array( |
355 | - 'label' => __( 'Tax', 'woocommerce-gateway-stripe' ), |
|
355 | + 'label' => __('Tax', 'woocommerce-gateway-stripe'), |
|
356 | 356 | 'amount' => array( |
357 | 357 | 'currency' => $currency, |
358 | 358 | 'value' => $tax_total, |