public function revertTransaction($id) { global $wpdb; // get transaction record $transaction = $this->getItem($id); if (!$transaction) { return false; } // restore listing's quantity_sold // get current values from db $quantity_purchased = $transaction['quantity']; $quantity_sold = $wpdb->get_var($wpdb->prepare("SELECT quantity_sold FROM {$wpdb->prefix}ebay_auctions WHERE ebay_id = %s", $transaction['item_id'])); // decrease the listing's quantity_sold $quantity_sold = $quantity_sold - $quantity_purchased; $wpdb->update($wpdb->prefix . 'ebay_auctions', array('quantity_sold' => $quantity_sold), array('ebay_id' => $transaction['item_id'])); // check if we need to restore product stock list($reduced_product_id, $new_stock_value) = $this->checkIfStockWasReducedForItemID($transaction); if ($reduced_product_id) { // echo "<pre>stock was reduced to ";print_r($new_stock_value);echo"</pre>";#die(); // restore product stock $newstock = ProductWrapper::increaseStockBy($reduced_product_id, $transaction['quantity']); $this->addHistory($transaction['transaction_id'], 'restored_stock', 'Product stock was restored', array('product_id' => $reduced_product_id, 'newstock' => $newstock)); } // update status $this->updateById($id, array('status' => 'reverted')); $this->addHistory($transaction['transaction_id'], 'revert_transaction', 'Transaction was reverted'); return true; }