如何解决根据 WooCommerce 订单中的用户角色显示自定义税收总行
我正在 WooCommerce 中建立一个网上商店,我需要在订单电子邮件中显示正确的税费。我有 2 个不同的用户角色:“私人”和“企业”
以下代码进行税费计算并将其添加到新行中。但是,对于“业务”用户角色,我需要输出为 0DKK(因为他们支付的价格不含税):
// Add total taxes as a separated line before order total on orders and emails
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 ){
// Display only the gran total amount
$gran_total = (float) $order->get_total();
$total_rows['order_total']['value'] = is_wc_endpoint_url() ? $total_html : strip_tags( $total_html );
// Custom tax calculation (for 20% tax rate)
$total_tax_amount = wc_price( $gran_total - $gran_total / 1.25 );
$total_tax_amount = is_wc_endpoint_url() ? $total_tax_amount : strip_tags( $total_tax_amount );
// Create a new row for total tax
$tax_row = array( 'order_tax_total' => array(
'label' => __('Moms udgør:','woocommerce'),'value' => $total_tax_amount
) );
$total_rows['order_total']['value'] = wc_price( $gran_total );
return $total_rows + $tax_row;
}
我们将不胜感激任何帮助。
解决方法
以下内容会将“企业”用户角色的自定义总税行更改为零:
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 ){
$user = $order->get_user(); // Gets WP_User Object from order
$total = $order->get_total(); // Gets order grand total. incl. taxes
// Clean total row displayed taxes
$total_rows['order_total']['value'] = is_wc_endpoint_url() ? wc_price($total) : strip_tags(wc_price($total));
// Get total tax formatted from a defined tax rate based on user roles
$total_tax = in_array('business',$user->roles) ? wc_price(0) : wc_price($total - ($total / 1.25));
// Insert total tax row
$total_rows['order_tax_total'] = array(
'label' => __('Moms udgør:','woocommerce'),'value' => is_wc_endpoint_url() ? $total_tax : strip_tags($total_tax),);
return $total_rows;
}
它应该可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。