JezK
Edit File: dashboard.php
<?php // Create Booking Table add_action('after_switch_theme', 'create_table_booking'); function create_table_booking() { global $wpdb; $table_bookingan = $wpdb->prefix . 'bookingan'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_bookingan ( id int(10) unsigned NOT NULL AUTO_INCREMENT, etime varchar(100), titel_cust varchar(20), nama1_cust varchar(200), nama2_cust varchar(200), hp_cust varchar(50), email_cust varchar(100), pesan_cust longtext, tamu varchar(20), guestlist longtext, judultour longtext, urltour longtext, imgtour longtext, datetour varchar(200), durasi varchar(200), hargatour varchar(100), hargatotal varchar(100), pil varchar(200), invoice varchar(20), payment varchar(50), kurs varchar(100), ammount varchar(100), dp varchar(100), depe varchar(100), sdepe varchar(100), dp_ammount varchar(100), sdp_ammount varchar(100), paystatus varchar(50), paydata longtext, dp_paydata longtext, status varchar(20) NOT NULL, checking varchar(20), time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, UNIQUE KEY id (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } // Create Pesanan/Orderan Table add_action('after_switch_theme', 'create_table_konfirmasi'); function create_table_konfirmasi() { global $wpdb; $table_konfirmasi = $wpdb->prefix . 'konfirmasi'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_konfirmasi ( id int(10) unsigned NOT NULL AUTO_INCREMENT, etime varchar(100), nama_cust varchar(200), hp_cust varchar(50), email_cust varchar(100), pesan_cust longtext, invoice varchar(20), txn_id varchar(100), tgl_transfer varchar(100), jmlh_transfer varchar(100), rek_tujuan varchar(200), imgcode varchar(100), status VARCHAR(20) NOT NULL, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, UNIQUE KEY id (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } // Invoices add_action( 'admin_menu', 'wizata_dash' ); function wizata_dash() { // top menu add_menu_page( 'Menu Tour','Menu Tour','edit_others_posts','booking','booking_oketheme', 'dashicons-store', 3 ); // submenu add_submenu_page('booking','Booking','Booking','edit_others_posts','booking','booking_oketheme'); add_submenu_page('booking','Konfirmasi','Konfirmasi','edit_others_posts','confirm','confirm_oketheme'); add_submenu_page('booking','Theme Options', (webdev() ? 'Theme Options' : nama_theme().' Options') ,'edit_others_posts', oketheme_id().'-options','__return_null'); } function booking_oketheme() { global $wpdb; global $oketheme; $dbbooking = $wpdb->prefix . 'bookingan'; $trx_time = current_time('mysql'); $message = ''; add_thickbox(); if(isset($_GET['id']) && ($_GET['action'] == 'hapus')) { $sql = $wpdb->query(" DELETE FROM $dbbooking WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Invoice berhasil dihapus!</p></div>'; } if(isset($_GET['id']) && ($_GET['action'] == 'paid')) { $sql = $wpdb->query(" UPDATE $dbbooking SET payment = null, dp = '100', paystatus = 'paid', status = 'paid',paydata = '$trx_time|Verified by admin||' WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Status invoice berhasil diganti!</p></div>'; } if(isset($_GET['id']) && ($_GET['action'] == 'unpaid')) { $sql = $wpdb->query(" UPDATE $dbbooking SET payment = null, paystatus = null, dp_paydata = null, paydata = null, status = 'unpaid' WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Status invoice berhasil diganti!</p></div>'; } if(isset($_GET['id']) && ($_GET['action'] == 'dp')) { $data = $wpdb->get_row("SELECT * FROM $dbbooking WHERE id = '".$_GET['id']."'"); $sql = $wpdb->query(" UPDATE $dbbooking SET payment = null, paystatus = 'dp-paid', paystatus = 'dp-paid', status = 'dp', dp_paydata = '$trx_time|Verified by admin||DP $data->dp%' WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Status invoice berhasil diganti!</p></div>'; } $booking = $wpdb->get_results("SELECT * FROM $dbbooking ORDER BY id DESC"); if(isset($_GET['invoice'])) { $x = $wpdb->get_row("SELECT * FROM $dbbooking WHERE invoice= '".$_GET['invoice']."'"); echo '<div class="wrap">'; if ($x) { echo '<h1>Detail Booking #'.$_GET['invoice'].'</h1> <div id="container" style="max-width:700px">'; include('invoice.php'); echo "</div><p><a href='admin.php?page=booking' title='kembali ke Booking'><button class='button'>Kembali</button></a></p>"; } else { ?> <h1>Data Booking</h1> <div id="container" style="max-width:400px"> <form method="get"> <p style="padding-bottom:10px;margin:0 0 15px;border-bottom:1px solid #EEE">Oppss.. <b>ID invoice</b> yang Anda cari tidak ditemukan!</p> <input type="hidden" name="page" value="booking"> <input style="width:70%" type="text" name="invoice" placeholder="ID Invoice" value="<?php echo isset($_GET["invoice"]) ? $_GET["invoice"] : ''; ?>" required> <button type="submit" style="width:26%" class="button button-primary">Submit</button> </form> </div> <p><a href='admin.php?page=booking' title='kembali ke Booking'><button class='button'>Kembali</button></a></p> <?php } echo '</div>'; } else {?> <div class="wrap"> <h1>Data Booking</h1> <?php echo $message;?> <div id="container"> <div class="inv-filter"> <ul> <li data-filter="" class="current">Semua</li> <li data-filter="Lunas">Lunas</li> <li data-filter="Belum Bayar">Belum Bayar</li> <li data-filter="Down Payment">Down Payment</li> </ul> </div> <table id="dataorder" class="display datalist" style="width:100%;"> <thead> <tr> <th>ID Invoice</th> <th>Nama Pemesan</th> <th>Tgl. Berangkat</th> <th>Jumlah Tamu</th> <th>Status</th> <th><span class="dashicons dashicons-menu-alt2"></span></th> </tr> </thead> <tbody> <?php foreach($booking as $x) {?> <tr> <td><a href="admin.php?page=booking&invoice=<?=$x->invoice;?>" target="blank" title="Detail #<?php echo $x->invoice;?>"><?php echo $x->invoice;?></a></td> <td><?php echo $x->nama1_cust.' '.$x->nama2_cust;?></td> <td><?php echo $x->datetour;?></td> <td><?php echo $x->tamu.' orang';?></td> <td> <?php if ($x->status == 'unpaid') {?> <div class="topstatus borange">Belum Bayar</div> <?php } else if ($x->status == 'dp'){ ?> <div class="topstatus bblue">Down Payment</div> <?php } else if ($x->status == 'paid'){?> <div class="topstatus bgreen">Lunas</div> <?php } ?> </td> <td> <a href="#TB_inline?&width=450&height=650&inlineId=<?php echo $x->id;?>" class="thickbox" title="Detail #<?php echo $x->invoice;?> | <?php echo date('d M Y - H:i', strtotime($x->time));?>"><button class="button"><span style="margin-top:3px" class="dashicons dashicons-external"></span></button> </td> </tr> <?php } ?> </tbody> </table> <?php foreach($booking as $x) { ?> <div id="<?php echo $x->id;?>" style="display:none"> <?php include('invoice.php'); ?> </div> <?php } // End Detail Booking?> <div style="clear: both"></div> </div> </div> <?php } } // Konfirmasi function confirm_oketheme() { global $oketheme; global $wpdb; $dbconfirm = $wpdb->prefix . 'konfirmasi'; $message = ''; add_thickbox(); if(isset($_GET['id']) && ($_GET['action'] == 'hapus-konfirmasi')) { $sql = $wpdb->query(" DELETE FROM $dbconfirm WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Data berhasil dihapus!</p></div>'; } if(isset($_GET['id']) && ($_GET['action'] == 'verified')) { $sql = $wpdb->query(" UPDATE $dbconfirm SET status = 'verified' WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Status konfirmasi berhasil diganti!</p></div>'; } if(isset($_GET['id']) && ($_GET['action'] == 'unverified')) { $sql = $wpdb->query(" UPDATE $dbconfirm SET status = 'unverified' WHERE ID = '".$_GET['id']."' "); $message = '<div class="updated notice is-dismissible" style="margin:10px 20px 15px 0;"><p>Status konfirmasi berhasil diganti!</p></div>'; } $confirm = $wpdb->get_results("SELECT * FROM $dbconfirm ORDER BY id DESC"); ?> <div class="wrap"> <h1>Data Konfirmasi</h1> <?php echo $message;?> <div id="container"> <div class="inv-filter"> <ul> <li data-filter="" class="current">Semua</li> <li data-filter="Terverifikasi">Terverifikasi</li> <li data-filter="Belum Diverifikasi">Belum Diverifikasi</li> </ul> </div> <table id="dataorder" class="display datalist" style="width:100%;"> <thead> <tr> <th>ID Invoice</th> <th>Tgl. Pembayaran</th> <th>Metode Pembayaran</th> <th>Jumlah</th> <th>Status</th> <th><span class="dashicons dashicons-menu-alt2"></span></th> </tr> </thead> <tbody> <?php foreach($confirm as $x) {?> <tr> <td><?=$x->invoice;?></td> <td><?=$x->tgl_transfer;?></td> <td><?=$x->rek_tujuan;?></td> <td><?=($x->imgcode=='paypal'?'USD ':'Rp ').$x->jmlh_transfer;?></td> <td> <?php if ($x->status == 'unverified') { ?> <div class="topstatus borange">Belum Diverifikasi</div> <?php } else if ($x->status == 'verified'){ ?> <div class="topstatus bgreen">Terverifikasi</div> <?php } ?> </td> <td> <a href="#TB_inline?&width=450&height=500&inlineId=<?php echo $x->id;?>" class="thickbox" title="Detail #<?php echo $x->invoice;?> | <?php echo date('d M Y - H:i', strtotime($x->time));?>"><button class="button"><span style="margin-top:3px" class="dashicons dashicons-external"></span></button> </td> </tr> <?php } ?> </tbody> </table> <?php foreach($confirm as $x) { ?> <div id="<?php echo $x->id;?>" style="display:none"> <?php include('confirm.php'); ?> </div> <?php } // End Detail Confirm?> </div> </div> <?php } //Custom Post Type Rental function fake_rental() { add_menu_page( 'Rental','Rental','manage_options','rental','fake_rental_oketheme','dashicons-marker', 26 ); add_submenu_page( 'rental','Rental','Rental','manage_options','rental','fake_rental_oketheme'); add_submenu_page( 'rental','Tambah Armada','Tambah Armada Baru','manage_options','rental','fake_rental_oketheme'); add_submenu_page( 'rental', 'Kategori', 'Kategori','manage_options', 'rental','fake_rental_oketheme'); } function fake_rental_oketheme() { echo '<div class="notice notice-error" style="max-width:1110px;margin:20px 0 0;"><p>Hai, sayangnya fitur ini hanya tersedia pada <b>Wizata Theme</b> developer license. <a href="https://www.oketheme.com/members/signup/upgrade" target="blank"><button type="button" class="button">Upgrade sekarang</button></a> <a href="https://wizata.oketheme.com/rental" target="blank"><button type="button" class="button">Cek demo</button></a></p></div><br/>'; echo '<img src="'.get_template_directory_uri().'/images/rental.jpg">'; } // Real Rental function rental_post_type() { register_post_type('rental', array( 'labels' => array( 'name' => 'Rental', 'singular_name' => 'Rental', 'add_new' => 'Tambah Armada Baru', 'add_new_item' => 'Tambah Armada Baru', 'edit_item' => 'Edit Armada', 'view_item' => 'Lihat Detail', 'search_items' => 'Mencari Armada', 'not_found' => 'Armada tidak ditemukan', 'not_found_in_trash' => 'Tidak ditemukan di kotak sampah' ), 'public' => true, 'has_archive' => true, 'menu_icon' => 'dashicons-marker', 'supports' => array( 'title', 'thumbnail', 'editor' ) )); }