配置特殊税收场景的代码示例
场景 A:无论位置和税收,都收取相同的价格
如果商店在输入产品价格时已经包含了税费,但同时应用了各种基于位置的税率,那么价格可能会因为不同的税率而显示不同。实际上,基础价格保持不变,税费影响的是总价。 请点击此链接以获取详细说明。
一些商家希望动态调整产品的基础价格,以弥补税费的变化,从而保持总价的一致性,无论税率如何。可以通过将以下代码片段添加到子主题的 functions.php 文件或通过代码片段插件来启用此功能。
<?php
add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false' );
场景 B:根据小计金额收取税费
以下代码片段适用于商店仅在小计达到指定最小值时才收取税费的情况。在下面的代码片段中,该最小值是商店货币的 110。请根据您的需求调整代码片段。
<?php
add_filter( 'woocommerce_product_get_tax_class', 'big_apple_get_tax_class', 1, 2 );
function big_apple_get_tax_class( $tax_class, $product ) {
if ( WC()->cart->subtotal <= 110 )
$tax_class = 'Zero Rate';
return $tax_class;
}
场景 C:根据用户角色应用不同的税率
某些商家可能需要根据用户角色应用不同的税率,以适应批发状态或税收免除的情况。
要启用此功能,请将以下代码片段添加到子主题的 functions.php 文件或通过代码片段插件。在此代码片段中,具有 "administrator" 权限的用户将被分配 零税率税类。请根据您的需求进行调整。
<?php
/**
* 根据用户角色应用不同的税率。
*/
function wc_diff_rate_for_user( $tax_class, $product ) {
if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
场景 D:显示 0 值税费
默认情况下,具有 0 值的税费会被隐藏。要始终显示它们,请将以下代码片段添加到主题的 functions.php 文件或通过代码片段插件:
add_filter( 'woocommerce_order_hide_zero_taxes', '__return_false' );
场景 E:在主可变产品上使用后缀
WooCommerce 的一个税务设置允许使用后缀,以便为产品价格添加其他信息。 它可以用于可变产品的变体,但默认情况下在主变体级别禁用,因为当存在大量变体时,这可能会影响网站性能。
负责相关价格输出的方法,如果需要,可以通过过滤器钩子进行自定义,尤其是在处理可变产品时。 这需要进行自定义,可以通过以下过滤器来实现:
add_filter( 'woocommerce_show_variation_price', '__return_true' );