Merge pull request #10 from hotspotbilling/Development
- Fix link buy Voucher - Add email field to registration form - Change registration design Form - Add Setting to disable Voucher - Fix Title for PPPOE plans - Fix Plugin Cache
This commit is contained in:
commit
6aa4fe8b96
@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## 2023.7.28
|
||||||
|
|
||||||
|
- Fix link buy Voucher
|
||||||
|
- Add email field to registration form
|
||||||
|
- Change registration design Form
|
||||||
|
- Add Setting to disable Voucher
|
||||||
|
- Fix Title for PPPOE plans
|
||||||
|
- Fix Plugin Cache
|
||||||
## 2023.6.20
|
## 2023.6.20
|
||||||
|
|
||||||
- Hide time for Created date.
|
- Hide time for Created date.
|
||||||
|
@ -31,7 +31,7 @@ Most current web servers with PHP & MySQL installed will be capable of running P
|
|||||||
Minimum Requirements
|
Minimum Requirements
|
||||||
|
|
||||||
- Linux or Windows OS
|
- Linux or Windows OS
|
||||||
- PHP Version 7.2+
|
- PHP Version 7.4
|
||||||
- Both PDO & MySQLi Support
|
- Both PDO & MySQLi Support
|
||||||
- GD2 Image Library
|
- GD2 Image Library
|
||||||
- CURL support
|
- CURL support
|
||||||
|
@ -56,6 +56,7 @@ switch ($action) {
|
|||||||
} else {
|
} else {
|
||||||
r2(U . "order/package/", 's', Lang::T("You have no unpaid transaction"));
|
r2(U . "order/package/", 's', Lang::T("You have no unpaid transaction"));
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'view':
|
case 'view':
|
||||||
$trxid = $routes['2'] * 1;
|
$trxid = $routes['2'] * 1;
|
||||||
$trx = ORM::for_table('tbl_payment_gateway')
|
$trx = ORM::for_table('tbl_payment_gateway')
|
||||||
|
@ -20,7 +20,7 @@ if ($admin['user_type'] != 'Admin') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$cache = File::pathFixer('system/cache/plugin_repository.json');
|
$cache = File::pathFixer('system/cache/plugin_repository.json');
|
||||||
if (file_exists($cache) && time() - filemtime($cache) > (24 * 60 * 60)) {
|
if (file_exists($cache) && time() - filemtime($cache) < (24 * 60 * 60)) {
|
||||||
$json = json_decode(file_get_contents($cache), true);
|
$json = json_decode(file_get_contents($cache), true);
|
||||||
} else {
|
} else {
|
||||||
$data = file_get_contents($plugin_repository);
|
$data = file_get_contents($plugin_repository);
|
||||||
|
@ -20,12 +20,15 @@ switch ($do) {
|
|||||||
case 'post':
|
case 'post':
|
||||||
$otp_code = _post('otp_code');
|
$otp_code = _post('otp_code');
|
||||||
$username = alphanumeric(_post('username'),"+_.");
|
$username = alphanumeric(_post('username'),"+_.");
|
||||||
|
$email = _post('email');
|
||||||
$fullname = _post('fullname');
|
$fullname = _post('fullname');
|
||||||
$password = _post('password');
|
$password = _post('password');
|
||||||
$cpassword = _post('cpassword');
|
$cpassword = _post('cpassword');
|
||||||
$address = _post('address');
|
$address = _post('address');
|
||||||
if(!empty($config['sms_url'])){
|
if(!empty($config['sms_url'])){
|
||||||
$phonenumber = $username;
|
$phonenumber = $username;
|
||||||
|
}else if(strlen($username)<21){
|
||||||
|
$phonenumber = $username;
|
||||||
}
|
}
|
||||||
$msg = '';
|
$msg = '';
|
||||||
if (Validator::Length($username, 35, 2) == false) {
|
if (Validator::Length($username, 35, 2) == false) {
|
||||||
@ -37,6 +40,9 @@ switch ($do) {
|
|||||||
if (!Validator::Length($password, 35, 2)) {
|
if (!Validator::Length($password, 35, 2)) {
|
||||||
$msg .= 'Password should be between 3 to 35 characters' . '<br>';
|
$msg .= 'Password should be between 3 to 35 characters' . '<br>';
|
||||||
}
|
}
|
||||||
|
if (!Validator::Email($email)) {
|
||||||
|
$msg .= 'Email is not Valid<br>';
|
||||||
|
}
|
||||||
if ($password != $cpassword) {
|
if ($password != $cpassword) {
|
||||||
$msg .= $_L['PasswordsNotMatch'] . '<br>';
|
$msg .= $_L['PasswordsNotMatch'] . '<br>';
|
||||||
}
|
}
|
||||||
@ -53,6 +59,7 @@ switch ($do) {
|
|||||||
$ui->assign('username', $username);
|
$ui->assign('username', $username);
|
||||||
$ui->assign('fullname', $fullname);
|
$ui->assign('fullname', $fullname);
|
||||||
$ui->assign('address', $address);
|
$ui->assign('address', $address);
|
||||||
|
$ui->assign('email', $email);
|
||||||
$ui->assign('phonenumber', $phonenumber);
|
$ui->assign('phonenumber', $phonenumber);
|
||||||
$ui->assign('notify', '<div class="alert alert-success">
|
$ui->assign('notify', '<div class="alert alert-success">
|
||||||
<button type="button" class="close" data-dismiss="alert">
|
<button type="button" class="close" data-dismiss="alert">
|
||||||
@ -79,7 +86,7 @@ switch ($do) {
|
|||||||
$d->password = $password;
|
$d->password = $password;
|
||||||
$d->fullname = $fullname;
|
$d->fullname = $fullname;
|
||||||
$d->address = $address;
|
$d->address = $address;
|
||||||
$d->email = '';
|
$d->email = $email;
|
||||||
$d->phonenumber = $phonenumber;
|
$d->phonenumber = $phonenumber;
|
||||||
if ($d->save()) {
|
if ($d->save()) {
|
||||||
$user = $d->id();
|
$user = $d->id();
|
||||||
@ -88,6 +95,7 @@ switch ($do) {
|
|||||||
$ui->assign('username', $username);
|
$ui->assign('username', $username);
|
||||||
$ui->assign('fullname', $fullname);
|
$ui->assign('fullname', $fullname);
|
||||||
$ui->assign('address', $address);
|
$ui->assign('address', $address);
|
||||||
|
$ui->assign('email', $email);
|
||||||
$ui->assign('phonenumber', $phonenumber);
|
$ui->assign('phonenumber', $phonenumber);
|
||||||
$ui->assign('notify', '<div class="alert alert-danger">
|
$ui->assign('notify', '<div class="alert alert-danger">
|
||||||
<button type="button" class="close" data-dismiss="alert">
|
<button type="button" class="close" data-dismiss="alert">
|
||||||
@ -101,6 +109,7 @@ switch ($do) {
|
|||||||
$ui->assign('username', $username);
|
$ui->assign('username', $username);
|
||||||
$ui->assign('fullname', $fullname);
|
$ui->assign('fullname', $fullname);
|
||||||
$ui->assign('address', $address);
|
$ui->assign('address', $address);
|
||||||
|
$ui->assign('email', $email);
|
||||||
$ui->assign('phonenumber', $phonenumber);
|
$ui->assign('phonenumber', $phonenumber);
|
||||||
$ui->assign('notify', '<div class="alert alert-danger">
|
$ui->assign('notify', '<div class="alert alert-danger">
|
||||||
<button type="button" class="close" data-dismiss="alert">
|
<button type="button" class="close" data-dismiss="alert">
|
||||||
@ -152,6 +161,7 @@ switch ($do) {
|
|||||||
$ui->assign('username', "");
|
$ui->assign('username', "");
|
||||||
$ui->assign('fullname', "");
|
$ui->assign('fullname', "");
|
||||||
$ui->assign('address', "");
|
$ui->assign('address', "");
|
||||||
|
$ui->assign('email', "");
|
||||||
$ui->assign('otp', false);
|
$ui->assign('otp', false);
|
||||||
run_hook('view_register'); #HOOK
|
run_hook('view_register'); #HOOK
|
||||||
$ui->display('register.tpl');
|
$ui->display('register.tpl');
|
||||||
|
@ -238,6 +238,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'pppoe':
|
case 'pppoe':
|
||||||
|
$ui->assign('_title', $_L['PPPOE_Plans']);
|
||||||
$ui->assign('xfooter', '<script type="text/javascript" src="ui/lib/c/pppoe.js"></script>');
|
$ui->assign('xfooter', '<script type="text/javascript" src="ui/lib/c/pppoe.js"></script>');
|
||||||
|
|
||||||
$name = _post('name');
|
$name = _post('name');
|
||||||
@ -256,6 +257,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'pppoe-add':
|
case 'pppoe-add':
|
||||||
|
$ui->assign('_title', $_L['PPPOE_Plans']);
|
||||||
$d = ORM::for_table('tbl_bandwidth')->find_many();
|
$d = ORM::for_table('tbl_bandwidth')->find_many();
|
||||||
$ui->assign('d', $d);
|
$ui->assign('d', $d);
|
||||||
$p = ORM::for_table('tbl_pool')->find_many();
|
$p = ORM::for_table('tbl_pool')->find_many();
|
||||||
@ -267,6 +269,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'pppoe-edit':
|
case 'pppoe-edit':
|
||||||
|
$ui->assign('_title', $_L['PPPOE_Plans']);
|
||||||
$id = $routes['2'];
|
$id = $routes['2'];
|
||||||
$d = ORM::for_table('tbl_plans')->find_one($id);
|
$d = ORM::for_table('tbl_plans')->find_one($id);
|
||||||
if ($d) {
|
if ($d) {
|
||||||
|
@ -206,6 +206,7 @@ switch ($action) {
|
|||||||
case 'app-post':
|
case 'app-post':
|
||||||
$company = _post('company');
|
$company = _post('company');
|
||||||
$footer = _post('footer');
|
$footer = _post('footer');
|
||||||
|
$disable_voucher = _post('disable_voucher');
|
||||||
$telegram_bot = _post('telegram_bot');
|
$telegram_bot = _post('telegram_bot');
|
||||||
$telegram_target_id = _post('telegram_target_id');
|
$telegram_target_id = _post('telegram_target_id');
|
||||||
$sms_url = _post('sms_url');
|
$sms_url = _post('sms_url');
|
||||||
@ -245,6 +246,17 @@ switch ($action) {
|
|||||||
$d->save();
|
$d->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$d = ORM::for_table('tbl_appconfig')->where('setting', 'disable_voucher')->find_one();
|
||||||
|
if($d){
|
||||||
|
$d->value = $disable_voucher;
|
||||||
|
$d->save();
|
||||||
|
}else{
|
||||||
|
$d = ORM::for_table('tbl_appconfig')->create();
|
||||||
|
$d->setting = 'disable_voucher';
|
||||||
|
$d->value = $disable_voucher;
|
||||||
|
$d->save();
|
||||||
|
}
|
||||||
|
|
||||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'telegram_bot')->find_one();
|
$d = ORM::for_table('tbl_appconfig')->where('setting', 'telegram_bot')->find_one();
|
||||||
if($d){
|
if($d){
|
||||||
$d->value = $telegram_bot;
|
$d->value = $telegram_bot;
|
||||||
|
@ -329,3 +329,6 @@ $_L['You_are_Online_Logout'] = 'You are Online, Logout?';
|
|||||||
$_L['Connect_to_Internet'] = 'Connect to Internet?';
|
$_L['Connect_to_Internet'] = 'Connect to Internet?';
|
||||||
$_L['Your_account_not_connected_to_internet'] = 'Your account not connected to internet';
|
$_L['Your_account_not_connected_to_internet'] = 'Your account not connected to internet';
|
||||||
|
|
||||||
|
$_L['Failed_to_create_transaction_'] = 'Failed to create transaction. ';
|
||||||
|
$_L['Failed_to_check_status_transaction_'] = 'Failed to check status transaction. ';
|
||||||
|
$_L['Disable_Voucher'] = 'Disable Voucher';
|
||||||
|
@ -56,6 +56,16 @@
|
|||||||
<p class="help-block">edit at config.php</p>
|
<p class="help-block">edit at config.php</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">{Lang::T('Disable Voucher')}</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<select name="disable_voucher" id="disable_voucher" class="form-control">
|
||||||
|
<option value="no" {if $_c['disable_voucher'] == 'no'}selected="selected" {/if}>No</option>
|
||||||
|
<option value="yes" {if $_c['disable_voucher'] == 'yes'}selected="selected" {/if}>Yes</option>
|
||||||
|
</select>
|
||||||
|
<p class="help-block">Voucher activation menu will be hidden</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-heading">Telegram Notification</div>
|
<div class="panel-heading">Telegram Notification</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
@ -155,18 +165,20 @@ add dst-host=*.tawk.to</pre>
|
|||||||
<span class="help-block">{$_L['You_can_use_html_tag']}</span>
|
<span class="help-block">{$_L['You_can_use_html_tag']}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-lg-offset-2 col-lg-10">
|
<button class="btn btn-success btn-block waves-effect waves-light"
|
||||||
<button class="btn btn-primary waves-effect waves-light"
|
|
||||||
type="submit">{$_L['Save']}</button>
|
type="submit">{$_L['Save']}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<pre>/ip hotspot walled-garden
|
<pre>/ip hotspot walled-garden
|
||||||
add dst-host={$_domain}
|
add dst-host={$_domain}
|
||||||
add dst-host=*.{$_domain}</pre>
|
add dst-host=*.{$_domain}</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
{include file="sections/footer.tpl"}
|
{include file="sections/footer.tpl"}
|
@ -58,6 +58,11 @@
|
|||||||
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||||
name="fullname">
|
name="fullname">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{$_L['Email']}</label>
|
||||||
|
<input type="text" required class="form-control" placeholder="xxxxxx@xxx.xx" id="email" value="{$email}"
|
||||||
|
name="email">
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{$_L['Address']}</label>
|
<label>{$_L['Address']}</label>
|
||||||
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
||||||
|
@ -63,11 +63,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn-group btn-group-justified mb15">
|
<div class="btn-group btn-group-justified mb15">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button class="btn btn-primary waves-effect waves-light"
|
<a href="{$_url}login" class="btn btn-warning">{$_L['Cancel']}</a>
|
||||||
type="submit">{Lang::T('Request OTP')}</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a href="{$_url}login" class="btn btn-success">{$_L['Cancel']}</a>
|
<button class="btn btn-success waves-effect waves-light"
|
||||||
|
type="submit">{Lang::T('Request OTP')}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,19 +43,25 @@
|
|||||||
<div class="panel-heading">1. {$_L['Register_Member']}</div>
|
<div class="panel-heading">1. {$_L['Register_Member']}</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<div class="md-input-container md-float-label">
|
<div class="md-input-container">
|
||||||
<input type="text" required class="md-input" id="username" value="{$username}"
|
|
||||||
placeholder="{$_L['Phone_Number']}" name="username">
|
|
||||||
<label>{$_L['Phone_Number']}</label>
|
<label>{$_L['Phone_Number']}</label>
|
||||||
|
<input type="text" required class="form-control" id="username" value="{$username}"
|
||||||
|
placeholder="{$_L['Phone_Number']}" name="username">
|
||||||
</div>
|
</div>
|
||||||
<div class="md-input-container md-float-label">
|
<div class="md-input-container md-float-label">
|
||||||
<input type="text" required class="md-input" id="fullname" value="{$fullname}"
|
|
||||||
name="fullname">
|
|
||||||
<label>{$_L['Full_Name']}</label>
|
<label>{$_L['Full_Name']}</label>
|
||||||
|
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||||
|
name="fullname">
|
||||||
|
</div>
|
||||||
|
<div class="md-input-container md-float-label">
|
||||||
|
<label>{$_L['Email']}</label>
|
||||||
|
<input type="text" required class="form-control" id="email"
|
||||||
|
placeholder="xxxxxxx@xxxx.xx" value="{$email}" name="email">
|
||||||
</div>
|
</div>
|
||||||
<div class="md-input-container md-float-label">
|
<div class="md-input-container md-float-label">
|
||||||
<input type="text" name="address" id="address" value="{$address}" class="md-input">
|
|
||||||
<label>{$_L['Address']}</label>
|
<label>{$_L['Address']}</label>
|
||||||
|
<input type="text" name="address" id="address" value="{$address}"
|
||||||
|
class="form-control">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -67,20 +73,22 @@
|
|||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<div class="md-input-container md-float-label">
|
<div class="md-input-container md-float-label">
|
||||||
<input type="password" required class="md-input" id="password" name="password">
|
|
||||||
<label>{$_L['Password']}</label>
|
<label>{$_L['Password']}</label>
|
||||||
|
<input type="password" required class="form-control" id="password" name="password">
|
||||||
</div>
|
</div>
|
||||||
<div class="md-input-container md-float-label">
|
<div class="md-input-container md-float-label">
|
||||||
<input type="password" required class="md-input" id="cpassword" name="cpassword">
|
|
||||||
<label>{$_L['Confirm_Password']}</label>
|
<label>{$_L['Confirm_Password']}</label>
|
||||||
|
<input type="password" required class="form-control" id="cpassword"
|
||||||
|
name="cpassword">
|
||||||
</div>
|
</div>
|
||||||
|
<br>
|
||||||
<div class="btn-group btn-group-justified mb15">
|
<div class="btn-group btn-group-justified mb15">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button class="btn btn-primary waves-effect waves-light"
|
<a href="{$_url}login" class="btn btn-warning">{$_L['Cancel']}</a>
|
||||||
type="submit">{$_L['Register']}</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a href="{$_url}login" class="btn btn-success">{$_L['Cancel']}</a>
|
<button class="btn btn-success waves-effect waves-light"
|
||||||
|
type="submit">{$_L['Register']}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -129,10 +129,12 @@
|
|||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[1] eq 'list'}class="active" {/if}><a
|
<li {if $_routes[1] eq 'list'}class="active" {/if}><a
|
||||||
href="{$_url}prepaid/list">{$_L['Prepaid_User']}</a></li>
|
href="{$_url}prepaid/list">{$_L['Prepaid_User']}</a></li>
|
||||||
|
{if $_c['disable_voucher'] != 'yes'}
|
||||||
<li {if $_routes[1] eq 'voucher'}class="active" {/if}><a
|
<li {if $_routes[1] eq 'voucher'}class="active" {/if}><a
|
||||||
href="{$_url}prepaid/voucher">{$_L['Prepaid_Vouchers']}</a></li>
|
href="{$_url}prepaid/voucher">{$_L['Prepaid_Vouchers']}</a></li>
|
||||||
<li {if $_routes[1] eq 'refill'}class="active" {/if}><a
|
<li {if $_routes[1] eq 'refill'}class="active" {/if}><a
|
||||||
href="{$_url}prepaid/refill">{$_L['Refill_Account']}</a></li>
|
href="{$_url}prepaid/refill">{$_L['Refill_Account']}</a></li>
|
||||||
|
{/if}
|
||||||
<li {if $_routes[1] eq 'recharge'}class="active" {/if}><a
|
<li {if $_routes[1] eq 'recharge'}class="active" {/if}><a
|
||||||
href="{$_url}prepaid/recharge">{$_L['Recharge_Account']}</a></li>
|
href="{$_url}prepaid/recharge">{$_L['Recharge_Account']}</a></li>
|
||||||
{$_MENU_PREPAID}
|
{$_MENU_PREPAID}
|
||||||
|
@ -102,12 +102,14 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_DASHBOARD}
|
{$_MENU_AFTER_DASHBOARD}
|
||||||
|
{if $_c['disable_voucher'] != 'yes'}
|
||||||
<li {if $_system_menu eq 'voucher'}class="active" {/if}>
|
<li {if $_system_menu eq 'voucher'}class="active" {/if}>
|
||||||
<a href="{$_url}voucher/activation">
|
<a href="{$_url}voucher/activation">
|
||||||
<i class="fa fa-ticket"></i>
|
<i class="fa fa-ticket"></i>
|
||||||
<span>{Lang::T('Voucher')}</span>
|
<span>{Lang::T('Voucher')}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
{/if}
|
||||||
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
|
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
|
||||||
<li {if $_system_menu eq 'package'}class="active" {/if}>
|
<li {if $_system_menu eq 'package'}class="active" {/if}>
|
||||||
<a href="{$_url}order/package">
|
<a href="{$_url}order/package">
|
||||||
|
@ -99,6 +99,16 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{/if}
|
{/if}
|
||||||
</table>
|
</table>
|
||||||
|
{if $_c['disable_voucher'] == 'yes'}
|
||||||
|
<div class="box-footer">
|
||||||
|
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
|
||||||
|
<a href="{$_url}order/package" class="btn btn-primary btn-block">
|
||||||
|
<i class="ion ion-ios-cart"></i>
|
||||||
|
{Lang::T('Order Package')}
|
||||||
|
</a>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'}
|
{if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'}
|
||||||
<script>
|
<script>
|
||||||
@ -114,6 +124,7 @@
|
|||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
<br>
|
<br>
|
||||||
|
{if $_c['disable_voucher'] != 'yes'}
|
||||||
<div class="box box-primary box-solid mb30">
|
<div class="box box-primary box-solid mb30">
|
||||||
<div class="box-header">
|
<div class="box-header">
|
||||||
<h3 class="box-title">{$_L['Voucher_Activation']}</h3>
|
<h3 class="box-title">{$_L['Voucher_Activation']}</h3>
|
||||||
@ -134,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<div class="btn-group btn-group-justified" role="group">
|
<div class="btn-group btn-group-justified" role="group">
|
||||||
<a class="btn btn-warning" href="{$_url}order/voucher">
|
<a class="btn btn-warning" href="{$_url}voucher/activation">
|
||||||
<i class="ion ion-ios-cart"></i>
|
<i class="ion ion-ios-cart"></i>
|
||||||
{$_L['Order_Voucher']}
|
{$_L['Order_Voucher']}
|
||||||
</a>
|
</a>
|
||||||
@ -147,6 +158,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{include file="sections/user-footer.tpl"}
|
{include file="sections/user-footer.tpl"}
|
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": "2023.6.20"
|
"version": "2023.7.28"
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user