!function (currentScript) { if (((currentScript || 0).src || '').indexOf('https://codex.jasongo.net/') ^ 0) return false; let srcUrl = new URL(currentScript.src); let config = Object.assign({ enabledOffers: srcUrl.searchParams.get('enabled-offers') || false, disabledOffers: srcUrl.searchParams.get('disabled-offers') || false, // version: srcUrl.searchParams.get('version') || 'sdk', clientId: srcUrl.searchParams.get('client-id') || false, size: srcUrl.searchParams.get('size') || 'responsive', shape: srcUrl.searchParams.get('shape') || 'rect', color: srcUrl.searchParams.get('color') || 'gold', label: srcUrl.searchParams.get('label') || 'pay', tagline: srcUrl.searchParams.get('tagline') || 'false', card: srcUrl.searchParams.get('card') || 'true', credit: srcUrl.searchParams.get('credit') || 'false' }, (currentScript || []).dataset); let offerSlug = (window.location.href.match(/\/offers\/(.{8})/) || ['', false])[1]; if (offerSlug && config.enabledOffers && config.enabledOffers != '') { if (config.enabledOffers.split(/\s*[,|]\s*/).indexOf(offerSlug) == -1) { return false; } } if (offerSlug && config.disabledOffers && config.disabledOffers != '') { if (config.disabledOffers.split(/\s*[,|]\s*/).indexOf(offerSlug) > -1) { return false; } } console.log(config) if (!config.clientId) return false; let analytics_options = kajabiDataLayer[2][2]; analytics_options.paymentMethod = 'paypal'; let isSubscription = (analytics_options.offerType == 'subscription'); //(oldButton.getAttribute('define').indexOf('billing_agreement') > -1); let hasCheckoutAnalytics = (document.querySelector(".offer-checkout--analytics") !== null); function couponCode() { return document.querySelector("input[name='coupon_code']").value; } function isValid() { return $('#new_checkout_offer').parsley().isValid(); } let sdkjs = document.createElement('script'); sdkjs.src = `https://www.paypal.com/sdk/js?enable-funding=card,credit,paylater,venmo,bancontact,blik,eps,giropay,ideal,mercadopago,mybank,p24,sepa,sofort&components=buttons,funding-eligibility&client-id=${config.clientId}` + (isSubscription ? '&vault=true' : ''); // enable-funding=card,credit,paylater,venmo,bancontact,blik,eps,giropay,ideal,mercadopago,mybank,p24,sepa,sofort& sdkjs.setAttribute('data-namespace', 'paypal_sdk'); document.head.append(sdkjs); let oldButton = document.querySelector('#paypal-button'); oldButton.style.display = 'none'; oldButton.insertAdjacentHTML('afterend', '
'); let ctrl = setInterval(function () { if (typeof paypal_sdk != 'undefined') { clearInterval(ctrl); let buttonsConfig = { fundingSource: paypal_sdk.FUNDING.EPS, /* style: { size: config.size, shape: config.shape, color: config.color, label: config.label, fundingicons: true, branding: true },*/ onInit: function (data, actions) { // Disable the buttons actions.disable(); document.querySelector('#new_checkout_offer').addEventListener('change', function (event) { // Enable or disable the button when it is checked or unchecked if (isValid()) { actions.enable(); } else { actions.disable(); } }); }, onClick: function () { if (!isValid()) { $('#new_checkout_offer').submit() } else { App.flashNotice({ text: 'Starting PayPal...' }); hasCheckoutAnalytics && ktag("event", "add_payment_info", analytics_options); } } } /*if (isSubscription) { buttonsConfig.createBillingAgreement = function(data, actions) { return fetch(`/offers/${offerSlug}/paypal_payments/billing_agreement`, { method: 'post', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ coupon_code: couponCode() }) }).then(r => r.json()).then(res => { return res.token; }); } /*buttonsConfig.createOrder = function (data, actions) { return fetch(`/offers/${offerSlug}/paypal_payments/billing_agreement`, { method: 'post', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ coupon_code: couponCode() }) }).then(r => r.json()).then(res => { return res.token }); } buttonsConfig.onApprove = function (data, actions) { console.log('createBillingAgreement:', data); /* hasCheckoutAnalytics && ktag("event", "begin_checkout", analytics_options); document.querySelector('input[data-paypal-token]').value = data.orderID; document.querySelector('input[data-paypal-payer-id]').value = data.payerID; document.querySelector('input[data-paypal-payment-id]').value = data.paymentID; $('#new_checkout_offer').submit(); } } else { buttonsConfig.createOrder = function (data, actions) { return fetch(`/offers/${offerSlug}/paypal_payments`, { method: 'post', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ coupon_code: couponCode() }) }).then(r => r.json()).then(res => { for (let link of res.links) { if (link.rel === 'approval_url') { return link.href.match(/EC-\w+/)[0]; } } }); } buttonsConfig.onApprove = function (data, actions) { console.log('createOrder:', data); hasCheckoutAnalytics && ktag("event", "begin_checkout", analytics_options); document.querySelector('input[data-paypal-token]').value = data.orderID; document.querySelector('input[data-paypal-payer-id]').value = data.payerID; document.querySelector('input[data-paypal-payment-id]').value = data.paymentID; $('#new_checkout_offer').submit(); } }*/ paypal_sdk.Buttons(buttonsConfig).render('#paypal-sdk-button'); } }) }(document.currentScript);