WooCommerce: Dapatkan ekspor pesanan dengan jalur pajak
Saya ingin mengekspor semua pesanan saya dengan garis pajak yang dipisahkan dengan tarif pajak.
Misalnya: Pesanan dapat memiliki tarif pajak 7% dan 19%. Jika pesanan memiliki produk dengan kedua tarif pajak, saya hanya mendapatkan satu jumlah pajak gabungan.
Misalkan pesanan memiliki dua produk masing-masing seharga 100 €. Akan ada pajak berikut ini:
- 100 € dengan potongan harga: 7 €
- 100 € pada tingkat default: 19 €
- pajak gabungan: 26 €
Saya menggunakan kode berikut (kutipan) untuk mengekspor data pesanan:
$order_data = $order->get_data(); // The Order data
$order_date_created = $order_data['date_created']->date('d.m.Y'); // Example for oder creation date
Setelah mendapatkan data, saya perlu menyimpannya dalam array:
$custom_data = array( 'custom_order_date_created' => $custom_order_date_created,
)
Yang saya butuhkan adalah kolom tetap (seperti di $order_date_created
atas) untuk setiap tarif pajak.
Suka:
- Kolom 1: tarif pajak - 7%
- Kolom 2: jumlah pajak - 7 €
- Kolom 3: tarif pajak - 19%
- Kolom 4: jumlah pajak - 19 €
Jika tidak ada jumlah untuk tarif pajak, kolom tersebut bisa kosong.
Saya tahu bahwa ada properti pesanan yang disebut tax_lines
. Tapi itu array dan saya tidak tahu bagaimana menggunakannya. Properti tax_lines
memiliki beberapa properti baris pajak sendiri .
Adakah yang tahu bagaimana mendapatkan nilai-nilai ini dari pesanan?
EDIT: Saya menemukan potongan di pertanyaan lain :
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>';
}
Kelihatannya benar, tapi saya tidak yakin bagaimana menggunakannya dengan contoh kode saya dan menyimpannya di array saya.
EDIT 2: Setelah menggali lebih dalam, saya menemukan WC_Order_Item_Tax
objek yang memiliki item pajak pesanan di dalamnya. Jadi saya mencoba menggunakan data itu tetapi itu adalah objek yang sangat besar dan saya tidak yakin bagaimana memilih data dan menampilkannya di kolom kanan.
Ini terlihat seperti ini (masih banyak lagi). Dan saya perlu memilih pajak dengan rate_id
contoh:
[4543] => WC_Order_Item_Tax Object
(
[extra_data:protected] => Array
(
[rate_code] =>
[rate_id] => 0
[label] =>
[compound] =>
[tax_total] => 0
[shipping_tax_total] => 0
[rate_percent] =>
)
[data:protected] => Array
(
[order_id] => 11244
[name] =>
[rate_code] => DE-MWST.-1
[rate_id] => 1
[label] => MwSt.
[compound] => 1
[tax_total] => 7.54
[shipping_tax_total] => 0
[rate_percent] => 16
)
[cache_group:protected] => order-items
[meta_type:protected] => order_item
[object_type:protected] => order_item
[id:protected] => 4543
[changes:protected] => Array
(
)
[object_read:protected] => 1
[default_data:protected] => Array
(
[order_id] => 0
[name] =>
[rate_code] =>
[rate_id] => 0
[label] =>
[compound] =>
[tax_total] => 0
[shipping_tax_total] => 0
[rate_percent] =>
)
Jawaban
Anda dapat menggunakannya dengan cara ini mungkin setelah baris kode ini
$custom_data = array( 'custom_order_date_created' => $custom_order_date_created,
)
Kemudian foreach loop dengan item tarif pajak dan menggunakan WC_Taxmetodeget_rate_percent() untuk mendapatkan persentase tarif pajak sebagai berikut:
// Loop through order tax items
foreach ( $order->get_tax_totals() as $rate_code => $tax ) { // Store it in the array $custom_data['taxes'][] = array(
'tax_rate' => WC_Tax::get_rate_percent($tax->rate_id), // <=== the tax rate percentage 'tax_amount' => $tax->formatted_amount
);
}
Terkait:
- Bagaimana cara mendapatkan detail dan tarif pajak pesanan di WooCommerce?
- Dapatkan jumlah total pajak Pesanan terpisah dengan kelas pajak