Code Duplication    Length = 26-34 lines in 2 locations

includes/class-wc-tax.php 1 location

@@ 516-549 (lines=34) @@
513
					'tax_class' => $tax_class
514
				) );
515
516
			} else {
517
518
				// This will be per order shipping - loop through the order and find the highest tax class rate
519
				$cart_tax_classes = WC()->cart->get_cart_item_tax_classes();
520
521
				// If multiple classes are found, use the first one. Don't bother with standard rate, we can get that later.
522
				if ( sizeof( $cart_tax_classes ) > 1 && ! in_array( '', $cart_tax_classes ) ) {
523
					$tax_classes = self::get_tax_classes();
524
525
					foreach ( $tax_classes as $tax_class ) {
526
						$tax_class = sanitize_title( $tax_class );
527
						if ( in_array( $tax_class, $cart_tax_classes ) ) {
528
							$matched_tax_rates = self::find_shipping_rates( array(
529
								'country' 	=> $country,
530
								'state' 	=> $state,
531
								'postcode' 	=> $postcode,
532
								'city' 		=> $city,
533
								'tax_class' => $tax_class
534
							) );
535
							break;
536
						}
537
					}
538
539
				// If a single tax class is found, use it
540
				} elseif ( sizeof( $cart_tax_classes ) == 1 ) {
541
					$matched_tax_rates = self::find_shipping_rates( array(
542
						'country' 	=> $country,
543
						'state' 	=> $state,
544
						'postcode' 	=> $postcode,
545
						'city' 		=> $city,
546
						'tax_class' => $cart_tax_classes[0]
547
					) );
548
				}
549
			}
550
551
			// Get standard rate if no taxes were found
552
			if ( ! sizeof( $matched_tax_rates ) ) {

includes/class-wc-ajax.php 1 location

@@ 1525-1550 (lines=26) @@
1522
				$order_item_tax_classes = array_unique( array_values( $order_item_tax_classes ) );
1523
1524
				// If multiple classes are found, use the first one. Don't bother with standard rate, we can get that later.
1525
				if ( sizeof( $order_item_tax_classes ) > 1 && ! in_array( '', $order_item_tax_classes ) ) {
1526
					$tax_classes = WC_Tax::get_tax_classes();
1527
1528
					foreach ( $tax_classes as $tax_class ) {
1529
						$tax_class = sanitize_title( $tax_class );
1530
						if ( in_array( $tax_class, $order_item_tax_classes ) ) {
1531
							$matched_tax_rates = WC_Tax::find_shipping_rates( array(
1532
								'country' 	=> $country,
1533
								'state' 	=> $state,
1534
								'postcode' 	=> $postcode,
1535
								'city' 		=> $city,
1536
								'tax_class' => $tax_class,
1537
							) );
1538
							break;
1539
						}
1540
					}
1541
				// If a single tax class is found, use it
1542
				} elseif ( sizeof( $order_item_tax_classes ) === 1 ) {
1543
					$matched_tax_rates = WC_Tax::find_shipping_rates( array(
1544
						'country' 	=> $country,
1545
						'state' 	=> $state,
1546
						'postcode' 	=> $postcode,
1547
						'city' 		=> $city,
1548
						'tax_class' => $order_item_tax_classes[0]
1549
					) );
1550
				}
1551
1552
				// Get standard rate if no taxes were found
1553
				if ( ! sizeof( $matched_tax_rates ) ) {