/** * Creates a blank order object, or upgrades a draft order * @param APP_Draft_order $draft_order A draft order to be upgraded * @return APP_Order An order object representing the new order */ function appthemes_new_order($draft_order = null) { if (!empty($draft_order)) { return APP_Draft_Order::upgrade($draft_order); } else { return APP_Order_Factory::create(); } }
public function test_register() { $queue = new APP_Order_Processing(); $queue->schedule_process(); $this->assertNotEquals(0, wp_next_scheduled('app_order_processing')); $draft = new APP_Draft_Order(); $draft->complete(); $new_order = APP_Draft_Order::upgrade($draft); $child_order = APP_Order_Factory::duplicate($new_order); $child_order->set_gateway('mock-gateway'); wp_update_post(array('ID' => $child_order->get_id(), 'post_status' => APPTHEMES_ORDER_COMPLETED, 'post_parent' => $new_order->get_id())); $child_order->schedule_payment(date('Y-m-d H:i:s', strtotime('-1 day'))); $items_processed = $queue->process(); $this->assertEquals(1, $items_processed); $order = appthemes_get_order($child_order->get_id(), true); $this->assertEquals(APPTHEMES_ORDER_ACTIVATED, $order->get_status()); }
public function test_upgrade_order() { $order = new APP_Draft_Order(); $order->set_description('Draft'); $order->set_gateway('paypal'); $order->set_currency('EUR'); // We need an existing order that can be connected to $real_order = APP_Order_Factory::create(); $status = $order->add_item('test', 5, $real_order->get_id()); $new_real_order = APP_Draft_Order::upgrade($order); $this->assertEquals('Draft', $new_real_order->get_description()); $this->assertEquals('paypal', $new_real_order->get_gateway()); $this->assertEquals('EUR', $new_real_order->get_currency()); $this->assertCount(1, $new_real_order->get_items()); $this->assertEquals(5, $new_real_order->get_total()); }