You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
12 KiB
207 lines
12 KiB
<?php
|
|
if (!defined('pp_allowed_access')) {
|
|
die('Direct access not allowed');
|
|
}
|
|
|
|
$plugin_slug = 'sms-notification';
|
|
$settings = pp_get_plugin_setting($plugin_slug);
|
|
?>
|
|
|
|
<form id="smsSettingsForm" method="post" action="">
|
|
<!-- Page Header -->
|
|
<div class="page-header">
|
|
<div class="row align-items-end">
|
|
<div class="col-sm mb-2 mb-sm-0">
|
|
<h1 class="page-header-title">SMS Notification Settings</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-8">
|
|
<div class="d-grid gap-3 gap-lg-5">
|
|
<!-- Card -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2 class="card-title h4">Gateway Configuration</h2>
|
|
</div>
|
|
|
|
<!-- Body -->
|
|
<div class="card-body">
|
|
<input type="hidden" name="action" value="plugin_update-submit">
|
|
<input type="hidden" name="plugin_slug" value="<?php echo $plugin_slug?>">
|
|
|
|
<!-- Gateway Selection -->
|
|
<div class="row mb-4">
|
|
<div class="col-sm-12">
|
|
<label for="sms_gateway" class="col-sm-12 col-form-label form-label">SMS Gateway</label>
|
|
<div class="input-group">
|
|
<select class="form-control" name="sms_gateway" id="sms_gateway" onchange="changeGatewayTab()">
|
|
<?php $gateway_value = isset($settings['sms_gateway']) ? strtolower($settings['sms_gateway']) : 'bulksmsbd'; ?>
|
|
<option value="bulksmsbd" <?php echo ($gateway_value === 'bulksmsbd') ? 'selected' : ''; ?>>BulkSMSBD</option>
|
|
<option value="mimsms" <?php echo ($gateway_value === 'mimsms') ? 'selected' : ''; ?>>MIMSMS</option>
|
|
<option value="greenweb" <?php echo ($gateway_value === 'greenweb') ? 'selected' : ''; ?>>GreenWeb</option>
|
|
</select>
|
|
</div>
|
|
<small class="text-muted">Select your preferred SMS gateway provider</small>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Gateway Tabs -->
|
|
<ul class="nav nav-tabs mb-4" id="gatewayTabs" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link <?php echo ($gateway_value === 'bulksmsbd') ? 'active' : ''; ?>" id="bulksmsbd-tab" data-bs-toggle="tab" data-bs-target="#bulksmsbd" type="button" role="tab">BulkSMSBD</button>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link <?php echo ($gateway_value === 'mimsms') ? 'active' : ''; ?>" id="mimsms-tab" data-bs-toggle="tab" data-bs-target="#mimsms" type="button" role="tab">MIMSMS</button>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link <?php echo ($gateway_value === 'greenweb') ? 'active' : ''; ?>" id="greenweb-tab" data-bs-toggle="tab" data-bs-target="#greenweb" type="button" role="tab">GreenWeb</button>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- Tab Contents -->
|
|
<div class="tab-content" id="gatewayTabContent">
|
|
<!-- BulkSMSBD Configuration -->
|
|
<div class="tab-pane fade <?php echo ($gateway_value === 'bulksmsbd') ? 'show active' : ''; ?>" id="bulksmsbd" role="tabpanel" aria-labelledby="bulksmsbd-tab">
|
|
<div class="row mb-4">
|
|
<div class="col-sm-6">
|
|
<label for="bulksmsbd_api_key" class="col-sm-12 col-form-label form-label">API Key</label>
|
|
<input type="password" class="form-control" name="bulksmsbd_api_key" id="bulksmsbd_api_key" value="<?= htmlspecialchars($settings['bulksmsbd_api_key'] ?? '') ?>">
|
|
<small class="text-muted">Get your API key from BulkSMSBD dashboard</small>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label for="bulksmsbd_sender_id" class="col-sm-12 col-form-label form-label">Sender ID</label>
|
|
<input type="text" class="form-control" name="bulksmsbd_sender_id" id="bulksmsbd_sender_id" value="<?= htmlspecialchars($settings['bulksmsbd_sender_id'] ?? '') ?>">
|
|
<small class="text-muted">Max 11 characters (approved by BulkSMSBD)</small>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-4">
|
|
<div class="col-sm-6">
|
|
<label class="col-sm-12 col-form-label form-label">Message Type</label>
|
|
<select class="form-control" name="bulksmsbd_type" id="bulksmsbd_type">
|
|
<option value="text" <?php echo (isset($settings['bulksmsbd_type']) && $settings['bulksmsbd_type'] === 'text') ? 'selected' : ''; ?>>Text (SMS)</option>
|
|
<option value="unicode" <?php echo (isset($settings['bulksmsbd_type']) && $settings['bulksmsbd_type'] === 'unicode') ? 'selected' : ''; ?>>Unicode (Bangla)</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- MIMSMS Configuration -->
|
|
<div class="tab-pane fade <?php echo ($gateway_value === 'mimsms') ? 'show active' : ''; ?>" id="mimsms" role="tabpanel" aria-labelledby="mimsms-tab">
|
|
<div class="row mb-4">
|
|
<div class="col-sm-6">
|
|
<label for="mimsms_api_key" class="col-sm-12 col-form-label form-label">API Key</label>
|
|
<input type="password" class="form-control" name="mimsms_api_key" id="mimsms_api_key" value="<?= htmlspecialchars($settings['mimsms_api_key'] ?? '') ?>">
|
|
<small class="text-muted">Get your API key from MIMSMS dashboard</small>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label for="mimsms_sender_id" class="col-sm-12 col-form-label form-label">Sender ID</label>
|
|
<input type="text" class="form-control" name="mimsms_sender_id" id="mimsms_sender_id" value="<?= htmlspecialchars($settings['mimsms_sender_id'] ?? '') ?>">
|
|
<small class="text-muted">Approved sender ID from MIMSMS</small>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-4">
|
|
<div class="col-sm-6">
|
|
<label for="mimsms_username" class="col-sm-12 col-form-label form-label">Username</label>
|
|
<input type="text" class="form-control" name="mimsms_username" id="mimsms_username" value="<?= htmlspecialchars($settings['mimsms_username'] ?? '') ?>">
|
|
<small class="text-muted">MIMSMS API endpoint</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- GreenWeb Configuration -->
|
|
<div class="tab-pane fade <?php echo ($gateway_value === 'greenweb') ? 'show active' : ''; ?>" id="greenweb" role="tabpanel" aria-labelledby="greenweb-tab">
|
|
<div class="row mb-4">
|
|
<div class="col-sm-6">
|
|
<label for="greenweb_api_token" class="col-sm-12 col-form-label form-label">API Token</label>
|
|
<input type="password" class="form-control" name="greenweb_api_token" id="greenweb_api_token" value="<?= htmlspecialchars($settings['greenweb_api_token'] ?? '') ?>">
|
|
<small class="text-muted">Get your token from GreenWeb dashboard</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Common Settings -->
|
|
<div class="card-header mt-4">
|
|
<h2 class="card-title h4">Notification Triggers</h2>
|
|
</div>
|
|
<br>
|
|
<div class="row mb-4">
|
|
<div class="col-sm-12">
|
|
<div class="form-check form-switch mb-3">
|
|
<input class="form-check-input" type="checkbox" name="enable_invoice_created" id="enable_invoice_created" <?php echo (isset($settings['enable_invoice_created']) && $settings['enable_invoice_created']) ? 'checked' : ''; ?>>
|
|
<label class="form-check-label" for="enable_invoice_created">Send SMS when invoice is created</label>
|
|
</div>
|
|
|
|
<div class="form-check form-switch mb-3">
|
|
<input class="form-check-input" type="checkbox" name="enable_transaction_complete" id="enable_transaction_complete" <?php echo (isset($settings['enable_transaction_complete']) && $settings['enable_transaction_complete']) ? 'checked' : ''; ?>>
|
|
<label class="form-check-label" for="enable_transaction_complete">Send SMS when transaction is completed</label>
|
|
</div>
|
|
|
|
<div class="form-check form-switch mb-3">
|
|
<input class="form-check-input" type="checkbox" name="enable_invoice_paid" id="enable_invoice_paid" <?php echo (isset($settings['enable_invoice_paid']) && $settings['enable_invoice_paid']) ? 'checked' : ''; ?>>
|
|
<label class="form-check-label" for="enable_invoice_paid">Send SMS when invoice is paid</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="ajaxResponse" class="mb-3"></div>
|
|
|
|
<button type="submit" class="btn btn-primary btn-primary-add">Save Settings</button>
|
|
</div>
|
|
<!-- End Body -->
|
|
</div>
|
|
<!-- End Card -->
|
|
<div id="stickyBlockEndPoint"></div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<script>
|
|
function changeGatewayTab() {
|
|
const gateway = document.getElementById('sms_gateway').value;
|
|
const tabButton = document.getElementById(`${gateway}-tab`);
|
|
if (tabButton) {
|
|
// Bootstrap 5 way to show a tab
|
|
const tab = new bootstrap.Tab(tabButton);
|
|
tab.show();
|
|
}
|
|
}
|
|
|
|
// Initialize to show the correct tab based on current selection
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
changeGatewayTab();
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
<script>
|
|
$(document).ready(function() {
|
|
$('#smsSettingsForm').on('submit', function(e) {
|
|
e.preventDefault();
|
|
|
|
document.querySelector(".btn-primary-add").innerHTML = '<div class="spinner-border text-light spinner-border-sm" role="status"> <span class="visually-hidden">Loading...</span> </div>';
|
|
|
|
$.ajax({
|
|
url: $(this).attr('action'),
|
|
type: 'POST',
|
|
data: $(this).serialize(),
|
|
dataType: 'json',
|
|
success: function(response) {
|
|
document.querySelector(".btn-primary-add").innerHTML = 'Save Settings';
|
|
|
|
if(response.status) {
|
|
$('#ajaxResponse').addClass('alert alert-success').html(response.message);
|
|
} else {
|
|
$('#ajaxResponse').addClass('alert alert-danger').html(response.message);
|
|
}
|
|
},
|
|
error: function() {
|
|
$('#ajaxResponse').addClass('alert alert-danger').html('An error occurred. Please try again.');
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|