Настройте налоги на доставку WooCommerce с помощью крючков

Я новичок в настройке Woocommerce с помощью фрагментов хуков. Я пытаюсь настроить способ расчета стоимости доставки и налогов на моем сайте Woocommerce: математическая логика работает, поэтому доступны стоимость товаров, стоимость доставки и налоги на товары.

Что мне непонятно, так это:

  • какой правильный крючок я должен использовать, чтобы переопределить расчет налогового класса по умолчанию?
  • как я могу отключить стандартный расчет налога и установить рассчитываемый мной налог на WC? какая функция нужна?
  • как я могу отобразить эти налоги на странице корзины?

До сих пор я добавил в файл functions.php моей темы этот фрагмент, который на основе каждого продукта корзины вычисляет его новую налоговую стоимость.

add_filter('woocommerce_shipping_packages', 'override_woocommerce_shipping_packages');

function override_woocommerce_shipping_packages($packages) {

    $products_subtotal = Array();
    $products_shiptax = Array();
    
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $subtotal = WC()->cart->get_product_subtotal( $product, $cart_item['quantity'] );
        $products_subtotal[$cart_item_key] = floatval( preg_replace( '#[^\d.]#', '', $subtotal) )/100;

        $products_shiptax[$cart_item_key] = $product->get_tax_class();

        //based on the product's tax class
        if($products_shiptax[$cart_item_key]=="vat-20"){
            // HERE I HAVE TO OVERRIDE ITS TAX VALUE
        }else{
            // HERE I HAVE TO OVERRIDE ITS TAX VALUE
        }
        
        
    }
    

    return $packages;
}

На справочной странице кода WC я вижу множество функций set_taxes или set_tax_total. Но трудно понять, на каком крючке я должен вызывать эти функции.

У вас есть какие-нибудь объяснения и примеры? Большое спасибо за ответ!

Версия WC 5.1.0


person Mattia Bergo    schedule 29.03.2021    source источник
comment
Ставка налога на доставку никогда не основывается на ставках налога на товары корзины ... Обратите внимание, что ставка налога на доставку должна быть определена в настройках WooCommerce ›налог, где вы можете установить флажок доставки для конкретной ставки налога (по местоположению).   -  person LoicTheAztec    schedule 29.03.2021
comment
Спасибо @LoicTheAztec. Предполагается, что как я могу персонализировать налоговые ставки с помощью PHP?   -  person Mattia Bergo    schedule 29.03.2021
comment
Лучше используйте woocommerce_package_rates filter hook… Просмотрите все связанные темы, используя этот крючок   -  person LoicTheAztec    schedule 29.03.2021