/** * Copy booking */ public function copy_booking($id_booking) { global $wpdb; try { $booking = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking'] . '` WHERE `id_booking` = %d', $id_booking)); $prices = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking_prices'] . '` WHERE `id_booking` = %d', $id_booking)); $drivers = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . CarRental::$db['booking_drivers'] . '` WHERE `id_booking` = %d', $id_booking)); // Save Branch to DB $arr = array(); foreach ($booking as $key => $val) { $arr[$key] = !is_null($val) ? $val : NULL; } // Generate new Order ID $arr['id_order'] = CarRental::generate_unique_order_id(); unset($arr['id_booking']); unset($arr['updated']); unset($arr['deleted']); $wpdb->insert(CarRental::$db['booking'], $arr); $id_booking = $wpdb->insert_id; // Save Prices if (!empty($prices)) { foreach ($prices as $key => $val) { $arr = array('id_booking' => $id_booking, 'name' => $val->name, 'price' => $val->price, 'currency' => $val->currency); $wpdb->insert(CarRental::$db['booking_prices'], $arr); } } // Save Drivers if (!empty($drivers)) { foreach ($drivers as $key => $val) { $arr = array(); foreach ($val as $kD => $vD) { $arr[$kD] = $vD; } $arr['id_booking'] = $id_booking; unset($arr['id_driver']); $wpdb->insert(CarRental::$db['booking_drivers'], $arr); } } return true; } catch (Exception $e) { return $e->getMessage(); } }