在 WooCommerce 中当公司来自欧盟时添加 "VAT REVERSE CHARGE"
Add "VAT REVERSE CHARGE" when company is from EU in WooCommerce
我有一个使用 WooCommerce 订阅的 Wordpress 和 WooCommerce 的 B2B 网上商店。
由于我销售的是数字商品,因此我需要在我的欧盟公司订单中添加特殊的增值税规则。
我的商店位于荷兰。
我正在使用这个插件来验证增值税号:https://woocommerce.com/products/eu-vat-number/
我自己国家的公司和欧盟以外的公司一切顺利。
但是当公司位于欧盟内部时,插件会从订单中删除所有增值税行。我已联系 WooCommerce,但他们不提供定制支持。
会计师要求在欧盟的订单中有一条税号:VAT REVERSE CHARGE。
我的问题:
我想编写一个自定义操作,仅在结账时为欧盟国家/地区的订单添加增值税行。有人可以帮助我开始吗?
您可以使用这个简单的代码片段来完成这项工作,在订单总计部分的税收行中显示文本 “Vat reverse charge”(适用于荷兰除外的欧洲国家/地区) :
add_filter( 'woocommerce_get_order_item_totals', 'insert_custom_line_order_item_totals', 10, 3 );
function insert_custom_line_order_item_totals( $total_rows, $order, $tax_display ){
$eu_countries = WC()->countries->get_european_union_countries( 'eu_vat' ); // Get EU VAT Countries
unset($eu_countries['NL']); // Remove Netherlands
if ( in_array( $order->get_billing_country(), $eu_countries ) ) {
$order_total = $total_rows['order_total']; // Store order total row in a variable
unset($total_rows['order_total']); // Remove order total row
// Tax row
$total_rows['tax'] = array(
'label' => WC()->countries->tax_or_vat() . ':',
'value' => strtoupper( sprintf( __('%s reverse charge', 'woocommerce'), WC()->countries->tax_or_vat() ) ),
);
$total_rows['order_total'] = $order_total; // Reinsert order total row
}
return $total_rows;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我有一个使用 WooCommerce 订阅的 Wordpress 和 WooCommerce 的 B2B 网上商店。
由于我销售的是数字商品,因此我需要在我的欧盟公司订单中添加特殊的增值税规则。
我的商店位于荷兰。
我正在使用这个插件来验证增值税号:https://woocommerce.com/products/eu-vat-number/
我自己国家的公司和欧盟以外的公司一切顺利。
但是当公司位于欧盟内部时,插件会从订单中删除所有增值税行。我已联系 WooCommerce,但他们不提供定制支持。
会计师要求在欧盟的订单中有一条税号:VAT REVERSE CHARGE。
我的问题: 我想编写一个自定义操作,仅在结账时为欧盟国家/地区的订单添加增值税行。有人可以帮助我开始吗?
您可以使用这个简单的代码片段来完成这项工作,在订单总计部分的税收行中显示文本 “Vat reverse charge”(适用于荷兰除外的欧洲国家/地区) :
add_filter( 'woocommerce_get_order_item_totals', 'insert_custom_line_order_item_totals', 10, 3 );
function insert_custom_line_order_item_totals( $total_rows, $order, $tax_display ){
$eu_countries = WC()->countries->get_european_union_countries( 'eu_vat' ); // Get EU VAT Countries
unset($eu_countries['NL']); // Remove Netherlands
if ( in_array( $order->get_billing_country(), $eu_countries ) ) {
$order_total = $total_rows['order_total']; // Store order total row in a variable
unset($total_rows['order_total']); // Remove order total row
// Tax row
$total_rows['tax'] = array(
'label' => WC()->countries->tax_or_vat() . ':',
'value' => strtoupper( sprintf( __('%s reverse charge', 'woocommerce'), WC()->countries->tax_or_vat() ) ),
);
$total_rows['order_total'] = $order_total; // Reinsert order total row
}
return $total_rows;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。