我目前正在构建一个自定义表单。在此表单中,我想显示结帐时已存在的国家/地区选择。
这是我的税务设置列表:
这是我的代码:
<select class="country-select">
<?php
foreach ( WC_Tax::get_rates() as $rate ) {
echo '<option value="' . $rate->tax_rate . '">' . $rate->country . '</option>';
}
?>
</select>
我期待以下选项:
<option value="19">Deutschland</option>
<option value="20">Österreich</option>
问题是我没有得到任何结果get_rates()
功能。我发现没有任何函数可以返回正确的汇率。你知道我该如何完成这件事吗?
TL;DR
$all_tax_rates = [];
$tax_classes = WC_Tax::get_tax_classes(); // Retrieve all tax classes.
if ( !in_array( '', $tax_classes ) ) { // Make sure "Standard rate" (empty class name) is present.
array_unshift( $tax_classes, '' );
}
foreach ( $tax_classes as $tax_class ) { // For each tax class, get all rates.
$taxes = WC_Tax::get_rates_for_tax_class( $tax_class );
$all_tax_rates = array_merge( $all_tax_rates, $taxes );
}
解释:
据我所知,您只能获得给定特定税率的所有税率的列表tax_class
,用于过滤woocommerce_tax_rates
表格依据tax_rate_class
列(好吧,我们总是可以直接查询数据库,但我假设您想使用 WooCommerce 提供的功能来解决问题)。此外,“标准费率”没有tax_class
, ie. tax_rate_class
列是一个空字符串。
因此,如果您想获得每个类别的所有税率,您需要使用WC_Tax::get_rates_for_tax_class( $tax_class )
。但是,如果您确实想要所有税率(无论类别如何),则需要先获取所有税收类别,然后获取每个类别的所有税率。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)