/**
  * Process the payment and return the result.
  *
  * @param int $order_id
  *
  * @return array
  */
 public function process_payment($order_id)
 {
     global $woocommerce;
     $order = new WC_Order($order_id);
     $url = $this->payment($order);
     if ('yes' == $this->debug) {
         $this->log->add('pagseguro', 'Payment arguments for order #' . $order_id . ': ' . print_r($order, true));
     }
     //Remove Items Cart
     $woocommerce->cart->empty_cart();
     //Update status to Awaiting payment
     $modal_pagseguro = new WP_WC_Modal_Pagseguro();
     $array_order = $modal_pagseguro->getOrderStatus();
     $key = $modal_pagseguro->getKeyOrderStatusByName($array_order[1]);
     $modal_pagseguro->updateOrder($order_id, $key);
     $modal_pagseguro->saveHistoric($order_id, $modal_pagseguro->getNameOrderStatusByKey($key), true);
     return array('result' => 'success', 'redirect' => $url);
 }
 /**
  * 
  * Update table order and save historic
  * 
  * @param type String
  * @param type WP_WC_Modal_Pagseguro 
  */
 private function updateOrder($id_order_status, WP_WC_Modal_Pagseguro $modal_pagseguro)
 {
     $update = $modal_pagseguro->updateOrder($this->reference, $id_order_status);
     $modal_pagseguro->saveHistoric($this->reference, $modal_pagseguro->getNameOrderStatusByKey($id_order_status), $update);
 }