This is very easy to do if you add the fields correctly (using the woocommerce_checkout_fields filter). The only thing you need to do is add the address-field and update_totals_on_change as follows:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { $fields['shipping']['custom_field'] = array( 'label' => 'Custom field', 'required' => 1, 'class' => array ('address-field', 'update_totals_on_change' ) ); return $fields; }
source share