Completed
Push — master ( 916e3a...36d6c7 )
by Roy
02:24
created
includes/class-wc-stripe-payment-request.php 1 patch
Spacing   +86 added lines, -86 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.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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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,
Please login to merge, or discard this patch.