Completed
Push — master ( e1d1f5...7977ec )
by Roy
02:32
created
includes/class-wc-stripe-payment-request.php 1 patch
Spacing   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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,
Please login to merge, or discard this patch.