Ставки пакета WooCommerce (повторение 2 раза) создает умноженные тарифы - PullRequest
0 голосов
/ 27 марта 2020

Используя фильтр woocommerce_package_rates, он сначала работает, но при загрузке страницы оформления заказа кажется, что этот фильтр загружается несколько раз.

Пример. Если стоимость доставки составляет 20 долларов. Мне нужно умножить это на 2, что должно быть 40 долларов. Но это снова l oop, и он станет $ 80. Когда я впервые загружаю кассу, она показывает правильную цену, но через 2 секунды она снова устанавливает ее на $ 80.

Не уверен, что здесь делать, или как с этим справиться.

add_filter( 'woocommerce_package_rates', 'woocommerce_shipping_rates', 10, 2);
function woocommerce_shipping_rates($rates, $package) {
    $multiplier = 2;

    foreach ( $rates as $rate_key => $rate ){
        if( 'canada_post' === $rate->method_id ) {
            $has_taxes = false;

            // Set the new cost
            //echo "CALC:". $rate->cost ." * ". $multiplier ;
            $rates[$rate_key]->cost = $rate->cost * $multiplier ;

            // Taxes rate cost (if enabled)
            foreach ($rates[$rate_key]->taxes as $key => $tax){
                if( $tax > 0 ){
                    // New tax calculated cost
                    $taxes[$key] = $tax * $multiplier ;
                    $has_taxes = true;
                }
            }
            // Set new taxes cost
            if( $has_taxes )
                $rates[$rate_key]->taxes = $taxes;
        }
    }

    return $rates;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...