Получить отдельные итоговые суммы налогов по Заказу с указанием налогового класса

Я делаю персональный плагин для выставления счетов в формате PDF для woocommerce.

Некоторые из наших продуктов имеют пониженную ставку (% 8) или стандартную ставку (% 18). Например, продукт A = сниженная ставка (% 8), продукт B = стандартная ставка (% 18). Я могу легко получить общую сумму налога, но я хочу напечатать с определением общих сумм налогов с налоговым классом.

Как получить общую сумму Сниженной ставки налога на заказ? Также стандартная ставка.

Как я могу повторить их по отдельности?


person OnurK.    schedule 23.10.2018    source источник


Ответы (1)


Налоговый класс нигде не прописан в данных заказа… Он прописан в каждом продукте и опционально для отправки.

Вы можете просто использовать специальный WC_Abstract_Order метод get_tax_totals() (как Woocommerce использует для разделенных налоговых строк), и у вас будет процент налоговой метки, установленный в настройках каждой налоговой строки.

Код ставки $rate_code состоит из ПРИОРИТЕТА НАЗВАНИЯ-СТРАНЫ.
Например: GB-VAT-1 или US-AL-TAX-1.

Код для отображения отдельных налоговых строк:

// Get the WC_Order instance Object from the Order ID (if needed)
$order = wc_get_order($order_id);

// Output the tax rows in a table
echo '<table>';
foreach ( $order->get_tax_totals() as $rate_code => $tax ) {
    $tax_rate_id  = $tax->rate_id;
    $tax_label    = $tax->label;
    $tax_amount   = $tax->amount;
    $tax_f_amount = $tax->formatted_amount;
    $compound     = $tax->is_compound;
    echo '<tr><td>' . $tax_label  . ': </td><td>' . $tax_f_amount . '</td></tr>';
}
echo '</table>';

Если вы хотите отобразить что-то вроде Reduced rate (%8) или Standart rate (%18), вам нужно будет настроить "Название налога" в настройках налогов для каждой строки налога в каждой налоговой ставке (но оно будет отображаться везде, а не только в вашем настраиваемом плагине PDF).

Кроме того, налоговый класс предназначен только для целей настройки и для просмотра администратором.

person LoicTheAztec    schedule 23.10.2018
comment
Спасибо за ответ @LoicTheAztec Я попробовал ваш пример кода, но, к сожалению, не получил никакого результата. Стоит ли что-то менять в коде? Спасибо еще раз. - person OnurK.; 25.10.2018
comment
@OnurK. Это просто невозможно, так как это действительно работает, потому что это то, что использует woocommerce… Как вы тестировали этот код?… Где вы его включили? где твой собственный код плагина? - person LoicTheAztec; 25.10.2018