How do I define the VAT tax calculations based on both Vendor & Client locations?

add_action( 'woocommerce_order_item_after_calculate_taxes', function( $item, $calculate_tax_for ) {
$line_item = new WC_Order_Item_Product( $item );
$product_id = $line_item->get_product_id();
if( $product_id ) {
$vendor_id = wcfm_get_vendor_id_by_post( $product_id );
if( $vendor_id ) {
$vendor_data = get_user_meta( $vendor_id, 'wcfmmp_profile_settings', true );
$calculate_tax_for['city'] = isset( $vendor_data['address']['city'] ) ? $vendor_data['address']['city'] : '';
$calculate_tax_for['postcode'] = isset( $vendor_data['address']['zip'] ) ? $vendor_data['address']['zip'] : '';
$calculate_tax_for['country'] = isset( $vendor_data['address']['country'] ) ? $vendor_data['address']['country'] : '';
$calculate_tax_for['state'] = isset( $vendor_data['address']['state'] ) ? $vendor_data['address']['state'] : '';
} else {
return;
}
} else {
return;
}
if ( ! isset( $calculate_tax_for['country'], $calculate_tax_for['state'], $calculate_tax_for['postcode'], $calculate_tax_for['city'] ) ) {
return false;
}
if ( '0' !== $item->get_tax_class() && 'taxable' === $item->get_tax_status() && wc_tax_enabled() ) {
$calculate_tax_for['tax_class'] = $item->get_tax_class();
$tax_rates = WC_Tax::find_rates( $calculate_tax_for );
$taxes = WC_Tax::calc_tax( $item->get_total(), $tax_rates, false );
if ( method_exists( $item, 'get_subtotal' ) ) {
$subtotal_taxes = WC_Tax::calc_tax( $item->get_subtotal(), $tax_rates, false );
$item->set_taxes(
array(
'total' => $taxes,
'subtotal' => $subtotal_taxes,
)
);
} else {
$item->set_taxes( array( 'total' => $taxes ) );
}
} else {
$item->set_taxes( false );
}
}, 20, 2 );

Add this code to your child theme’s functions.php

In case you do not have child theme then add code using this plugin – https://wordpress.org/plugins/code-snippets/