Woocommerce根据税率更改产品价格,因此总金额保持不变

时间:2019-02-07 18:58:27

标签: wordpress woocommerce

我不想更改总数。应该调整产品价格以保持总计。

例如,我的产品价格为35美元。 并且在我的woo税设置中添加了加利福尼亚销售税的标准税。 因此,购物车摘要看起来像是95825萨克拉曼多的地址。

Subtotal $35.00
Tax      $2.89
Total    $37.89

我要做的是调整产品价格,使总数保持35。像这样:

Subtotal $32.41
Tax      $2.89
Total    $35.00

现在,我使用以下代码,这些代码会更改产品价格,但是请在我的代码后求税,然后根据新产品价格计算新税。因此,现在总价少于35克的税,而且产品价格也会降低。

add_action( 'woocommerce_before_calculate_totals', 'custom_cart_items_prices', 10, 1 );
function custom_cart_items_prices( $cart ) {

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
    return;

// Loop Through cart items
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {

    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );

    $price_without_tax  = $_product->get_price_excluding_tax();
    $price_with_tax     = $_product->get_price_including_tax();

    if($price_with_tax > 0){
        $tax = $price_with_tax - $price_without_tax;
    } else {
        $tax = $cart_item['line_tax'];
    }

    $new_price = $price_without_tax - $tax; 

    $cart_item['data']->set_price( $new_price ); 

}
}

请帮助。谢谢。

0 个答案:

没有答案