Dynamic Pricing & Payment
// =============================
// CCGNGS Price Timeline
// =============================
const priceTimeline = [
{date: ‘2026-01-01’, price: 688.88},
{date: ‘2027-01-01’, price: 788.88},
{date: ‘2028-01-01’, price: 888.88},
{date: ‘2029-01-01’, price: 988.88},
{date: ‘2030-01-01’, price: 1888.88}
];
let currentPrice = 388.88;// =============================
// Banner Display
// =============================
const banner = document.createElement(‘div’);
banner.id = ‘priceJumpBanner’;
banner.style.cssText = `
width:100%; padding:12px 0; background:#f59e0b; color:#000; text-align:center;
font-weight:bold; border-radius:10px; margin-bottom:15px; font-size:16px;
`;
banner.innerText = `Next Price Jump: ${priceTimeline[0].price.toFixed(2)} on ${new Date(priceTimeline[0].date).toLocaleDateString()}`;
document.getElementById(‘bbb-payment-box’).insertBefore(banner, document.getElementById(‘bbb-payment-box’).firstChild);function updatePrice() {
const now = new Date();
for (let i = 0; i < priceTimeline.length; i++) {
const jumpDate = new Date(priceTimeline[i].date);
if (now >= jumpDate) {
currentPrice = priceTimeline[i].price;
document.getElementById(‘localPrice’).innerText = `RM${currentPrice.toFixed(2)} / USD${currentPrice.toFixed(2)}`;
}
}
// Update banner
const nextJump = priceTimeline.find(j => new Date(j.date) > now);
banner.innerText = nextJump ? `Next Price Jump: ${nextJump.price.toFixed(2)} on ${new Date(nextJump.date).toLocaleDateString()}` : ‘Current Price is at the MAX level!’;
}
setInterval(updatePrice, 60000);
updatePrice();// =============================
// Flash Price Highlight
// =============================
function flashPrice() {
const priceElement = document.getElementById(‘localPrice’);
const originalColor = priceElement.style.color;
priceElement.style.color = ‘#f5d34f’;
setTimeout(() => { priceElement.style.color = originalColor; }, 5000);
}// =============================
// Price Jump Alert
// =============================
let lastKnownPrice = currentPrice;
function checkPriceJump() {
if (currentPrice !== lastKnownPrice) {
alert(`🚀 Heads-up Brader! The BBB Lifetime Membership price just jumped to ${document.getElementById(‘localPrice’).innerText}!`);
flashPrice();
lastKnownPrice = currentPrice;
updatePrice();
}
}
setInterval(checkPriceJump, 30000);// =============================
// STRIPE Checkout (Dynamic Price)
// =============================
document.getElementById(‘bbbStripeBtn’).addEventListener(‘click’, async () => {
const res = await fetch(‘/wp-json/bbb-payments/v1/stripe/create-checkout’, {
method:’POST’, headers:{‘Content-Type’:’application/json’},
body: JSON.stringify({
name: document.getElementById(‘bbb_name’).value,
email: document.getElementById(‘bbb_email’).value,
phone: document.getElementById(‘bbb_phone’).value,
amount: currentPrice
})
});
const data = await res.json();
return stripe.redirectToCheckout({ sessionId: data.sessionId });
});// =============================
// PAYPAL Dynamic Pricing
// =============================
paypal.Buttons({
createOrder: function() {
return fetch(‘/wp-json/bbb-payments/v1/paypal/create’, {
method:’POST’, headers:{‘Content-Type’:’application/json’},
body: JSON.stringify({
name: document.getElementById(‘bbb_name’).value,
email: document.getElementById(‘bbb_email’).value,
phone: document.getElementById(‘bbb_phone’).value,
amount: currentPrice
})
}).then(res => res.json()).then(data => data.id);
},
onApprove: function(data) {
return fetch(`/wp-json/bbb-payments/v1/paypal/capture?orderID=${data.orderID}`)
.then(res => res.json())
.then(result => { alert(‘Payment successful! Welcome to BBB VIP!’); window.location.href=’/vip-dashboard’; });
}
}).render(‘#paypal-button-container’);// =============================
// BILLPLZ FPX (Dynamic)
// =============================
document.getElementById(‘bbbBillplzBtn’).addEventListener(‘click’, async () => {
const res = await fetch(‘/wp-json/bbb-payments/v1/billplz/create’, {
method:’POST’, headers:{‘Content-Type’:’application/json’},
body: JSON.stringify({
name: document.getElementById(‘bbb_name’).value,
email: document.getElementById(‘bbb_email’).value,
phone: document.getElementById(‘bbb_phone’).value,
amount: currentPrice
})
});
const data = await res.json();
window.location.href = data.url;
});// =============================
// QR Proof Upload
// =============================
document.getElementById(‘bbbQRSubmit’).addEventListener(‘click’, async () => {
const file = document.getElementById(‘bbb_qr_upload’).files[0];
if (!file) return alert(‘Please select an image first’);
const formData = new FormData();
formData.append(‘file’, file);
formData.append(‘name’, document.getElementById(‘bbb_name’).value);
formData.append(’email’, document.getElementById(‘bbb_email’).value);
formData.append(‘phone’, document.getElementById(‘bbb_phone’).value);
formData.append(‘amount’, currentPrice);const res = await fetch(‘/wp-json/bbb-payments/v1/qr/upload’, { method:’POST’, body:formData });
const out = await res.json();
alert(out.message);
});