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

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