完成订单后重新计算税款-WooCommerce

时间:2018-12-18 08:00:17

标签: wordpress woocommerce wordpress-theming hook-woocommerce woocommerce-theming

我已经在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 );

0 个答案:

没有答案