Auto Delete User dan Voucher Expire pada PHPMixBill – Pada artikel sebelumnya saya sudah membahas mengenai Cara Mengaktifkan Schedule User Expire pada PHPMixBill, yang mana script untuk schedulenya ini sudah disertakan secara default oleh Developer PHPMixBill.
Untuk artikel kali saya akan berbagi tutorial atau cara agar user-user expire atau voucher-voucher yang sudah digunakan bisa dihapus secara otomatis oleh PHPMixBill, caranya tetap sama dengan tutorial sebelumnya yaitu dengan mengaktifkan schedule pada server PHPMixBill atau schedule pada mikrotik, hanya saja script untuk ini tidak disertakan secara default oleh PHPMixBill. Disini saya akan membagikan script untuk Auto Delete User Expire dan Voucher Terpakai pada PHPMixBill yang mana script ini merupakan pengembangan dari script cron.php
yang ada pada PHPMixBill.
Baca Juga :
Modifikasi Design Print Voucher PHPMixBill Part-2
Silahkan anda buat sebuah file php
pada folder_phpmixbill_anda/system/
, nama file-nya silahkan anda tentukan sendiri. Kemudian copy paste script php berikut :
<?php require('config.php'); require('orm.php'); use PEAR2\Net\RouterOS; require_once 'autoload/PEAR2/Autoload.php'; ORM::configure("mysql:host=$db_host;dbname=$db_name"); ORM::configure('username', $db_user); ORM::configure('password', $db_password); ORM::configure('return_result_sets', true); ORM::configure('logging', true); $result = ORM::for_table('tbl_appconfig')->find_many(); foreach($result as $value){ $config[$value['setting']]=$value['value']; } date_default_timezone_set($config['timezone']); $z = ORM::for_table('tbl_user_recharges')->where('method','voucher')->find_many(); foreach ($z as $zs){ if($zs['type'] =='Hotspot'){ $date_now = strtotime(date("Y-m-d H:i:s")); $expiration = strtotime($zs['expiration'].' '.$zs['time']); if ($date_now >= $expiration){ $u = ORM::for_table('tbl_user_recharges')->where('id',$zs['id'])->find_one(); $c = ORM::for_table('tbl_customers')->where('id',$zs['customer_id'])->find_one(); $m = ORM::for_table('tbl_routers')->where('name',$zs['routers'])->find_one(); try { $client = new RouterOS\Client($m['ip_address'], $m['username'], $m['password']); } catch (Exception $e) { die('Unable to connect to the router.'); } $printRequest = new RouterOS\Request('/ip/hotspot/user/print'); $printRequest->setArgument('.proplist', '.id'); $printRequest->setQuery(RouterOS\Query::where('name', $c['username'])); $id = $client->sendSync($printRequest)->getProperty('.id'); $setRequest = new RouterOS\Request('/ip/hotspot/user/remove'); $setRequest->setArgument('numbers', $id); $client->sendSync($setRequest); $u->delete(); $c->delete(); } } } $x = ORM::for_table('tbl_voucher')->where('status','1')->find_many(); foreach ($x as $xs){ if($xs['type'] =='Hotspot'){ $y = ORM::for_table('tbl_voucher')->where('id',$xs['id'])->find_one(); $y->delete(); echo "<br>VOUCHER TERPAKAI SUDAH DIHAPUS<br>"; } } ?>
Silahkan di-save dan selanjutnya silahkan anda aktifkan schedule-nya pada server PHPMixBill anda atau pada MikroTik anda dan sesuaikan interval waktunya, saya pribadi menggunakan interval per 24 jam, yang dieksekusi setiap jam 06.00. Bagi yang belum mengetahui cara mengaktifkan schedulenya silahkan baca dulu artikel : Cara Mengaktifkan Schedule User Expire pada PHPMixBill.
Baca Juga :
Perlu anda ketahui, script diatas hanya berlaku untuk user yang menggunakan kode voucher saja dan tidak berlaku untuk user-user yang ditambah secara manual di PHPMixBill.
Demikianlah artikel kali ini mengenai Auto Delete User dan Voucher Expire pada PHPMixBill, mudah-mudahan bermaanfaat dan menjadi motivasi untuk dikembangkan lagi. Ikuti terus TopSETTING.COM untuk mendapatkan artikel-artikel atau tutorial-tutorial menarik lainnya, terutama untuk pengembangan terhadap fitur-fitur PHPMixBill.
Very nice tutorial. Really appreciated. I tried this code for PPPOE but its not working. Please share with me that how can i do this in PPPOE environment. Thanks in advance.
we must add some coding to that file for PPPoE Users, maybe next time i’ll send you new scheduler file