Существует налог на стоимость доставки.
Наш плагин не может справиться с этим, поэтому на данный момент мы получать заказы, включая текс в цене.
По причинам бухгалтерского учета мне нужно выставить окончательный счет, в котором налог с продаж в размере 20% указан в счете и в бухгалтерском учете.
Следующий скрипт должен выполнить работу, но он этого не делает. Он добавляет налог к исходной цене ($cost), а не к сниженной цене на 20 % ($cost_new).
Код: Выделить всё
add_action('woocommerce_order_status_processing', 'update_shipping_tva', 10, 1);
function update_shipping_tva($order_id) {
// Get the WooCommerce order by order ID
$order = wc_get_order($order_id);
$items = (array) $order->get_items('shipping');
$country = $order->get_shipping_country();
if ($order) {
// Check if the order was created via eBay
$created_via = $order->get_meta('_created_via', true);
if ( strtolower(trim($created_via)) == 'ebay' ) {
// Set the array for tax calculations
$calculate_tax_for = array(
'country' => $country_code
);
// Loop through shipping items
foreach ( $items as $item ) {
$cost = $item->get_total();
wc_get_logger()->log('debug', 'cost before: ' . $cost);
$cost_new = round($cost / 1.2, 2);
$item->set_total( $cost_new );
$item->save();
$item->calculate_taxes( $calculate_tax_for ); // Calculate taxes
$item->save();
}
$order->calculate_totals(); // Recalculate totals and save
$order->add_order_note( 'orders with TVA from ebay' );
}
}
}
И еще один вопрос: я также изменяю определенные заказы с помощью действия «woocommerce_order_status_processing». Могу ли я использовать это дважды или мне нужно поместить все в одну и ту же функцию, даже если я не смотрю на одни и те же продукты. Эта функция здесь касается всех товаров с ebay, другая применима только к определенным продажам на ebay (но она работает!).
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-creation