woocommerce-paypal-payments/modules/ppcp-axo/resources/js/Insights/PayPalInsights.js

59 lines
1.4 KiB
JavaScript
Raw Normal View History

2024-03-25 10:28:15 +00:00
class PayPalInsights {
constructor() {
window.paypalInsightDataLayer = window.paypalInsightDataLayer || [];
document.paypalInsight = () => {
paypalInsightDataLayer.push(arguments);
}
}
/**
* @returns {PayPalInsights}
*/
2024-04-11 17:14:22 +01:00
static init() {
2024-03-25 10:28:15 +00:00
if (!PayPalInsights.instance) {
PayPalInsights.instance = new PayPalInsights();
}
return PayPalInsights.instance;
}
2024-04-11 17:14:22 +01:00
static track(eventName, data) {
PayPalInsights.init();
2024-03-25 10:28:15 +00:00
paypalInsight('event', eventName, data);
}
static config (clientId, data) {
2024-04-11 17:14:22 +01:00
PayPalInsights.init();
2024-03-25 10:28:15 +00:00
paypalInsight('config', clientId, data);
}
static setSessionId (sessionId) {
2024-04-11 17:14:22 +01:00
PayPalInsights.init();
2024-03-25 10:28:15 +00:00
paypalInsight('set', { session_id: sessionId });
}
static trackJsLoad () {
2024-04-11 17:14:22 +01:00
PayPalInsights.track('js_load', { timestamp: Date.now() });
2024-03-25 10:28:15 +00:00
}
static trackBeginCheckout (data) {
2024-04-11 17:14:22 +01:00
PayPalInsights.track('begin_checkout', data);
2024-03-25 10:28:15 +00:00
}
static trackSubmitCheckoutEmail (data) {
2024-04-11 17:14:22 +01:00
PayPalInsights.track('submit_checkout_email', data);
2024-03-25 10:28:15 +00:00
}
static trackSelectPaymentMethod (data) {
2024-04-11 17:14:22 +01:00
PayPalInsights.track('select_payment_method', data);
2024-03-25 10:28:15 +00:00
}
static trackEndCheckout (data) {
2024-04-11 17:14:22 +01:00
PayPalInsights.track('end_checkout', data);
2024-03-25 10:28:15 +00:00
}
}
export default PayPalInsights;