gpt4 book ai didi

wordpress - 如何在 WooCommerce 中获得可用的税率

转载 作者:行者123 更新时间:2023-12-04 08:06:26 26 4
gpt4 key购买 nike

基于 Using WC_Tax::get_tax_classes() to get all WooCommerce tax-classes回答我之前的问题,我试图从 WooCommerce 中定义的税种中获取可用税率。
我尝试了以下代码:

$tax_classes = wc_get_product_tax_class_options();

foreach ( $tax_classes as $tax_class ) {
$taxes = WC_Tax::get_rates( $tax_class );
var_dump($taxes);
}
var_dump 导出是空的,但看起来它与可用类交互。
/home/public_html/...etc
array (size=0)
empty
/home/public_html/...etc
array (size=0)
empty
/home/public_html/...etc
array (size=0)
empty
/home/public_html/...etc
array (size=0)
empty
/home/public_html/...etc
array (size=0)
empty
我如何获得一个包含可用税务详细信息的数组(在后端管理面板中):名称、tax_rate 等?

最佳答案

每个税种税率在后端由位置设置定义……因此它们取决于客户位置。税率可以不同地应用于产品和运输。
对于每个税种,您需要根据允许的购买地点或区域(参见下面的示例)按国家或地区设置税率。
enter image description here
使用以下内容显示客户的可用税率(基于其位置):

$location = array(
'country' => WC()->customer->get_shipping_country() ? WC()->customer->get_shipping_country() : WC()->customer->get_billing_country(),
'state' => WC()->customer->get_shipping_state() ? WC()->customer->get_shipping_state() : WC()->customer->get_billing_state(),
'city' => WC()->customer->get_shipping_city() ? WC()->customer->get_shipping_city() : WC()->customer->get_billing_city(),
'postcode' => WC()->customer->get_shipping_postcode() ? WC()->customer->get_shipping_postcode() : WC()->customer->get_billing_postcode(),
);

$output = array(); // Initialiizing (for display)

// Loop through tax classes
foreach ( wc_get_product_tax_class_options() as $tax_class => $tax_class_label ) {

// Get the tax data from customer location and product tax class
$tax_rates = WC_Tax::find_rates( array_merge( $location, array( 'tax_class' => $tax_class ) ) );

// Finally we get the tax rate (percentage number) and display it:
if( ! empty($tax_rates) ) {
$rate_id = array_keys($tax_rates);
$rate_data = reset($tax_rates);

$rate_id = reset($rate_id); // Get the tax rate Id
$rate = $rate_data['rate']; // Get the tax rate
$rate_label = $rate_data['label']; // Get the tax label
$is_compound = $rate_data['compound']; // Is tax rate compound
$for_shipping = $rate_data['shipping']; // Is tax rate used for shipping

// set for display
$output[] = '<li class="tax-rate '.$tax_class.'">'.$tax_class_label.': <strong>'.$rate.'</strong> <small>(label: '.$rate_label.' | id: ' . $rate_id . ')</small></li>';
}
}

// Display
if ( ! empty($output) ) {
echo '<div><h4>' . __("Available Tax rates") . '</h4><ul>' . implode('', $output) . '</ul></div>';
}
你会得到类似的东西:
enter image description here
相关: Using WC_Tax::get_tax_classes() to get all WooCommerce tax-classes

指定位置的用法
由于您似乎希望按照评论中的要求在后端使用它,因此您需要指定一个位置才能获得该特定位置的税率。
因此,例如要获得为法国国家(“FR”国家代码)设置的税率,您将替换 $location阵列通过:
$location = array( 'country' => 'FR', 'state' => '', 'city' => '', 'postcode' => '' );
如果没有指定国家/地区,您将使用具有空值的数组,例如:
$location = array( 'country' => '', 'state' => '', 'city' => '', 'postcode' => '' );

关于wordpress - 如何在 WooCommerce 中获得可用的税率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66197414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com