/**
* All Admin Javascript Code here
*
* Javascript code will be written here
*
* @package BDPaymentsGateway
*/
jQuery(document).ready(
function ($) {
// QR Code Image Upload
$(document).on(
'click', '.add_qr_c_img', function (e) {
var id = $(this).data('target');
var qr = $(this).data('qr');
var image = wp.media(
{
title: 'Upload Image',
multiple: false,
}
).open().on(
'select', function (e) {
var uploaded_img = image.state().get('selection').first();
var img_url = uploaded_img.toJSON().url;
$(id).val(img_url);
$(qr).html('');
$('.add_qr_c_img').val('Edit Image');
}
);
}
);
// Page detection
var page = window.location.href;
var isStatsPage = page.indexOf('bangladeshi-payment-gateways-statistics') > -1;
var isTransPage = page.indexOf('bangladeshi-payment-gateways-transactions') > -1;
var isMigrationPage = page.indexOf('bangladeshi-payment-gateways-hpos-migration') > -1;
/**
* Statistics Page
*/
if (isStatsPage && typeof bdpgAdmin !== 'undefined') {
var currentPage = 1;
// Load stats on page load
loadStats();
// Filter button click
$('#bdpg-stats-filter').on('click', function() {
loadStats();
});
// Reset button click
$('#bdpg-stats-reset').on('click', function() {
$('#bdpg-stats-date-from').val('');
$('#bdpg-stats-date-to').val('');
loadStats();
});
/**
* Load statistics via AJAX
*/
function loadStats() {
var dateFrom = $('#bdpg-stats-date-from').val();
var dateTo = $('#bdpg-stats-date-to').val();
// Show loading state
$('.bdpg-stat-count').html('');
$('.bdpg-stat-amount').text(bdpgAdmin.strings.loading);
$.ajax({
url: bdpgAdmin.ajax_url,
type: 'POST',
data: {
action: 'bdpg_get_stats',
nonce: bdpgAdmin.nonce,
date_from: dateFrom,
date_to: dateTo
},
success: function(response) {
if (response.success) {
updateStatsCards(response.data);
} else {
showError(response.data.message || bdpgAdmin.strings.no_data);
}
},
error: function() {
showError(bdpgAdmin.strings.no_data);
}
});
}
/**
* Update statistics cards
*/
function updateStatsCards(stats) {
var gateways = ['bkash', 'rocket', 'nagad', 'upay'];
// Update individual gateway cards
gateways.forEach(function(gateway) {
var count = stats[gateway] ? stats[gateway].count : 0;
var amount = stats[gateway] ? stats[gateway].total_amount : 0;
$('#bdpg-stat-' + gateway + '-count').text(count + ' ' + (count === 1 ? 'Order' : 'Orders'));
$('#bdpg-stat-' + gateway + '-amount').text(formatCurrency(amount));
});
// Update total card
var totalCount = stats.total ? stats.total.count : 0;
var totalAmount = stats.total ? stats.total.total_amount : 0;
$('#bdpg-stat-total-count').text(totalCount + ' ' + (totalCount === 1 ? 'Order' : 'Orders'));
$('#bdpg-stat-total-amount').text(formatCurrency(totalAmount));
}
}
/**
* Transactions Page
*/
if (isTransPage && typeof bdpgAdmin !== 'undefined') {
var currentPage = 1;
var totalPages = 1;
var totalCount = 0;
var perPage = 20;
// Load transactions on page load
loadTransactions();
// Filter button click
$('#bdpg-trans-filter').on('click', function() {
currentPage = 1;
loadTransactions();
});
// Reset button click
$('#bdpg-trans-reset').on('click', function() {
$('#bdpg-trans-date-from').val('');
$('#bdpg-trans-date-to').val('');
$('#bdpg-trans-gateway').val('');
currentPage = 1;
loadTransactions();
});
// Pagination
$('#bdpg-prev-page').on('click', function() {
if (currentPage > 1) {
currentPage--;
loadTransactions();
}
});
$('#bdpg-next-page').on('click', function() {
if (currentPage < totalPages) {
currentPage++;
loadTransactions();
}
});
// Export buttons
$('#bdpg-export-csv').on('click', function() {
exportTransactions('csv');
});
$('#bdpg-export-pdf').on('click', function() {
exportTransactions('pdf');
});
/**
* Load transactions via AJAX
*/
function loadTransactions() {
var dateFrom = $('#bdpg-trans-date-from').val();
var dateTo = $('#bdpg-trans-date-to').val();
var gateway = $('#bdpg-trans-gateway').val();
// Show loading state
$('#bdpg-transactions-body').html(
'
' + bdpgAdmin.strings.no_data + '
' + '