这是一个配置问题:
这样,税款将显示在购物车页面上:
但因为地址可以在结账时更改,所以这不是也不可能是决定性的-就像上面所说的那样,税是估计的,会在结账时更新。
<小时>
Update:
上周,我快速查看了woocommerce代码,但没有时间完成我的回答。我发现有一个过滤器-
woocommerce_matched_rates
- 你可以加入。过滤器是
get_rates()
内部功能
class-wc-tax.php
. 下面是一些代码示例:
add_filter( \'woocommerce_matched_rates\',
\'wpse115734_wc_customer_based_tax_on_cart\' );
function wpse115734_wc_customer_based_tax_on_cart( $matched_tax_rates = \'\', $tax_class = \'\' ) {
global $woocommerce,$product;
$tax_class = sanitize_title( $tax_class );
$_taxobj = new WC_Tax();
list( $country, $state, $postcode, $city ) = $woocommerce->customer->get_taxable_address();
$shop_country = $woocommerce->countries->get_base_country();
if ( ! ( $country == $shop_country ) ) {
$matched_tax_rates = $_taxobj->find_rates( array(
\'country\' => $country,
\'state\' => $state,
\'postcode\' => $postcode,
\'city\' => $city,
\'tax_class\' => $tax_class
) );
return $matched_tax_rates;
} else {
$matched_tax_rates = $_taxobj->get_shop_base_rate( $tax_class );
return $matched_tax_rates;
}
}
正如您所看到的,这将挂钩到过滤器中,并根据店铺基础和客户国家/地区进行一些条件检查。这对我来说很有用,如果客户地址与商店所在国不同,则根据客户地址显示税款。
But 就像我说的,这是开始,因为我没有做进一步的测试,这仅仅是可能性的证明。