Completed
Push — master ( 352120...2afc1b )
by Roy
02:29
created
includes/class-wc-stripe-payment-request.php 1 patch
Spacing   +84 added lines, -84 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,19 +150,19 @@  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
-		WC()->customer->calculated_shipping( true );
165
+		WC()->customer->calculated_shipping(true);
166 166
 
167 167
 		$packages = array();
168 168
 
@@ -177,17 +177,17 @@  discard block
 block discarded – undo
177 177
 		$packages[0]['destination']['address']   = $address_1;
178 178
 		$packages[0]['destination']['address_2'] = $address_2;
179 179
 
180
-		foreach ( WC()->cart->get_cart() as $item ) {
181
-			if ( $item['data']->needs_shipping() ) {
182
-				if ( isset( $item['line_total'] ) ) {
180
+		foreach (WC()->cart->get_cart() as $item) {
181
+			if ($item['data']->needs_shipping()) {
182
+				if (isset($item['line_total'])) {
183 183
 					$packages[0]['contents_cost'] += $item['line_total'];
184 184
 				}
185 185
 			}
186 186
 		}
187 187
 
188
-		$packages = apply_filters( 'woocommerce_cart_shipping_packages', $packages );
188
+		$packages = apply_filters('woocommerce_cart_shipping_packages', $packages);
189 189
 
190
-		WC()->shipping->calculate_shipping( $packages );
190
+		WC()->shipping->calculate_shipping($packages);
191 191
 	}
192 192
 
193 193
 	/**
@@ -198,19 +198,19 @@  discard block
 block discarded – undo
198 198
 	 * @see WC_Shipping::get_packages().
199 199
 	 */
200 200
 	public function ajax_get_shipping_options() {
201
-		check_ajax_referer( 'wc-stripe-payment-request-shipping', 'security' );
201
+		check_ajax_referer('wc-stripe-payment-request-shipping', 'security');
202 202
 
203 203
 		// Set the shipping package.
204
-		$posted   = filter_input_array( INPUT_POST, array(
204
+		$posted = filter_input_array(INPUT_POST, array(
205 205
 			'country'   => FILTER_SANITIZE_STRING,
206 206
 			'state'     => FILTER_SANITIZE_STRING,
207 207
 			'postcode'  => FILTER_SANITIZE_STRING,
208 208
 			'city'      => FILTER_SANITIZE_STRING,
209 209
 			'address'   => FILTER_SANITIZE_STRING,
210 210
 			'address_2' => FILTER_SANITIZE_STRING,
211
-		) );
211
+		));
212 212
 
213
-		$this->calculate_shipping( $posted );
213
+		$this->calculate_shipping($posted);
214 214
 
215 215
 		// Set the shipping options.
216 216
 		$currency = get_woocommerce_currency();
@@ -218,13 +218,13 @@  discard block
 block discarded – undo
218 218
 
219 219
 		$packages = WC()->shipping->get_packages();
220 220
 
221
-		if ( ! empty( $packages ) && WC()->customer->has_calculated_shipping() ) {
222
-			foreach ( $packages as $package_key => $package ) {
223
-				if ( empty( $package['rates'] ) ) {
221
+		if ( ! empty($packages) && WC()->customer->has_calculated_shipping()) {
222
+			foreach ($packages as $package_key => $package) {
223
+				if (empty($package['rates'])) {
224 224
 					break;
225 225
 				}
226 226
 
227
-				foreach ( $package['rates'] as $key => $rate ) {
227
+				foreach ($package['rates'] as $key => $rate) {
228 228
 					$data[] = array(
229 229
 						'id'       => $rate->id,
230 230
 						'label'    => $rate->label,
@@ -239,60 +239,60 @@  discard block
 block discarded – undo
239 239
 		}
240 240
 
241 241
 		// Auto select when have only one shipping method available.
242
-		if ( 1 === count( $data ) ) {
242
+		if (1 === count($data)) {
243 243
 			$data[0]['selected'] = true;
244 244
 		}
245 245
 
246
-		wp_send_json( $data );
246
+		wp_send_json($data);
247 247
 	}
248 248
 
249 249
 	/**
250 250
 	 * Update shipping method.
251 251
 	 */
252 252
 	public function ajax_update_shipping_method() {
253
-		check_ajax_referer( 'wc-stripe-update-shipping-method', 'security' );
253
+		check_ajax_referer('wc-stripe-update-shipping-method', 'security');
254 254
 
255
-		if ( ! defined( 'WOOCOMMERCE_CART' ) ) {
256
-			define( 'WOOCOMMERCE_CART', true );
255
+		if ( ! defined('WOOCOMMERCE_CART')) {
256
+			define('WOOCOMMERCE_CART', true);
257 257
 		}
258 258
 
259
-		$chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' );
260
-		$shipping_method         = filter_input( INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
259
+		$chosen_shipping_methods = WC()->session->get('chosen_shipping_methods');
260
+		$shipping_method         = filter_input(INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
261 261
 
262
-		if ( is_array( $shipping_method ) ) {
263
-			foreach ( $shipping_method as $i => $value ) {
264
-				$chosen_shipping_methods[ $i ] = wc_clean( $value );
262
+		if (is_array($shipping_method)) {
263
+			foreach ($shipping_method as $i => $value) {
264
+				$chosen_shipping_methods[$i] = wc_clean($value);
265 265
 			}
266 266
 		}
267 267
 
268
-		WC()->session->set( 'chosen_shipping_methods', $chosen_shipping_methods );
268
+		WC()->session->set('chosen_shipping_methods', $chosen_shipping_methods);
269 269
 
270 270
 		WC()->cart->calculate_totals();
271 271
 
272 272
 		// Send back the new cart total and line items to be displayed, such as subtotal, shipping rate(s), fees and taxes.
273
-		$data      = array(
273
+		$data = array(
274 274
 			'total' => WC()->cart->total,
275
-			'items' => $this->compute_display_items( $shipping_method[0] ),
275
+			'items' => $this->compute_display_items($shipping_method[0]),
276 276
 		);
277 277
 
278
-		wp_send_json( $data );
278
+		wp_send_json($data);
279 279
 	}
280 280
 
281 281
 	/**
282 282
 	 * Create order.
283 283
 	 */
284 284
 	public function ajax_create_order() {
285
-		if ( WC()->cart->is_empty() ) {
286
-			wp_send_json_error( __( 'Empty cart', 'woocommerce-gateway-stripe' ) );
285
+		if (WC()->cart->is_empty()) {
286
+			wp_send_json_error(__('Empty cart', 'woocommerce-gateway-stripe'));
287 287
 		}
288 288
 
289
-		if ( ! defined( 'WOOCOMMERCE_CHECKOUT' ) ) {
290
-			define( 'WOOCOMMERCE_CHECKOUT', true );
289
+		if ( ! defined('WOOCOMMERCE_CHECKOUT')) {
290
+			define('WOOCOMMERCE_CHECKOUT', true);
291 291
 		}
292 292
 
293 293
 		WC()->checkout()->process_checkout();
294 294
 
295
-		die( 0 );
295
+		die(0);
296 296
 	}
297 297
 
298 298
 	/**
@@ -300,26 +300,26 @@  discard block
 block discarded – undo
300 300
 	 *
301 301
 	 * @param string shipping_method_id If shipping method ID is provided, will include display items about shipping.
302 302
 	 */
303
-	protected function compute_display_items( $shipping_method_id ) {
303
+	protected function compute_display_items($shipping_method_id) {
304 304
 		$currency = get_woocommerce_currency();
305 305
 		$items = array(
306 306
 			// Subtotal excluding tax, because taxes is a separate item, below.
307 307
 			array(
308
-				'label' => __( 'Subtotal', 'woocommerce-gateway-stripe' ),
308
+				'label' => __('Subtotal', 'woocommerce-gateway-stripe'),
309 309
 				'amount' => array(
310
-					'value'    => max( 0, round( WC()->cart->subtotal_ex_tax, WC()->cart->dp ) ),
310
+					'value'    => max(0, round(WC()->cart->subtotal_ex_tax, WC()->cart->dp)),
311 311
 					'currency' => $currency,
312 312
 				),
313 313
 			),
314 314
 		);
315 315
 		// If a chosen shipping option was provided, add line item(s) for it and include the shipping tax.
316
-		$tax_total = max( 0, round( WC()->cart->tax_total, WC()->cart->dp ) );
317
-		if ( $shipping_method_id ) {
318
-			$tax_total = max( 0, round( WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp ) );
316
+		$tax_total = max(0, round(WC()->cart->tax_total, WC()->cart->dp));
317
+		if ($shipping_method_id) {
318
+			$tax_total = max(0, round(WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp));
319 319
 			// Look through the package rates for $shipping_method_id, and when found, add a line item.
320
-			foreach ( WC()->shipping->get_packages() as $package_key => $package ) {
321
-				foreach ( $package['rates'] as $key => $rate ) {
322
-					if ( $rate->id  == $shipping_method_id ) {
320
+			foreach (WC()->shipping->get_packages() as $package_key => $package) {
321
+				foreach ($package['rates'] as $key => $rate) {
322
+					if ($rate->id == $shipping_method_id) {
323 323
 						$items[] = array(
324 324
 							'label' => $rate->label,
325 325
 							'amount' => array(
@@ -333,7 +333,7 @@  discard block
 block discarded – undo
333 333
 			}
334 334
 		}
335 335
 		// Include fees and taxes as display items.
336
-		foreach ( WC()->cart->fees as $key => $fee ) {
336
+		foreach (WC()->cart->fees as $key => $fee) {
337 337
 			$items[] = array(
338 338
 				'label'  => $fee->name,
339 339
 				'amount' => array(
@@ -343,9 +343,9 @@  discard block
 block discarded – undo
343 343
 			);
344 344
 		}
345 345
 		// The tax total may include the shipping taxes if a shipping option is provided.
346
-		if ( 0 < $tax_total ) {
346
+		if (0 < $tax_total) {
347 347
 			$items[] = array(
348
-				'label'  => __( 'Tax', 'woocommerce-gateway-stripe' ),
348
+				'label'  => __('Tax', 'woocommerce-gateway-stripe'),
349 349
 				'amount' => array(
350 350
 					'currency' => $currency,
351 351
 					'value'    => $tax_total,
Please login to merge, or discard this patch.