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); });
Translate »
滚动至顶部