/**
  * Add a tax row to the order.
  * @param array $args
  * @param int $tax_amount amount of tax.
  * @param int $shipping_tax_amount shipping amount.
  * @return int order item ID
  * @throws WC_Data_Exception
  */
 public function add_tax($tax_rate_id, $tax_amount = 0, $shipping_tax_amount = 0)
 {
     wc_deprecated_function('WC_Order::add_tax', '2.7', 'Create new WC_Order_Item_Tax object and add to order with WC_Order::add_item()');
     $item = new WC_Order_Item_Tax();
     $item->set_props(array('rate_id' => $tax_rate_id, 'tax_total' => $tax_amount, 'shipping_tax_total' => $shipping_tax_amount));
     $item->set_rate($tax_rate_id);
     $item->set_order_id($this->get_id());
     $item->save();
     $this->add_item($item);
     wc_do_deprecated_action('woocommerce_order_add_tax', array($this->get_id(), $item->get_id(), $tax_rate_id, $tax_amount, $shipping_tax_amount), '2.7', 'Use woocommerce_new_order_item action instead.');
     return $item->get_id();
 }
Exemplo n.º 2
0
 /**
  * Add tax lines to the order.
  *
  * @param  WC_Order $order
  */
 protected function create_order_tax_lines(&$order)
 {
     foreach (array_keys(WC()->cart->taxes + WC()->cart->shipping_taxes) as $tax_rate_id) {
         if ($tax_rate_id && apply_filters('woocommerce_cart_remove_taxes_zero_rate_id', 'zero-rated') !== $tax_rate_id) {
             $item = new WC_Order_Item_Tax();
             $item->set_props(array('rate_id' => $tax_rate_id, 'tax_total' => WC()->cart->get_tax_amount($tax_rate_id), 'shipping_tax_total' => WC()->cart->get_shipping_tax_amount($tax_rate_id), 'rate_code' => WC_Tax::get_rate_code($tax_rate_id), 'label' => WC_Tax::get_rate_label($tax_rate_id), 'compound' => WC_Tax::is_compound($tax_rate_id)));
             $order->add_item($item);
         }
     }
 }