我已经在woocommerce中应用了增值税,我想在订单完成后重新计算增值税!
这就是为什么我要这么做的情况,
我有一个后端模块,可以为特定订单提供折扣,并且可以正常运行,现在增值税税显示的是旧金额,所以我想根据折扣价重新计算。
以下是计算折扣的代码:
function wc_order_add_discount( $order_id, $title, $amount, $tax_class = '' ) {
$order = wc_get_order($order_id);
$subtotal = $order->get_subtotal();
$item = new WC_Order_Item_Fee();
if ( strpos($amount, '%') !== false ) {
$percentage = (float) str_replace( array('%', ' '), array('', ''), $amount );
$percentage = $percentage > 100 ? -100 : - $percentage;
$discount = $percentage * $subtotal / 100;
} else {
$discount = (float) str_replace( ' ', '', $amount );
$discount = $discount > $subtotal ? -$subtotal : - $discount;
}
$item->set_tax_class( $tax_class );
$item->set_name( $title );
$item->set_amount( $discount );
$item->set_total( $discount );
$item->save();
$order->add_item( $item );
$order->calculate_totals( $has_taxes );
$order->save();
}
此代码的用法:
wc_order_add_discount( 1139 , __("Fixed Cost"), 100 );