Code Duplication    Length = 26-34 lines in 2 locations

includes/class-wc-tax.php 1 location

@@ 464-497 (lines=34) @@
461
					'tax_class' => $tax_class
462
				) );
463
464
			} else {
465
466
				// This will be per order shipping - loop through the order and find the highest tax class rate
467
				$cart_tax_classes = WC()->cart->get_cart_item_tax_classes();
468
469
				// If multiple classes are found, use the first one. Don't bother with standard rate, we can get that later.
470
				if ( sizeof( $cart_tax_classes ) > 1 && ! in_array( '', $cart_tax_classes ) ) {
471
					$tax_classes = self::get_tax_classes();
472
473
					foreach ( $tax_classes as $tax_class ) {
474
						$tax_class = sanitize_title( $tax_class );
475
						if ( in_array( $tax_class, $cart_tax_classes ) ) {
476
							$matched_tax_rates = self::find_shipping_rates( array(
477
								'country' 	=> $country,
478
								'state' 	=> $state,
479
								'postcode' 	=> $postcode,
480
								'city' 		=> $city,
481
								'tax_class' => $tax_class
482
							) );
483
							break;
484
						}
485
					}
486
487
				// If a single tax class is found, use it
488
				} elseif ( sizeof( $cart_tax_classes ) == 1 ) {
489
					$matched_tax_rates = self::find_shipping_rates( array(
490
						'country' 	=> $country,
491
						'state' 	=> $state,
492
						'postcode' 	=> $postcode,
493
						'city' 		=> $city,
494
						'tax_class' => $cart_tax_classes[0]
495
					) );
496
				}
497
			}
498
499
			// Get standard rate if no taxes were found
500
			if ( ! sizeof( $matched_tax_rates ) ) {

includes/class-wc-ajax.php 1 location

@@ 1572-1597 (lines=26) @@
1569
				$order_item_tax_classes = array_unique( array_values( $order_item_tax_classes ) );
1570
1571
				// If multiple classes are found, use the first one. Don't bother with standard rate, we can get that later.
1572
				if ( sizeof( $order_item_tax_classes ) > 1 && ! in_array( '', $order_item_tax_classes ) ) {
1573
					$tax_classes = WC_Tax::get_tax_classes();
1574
1575
					foreach ( $tax_classes as $tax_class ) {
1576
						$tax_class = sanitize_title( $tax_class );
1577
						if ( in_array( $tax_class, $order_item_tax_classes ) ) {
1578
							$matched_tax_rates = WC_Tax::find_shipping_rates( array(
1579
								'country' 	=> $country,
1580
								'state' 	=> $state,
1581
								'postcode' 	=> $postcode,
1582
								'city' 		=> $city,
1583
								'tax_class' => $tax_class,
1584
							) );
1585
							break;
1586
						}
1587
					}
1588
				// If a single tax class is found, use it
1589
				} elseif ( sizeof( $order_item_tax_classes ) === 1 ) {
1590
					$matched_tax_rates = WC_Tax::find_shipping_rates( array(
1591
						'country' 	=> $country,
1592
						'state' 	=> $state,
1593
						'postcode' 	=> $postcode,
1594
						'city' 		=> $city,
1595
						'tax_class' => $order_item_tax_classes[0]
1596
					) );
1597
				}
1598
1599
				// Get standard rate if no taxes were found
1600
				if ( ! sizeof( $matched_tax_rates ) ) {