diff --git a/admin/assets/css/page-coupons.css b/admin/assets/css/page-coupons.css
index e188f03..11c491b 100644
--- a/admin/assets/css/page-coupons.css
+++ b/admin/assets/css/page-coupons.css
@@ -20,20 +20,23 @@ a#add-new-coupon:hover {
border: 1px solid #b7b7b7!important;
}
-td.gridjs-td[data-column-id=productRelation] > span {
+td.gridjs-td[data-column-id=amount] > span {
display: flex;
gap: .5em;
flex-wrap: wrap;
+ justify-content: center;
}
-.product_related {
- background-color: #dedede;
- padding: 5px 7px;
+td.gridjs-td[data-column-id=amount] > span > span {
+ display: flex;
+ gap: .5em;
+ align-items: center;
+ background-color: #f8f8f8;
+ padding: 3px 5px;
border-radius: 5px;
-}
-span.product_related img {
- margin-bottom: -3px;
+ box-shadow: 0 3px 5px #ccc;
}
th.gridjs-th[data-column-id=id],
+th.gridjs-th[data-column-id=amount],
th.gridjs-th[data-column-id=usages],
th.gridjs-th[data-column-id=type],
th.gridjs-th[data-column-id=dateLimit],
@@ -41,17 +44,13 @@ th.gridjs-th[data-column-id=status] {
text-align: center;
}
td.gridjs-td[data-column-id=id],
+td.gridjs-td[data-column-id=amount],
td.gridjs-td[data-column-id=usages],
td.gridjs-td[data-column-id=type],
td.gridjs-td[data-column-id=dateLimit] {
text-align: center;
}
-th.gridjs-th[data-column-id=amount],
-td.gridjs-td[data-column-id=amount] {
- text-align: right;
-}
-
span:has(.status-label) {
width: 100%;
display: block;
diff --git a/admin/assets/js/page-coupons.js b/admin/assets/js/page-coupons.js
index ba3c84b..79c5cbd 100644
--- a/admin/assets/js/page-coupons.js
+++ b/admin/assets/js/page-coupons.js
@@ -1,49 +1,3 @@
-document.addEventListener('DOMContentLoaded', function () {
- const choices = new Choices('#products', {
- searchEnabled: true,
- searchChoices: false, // Prevent Choices.js from filtering the local list
- searchResultLimit: 10, // Optional: Limit visible results
- placeholder: true,
- placeholderValue: formipay_coupons_page.filter_form.products.placeholder,
- noResultsText: formipay_coupons_page.filter_form.products.noresult_text,
- itemSelectText: '',
- });
-
- const searchInput = document.querySelector('.choices__input--cloned');
- let typingTimer;
-
- searchInput.addEventListener('input', function () {
- const query = searchInput.value;
-
- if (query.length >= 3) {
- clearTimeout(typingTimer);
- typingTimer = setTimeout(() => {
- fetchChoices(query);
- }, 300); // Add a debounce delay
- }
- });
-
- function fetchChoices(query) {
- fetch(formipay_coupons_page.ajax_url, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
- },
- body: new URLSearchParams({
- action: 'formipay_coupon_get_products',
- search: query,
- _wpnonce: formipay_coupons_page.nonce
- }),
- })
- .then((response) => response.json())
- .then((data) => {
- choices.clearChoices();
- choices.setChoices(data, 'value', 'label', false);
- })
- .catch((error) => console.error('Error:', error));
- }
-});
-
jQuery(function($){
let formipay_coupon_table_grid = new gridjs.Grid({
@@ -56,7 +10,7 @@ jQuery(function($){
}
return data.results.map(
- coupon => [coupon.ID, coupon.ID, coupon.code, coupon.products, coupon.value, coupon.type, coupon.usages, coupon.date_limit, coupon.status, coupon.case_sensitive]
+ coupon => [coupon.ID, coupon.ID, coupon.code, coupon.value, coupon.type, coupon.usages, coupon.date_limit, coupon.status, coupon.case_sensitive]
);
},
total: data => data.total
@@ -83,40 +37,23 @@ jQuery(function($){
`)
},
- {
- name: formipay_coupons_page.columns.products,
- formatter: (products, row) => {
-
- let html = '';
-
- // Loop through each product in the products array
- if(products.length > 0){
- products.forEach(product => {
- if (product) {
- const currencyDetails = product.currency.split(':::');
- const currencyCode = currencyDetails[0];
- const currencySymbol = currencyDetails[2];
-
- html += `
-
- `;
- }
- });
- }
-
- return gridjs.html(html);
-
- }
- },
{
name: formipay_coupons_page.columns.amount,
- formatter: (_, row) => numberFormat(_)
+ formatter: (_, row) => {
+ var amount = 'unset';
+ if(row.cells[4].data === 'Percentage') {
+ amount = numberFormat(_)+'%';
+ }
+ if(row.cells[4].data === 'Fixed'){
+ amount = '';
+ _.forEach(function(currency){
+ const splitRaw = currency.raw.split(':::');
+ const symbol = splitRaw[2] ? splitRaw[2] : splitRaw[0];
+ amount += `${symbol} ${currency.amount}`;
+ })
+ }
+ return gridjs.html(amount);
+ }
},
{
name: formipay_coupons_page.columns.type,
@@ -215,16 +152,16 @@ jQuery(function($){
function refresh_table_with_filter() {
formipay_coupon_table_grid.updateConfig({
server: {
- url: formipay_coupons_page.ajax_url+'?action=formipay-tabledata-coupons&product='+document.getElementById('products').value+'&search='+document.getElementById('keyword').value+'&_wpnonce='+formipay_coupons_page.nonce,
+ url: formipay_coupons_page.ajax_url+'?action=formipay-tabledata-coupons&search='+document.getElementById('keyword').value+'&_wpnonce='+formipay_coupons_page.nonce,
then: data => data.results.map(
- coupon => [coupon.ID, coupon.ID, coupon.code, coupon.products, coupon.value, coupon.type, coupon.usages, coupon.date_limit, coupon.status, coupon.case_sensitive]
+ coupon => [coupon.ID, coupon.ID, coupon.code, coupon.value, coupon.type, coupon.usages, coupon.date_limit, coupon.status, coupon.case_sensitive]
),
total: data => data.total
}
}).forceRender();
}
- $('.form-tool, #products, #post_status').on('change', function(){
+ $('.form-tool, #post_status').on('change', function(){
refresh_table_with_filter();
});
diff --git a/admin/page-coupons.php b/admin/page-coupons.php
index 8b71160..ba448c5 100644
--- a/admin/page-coupons.php
+++ b/admin/page-coupons.php
@@ -26,9 +26,6 @@