Я пытаюсь получить ярлык налога в WooCommerce для каждого элемента заказа.
Например: 2x Продукт 1 - 19% MwSt. (налог) 4x Продукт 2 - 19% MwSt. (налог) 1x Продукт 2 - 19% MwSt. (налог)
Поэтому я добавил налоги «19% (налог)» в качестве стандартного значения и «7% (налог)» в качестве уменьшенного налога в настройках woocommerce. Я также установил, что хочу отображать и вводить цены в WooCommerce «без налогов».
Теперь я разместил заказ с этими двумя товарами (цифровым и загружаемым), а затем я пытаюсь получить налоговую стоимость каждой позиции заказа.
$wc_order = wc_get_order(143);
foreach ($wc_order->get_items(array('line_item')) as $item_id => $line_item) {
$order_product_detail = $line_item->get_data();
$item_tax_class = $order_product_detail['tax_class'];
$item_subtotal_tax = $order_product_detail['subtotal_tax'];
$item_total_tax = $order_product_detail['total_tax'];
$item_taxes_array = $order_product_detail['taxes'];
var_dump($item_tax_class);
var_dump($item_subtotal_tax);
var_dump($item_total_tax);
var_dump($item_taxes_array);
}
Это результат:
string(0) "" string(4) "0.76" string(6) "0.2185" array(2) { ["total"]=> array(1) { [1]=> string(6) "0.2185" } ["subtotal"]=> array(1) { [1]=> string(4) "0.76" } } string(0) "" string(4) "0.38" string(6) "0.2451" array(2) { ["total"]=> array(1) { [1]=> string(6) "0.2451" } ["subtotal"]=> array(1) { [1]=> string(4) "0.38" } } string(0) "" string(4) "2.85" string(5) "2.166" array(2) { ["total"]=> array(1) { [1]=> string(5) "2.166" } ["subtotal"]=> array(1) { [1]=> string(4) "2.85" } } string(0) "" string(4) "0.76" string(6) "0.6251" array(2) { ["total"]=> array(1) { [1]=> string(6) "0.6251" } ["subtotal"]=> array(1) { [1]=> string(4) "0.76" } } string(0) "" string(4) "0.95" string(6) "0.8151" array(2) { ["total"]=> array(1) { [1]=> string(6) "0.8151" } ["subtotal"]=> array(1) { [1]=> string(4) "0.95" } } string(0) "" string(4) "1.14" string(6) "1.0051" array(2) { ["total"]=> array(1) { [1]=> string(6) "1.0051" } ["subtotal"]=> array(1) { [1]=> string(4) "1.14" } } string(0) "" string(4) "1.52" string(6) "1.3851" array(2) { ["total"]=> array(1) { [1]=> string(6) "1.3851" } ["subtotal"]=> array(1) { [1]=> string(4) "1.52" } }
Так как это не дает мне ярлыка налога на позицию, я попробовал следующее:
$wc_order = wc_get_order(143);
foreach ($wc_order->get_items(array('line_item')) as $item_id => $line_item) {
$order_item_tax = new WC_Order_Item_Tax($item_id);
var_dump($order_item_tax->get_label());
}
Это результат:
string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer" string(14) "Mehrwertsteuer"
Но это должно быть «19% MwSt.».
Итак, я попробовал вот это:
$wc_order = wc_get_order(143);
foreach ($wc_order->get_items(array('tax')) as $item_id => $line_item) {
var_dump($line_item->get_label());
}
Это выводит:
string(10) "19 % MwSt."
Так что да, это значение, которое мне нужно, но почему он выводит это значение только один раз, когда у меня семь элементов в заказе?
Есть ли шанс получить налоговую метку для каждой позиции заказа или это невозможно в WooCommerce? Моя цель - создать программу счетов-фактур, но я должен учитывать, есть ли разные налоговые ставки для каждой строки.
Версия WooCommerce - 3.4.2
заранее спасибо