function idwc_insert_order($order_id, $old_status, $new_status) { // we need to run this on status update, edit, and delete // this used EDD payment_id as txn_id rather than gateway txn_id $items = idwc_order_items($order_id); $id_orders = array(); foreach ($items as $item) { $qty = $item['qty']; for ($i = 1; $i <= $qty; $i++) { $vars = idwc_payment_vars($item, $new_status, $order_id, $i); $txn_id = $vars['transaction_id']; $existing_txn = ID_Order::get_order_by_txn($txn_id); if (empty($existing_txn)) { $rc = new ReflectionClass('ID_Order'); $order = $rc->newInstanceArgs($vars); $pay_id = $order->insert_order(); $id_orders[] = $pay_id; } else { if ($existing_txn->transaction_id !== $new_status) { $vars['id'] = $existing_txn->id; $rc = new ReflectionClass('ID_Order'); $order = $rc->newInstanceArgs($vars); $update = $order->update_order(); } } } update_post_meta($order_id, '_wc_order_pairing', $id_orders); } }