177 lines
4.3 KiB
JavaScript
177 lines
4.3 KiB
JavaScript
( function ( $ ) {
|
|
/* It will redirect if anyone clicked on link before ready */
|
|
$( document ).on( 'click', 'a[href*="wcf-next-step"]', function ( e ) {
|
|
e.preventDefault();
|
|
|
|
if (
|
|
'undefined' !== typeof cartflows.is_pb_preview &&
|
|
'1' === cartflows.is_pb_preview
|
|
) {
|
|
e.stopPropagation();
|
|
return;
|
|
}
|
|
|
|
window.location.href = cartflows.next_step;
|
|
|
|
return false;
|
|
} );
|
|
|
|
/* Once the link is ready this will work to stop conditional propogation*/
|
|
$( document ).on( 'click', '.wcf-next-step-link', function ( e ) {
|
|
if (
|
|
'undefined' !== typeof cartflows.is_pb_preview &&
|
|
'1' === cartflows.is_pb_preview
|
|
) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
return false;
|
|
}
|
|
} );
|
|
|
|
// Remove css when oceanwp theme is enabled.
|
|
const remove_oceanwp_custom_style = function () {
|
|
if (
|
|
'OceanWP' === cartflows.current_theme &&
|
|
'default' !== cartflows.page_template
|
|
) {
|
|
const style = document.getElementById( 'oceanwp-style-css' );
|
|
if ( null !== style ) {
|
|
style.remove();
|
|
}
|
|
}
|
|
};
|
|
|
|
const trigger_facebook_events = function () {
|
|
if (
|
|
'enable' === cartflows.fb_setting.facebook_pixel_tracking &&
|
|
cartflows.fb_setting.facebook_pixel_id !== ''
|
|
) {
|
|
const add_payment_info_event =
|
|
cartflows.fb_setting.facebook_pixel_add_payment_info;
|
|
if (
|
|
'enable' === add_payment_info_event &&
|
|
cartflows.is_checkout_page
|
|
) {
|
|
jQuery( 'form.woocommerce-checkout' ).on(
|
|
'submit',
|
|
function () {
|
|
fbq(
|
|
'track',
|
|
'AddPaymentInfo',
|
|
JSON.parse( cartflows.fb_add_payment_info_data )
|
|
);
|
|
}
|
|
);
|
|
} else if (
|
|
cartflows.is_optin &&
|
|
'enable' === cartflows.fb_setting.facebook_pixel_optin_lead
|
|
) {
|
|
jQuery( 'form.woocommerce-checkout' ).on(
|
|
'submit',
|
|
function () {
|
|
fbq( 'track', 'Lead', { plugin: 'CartFlows' } );
|
|
}
|
|
);
|
|
}
|
|
}
|
|
};
|
|
|
|
const trigger_google_events = function () {
|
|
if ( cartflows.ga_setting.enable_google_analytics === 'enable' ) {
|
|
if (
|
|
cartflows.is_checkout_page &&
|
|
'enable' === cartflows.ga_setting.enable_add_payment_info
|
|
) {
|
|
jQuery( 'form.woocommerce-checkout' ).on(
|
|
'submit',
|
|
function () {
|
|
gtag(
|
|
'event',
|
|
'add_payment_info',
|
|
JSON.parse( cartflows.add_payment_info_data )
|
|
);
|
|
}
|
|
);
|
|
} else if (
|
|
cartflows.is_optin &&
|
|
'enable' === cartflows.ga_setting.enable_optin_lead
|
|
) {
|
|
jQuery( 'form.woocommerce-checkout' ).on(
|
|
'submit',
|
|
function () {
|
|
gtag( 'event', 'Lead', { plugin: 'CartFlows' } );
|
|
}
|
|
);
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
*
|
|
* @param {string} next_step_url
|
|
* @return {string} next_step_url Modified string if query string is present.
|
|
*/
|
|
const may_be_append_query_string = function ( next_step_url ) {
|
|
// Get the URL parameters.
|
|
const urlParams = new URLSearchParams( window.location.search );
|
|
|
|
// Return the URL if no query string is present.
|
|
if ( urlParams.length <= 0 ) {
|
|
return next_step_url;
|
|
}
|
|
|
|
// Get all URL parameter keys.
|
|
const keys = urlParams.keys();
|
|
|
|
// Store all parameters temporary.
|
|
const params = {};
|
|
|
|
// Loop through all parameter as keys to make key-value pair array/object.
|
|
for ( const key of keys ) {
|
|
params[ key ] = urlParams.get( key );
|
|
}
|
|
|
|
// Convert the object to a query string.
|
|
const queryString = new URLSearchParams( params ).toString();
|
|
|
|
/**
|
|
* Append the query string to the URL
|
|
* If: No question mark is in the URL then: add the question mark before query string.
|
|
* Else: Question mark is found then: add '&' before query string..
|
|
*/
|
|
if ( next_step_url.indexOf( '?' ) === -1 ) {
|
|
next_step_url = next_step_url + '?' + queryString;
|
|
} else {
|
|
next_step_url = next_step_url + '&' + queryString;
|
|
}
|
|
|
|
return next_step_url;
|
|
};
|
|
|
|
/**
|
|
* Assign the class & link to specific button
|
|
*/
|
|
const setup_next_step_url = function () {
|
|
const next_links = $( 'a[href*="wcf-next-step"]' );
|
|
|
|
if (
|
|
next_links.length > 0 &&
|
|
'undefined' !== typeof cartflows.next_step
|
|
) {
|
|
next_links.addClass( 'wcf-next-step-link' );
|
|
next_links.attr(
|
|
'href',
|
|
may_be_append_query_string( cartflows.next_step )
|
|
);
|
|
}
|
|
};
|
|
|
|
$( function () {
|
|
setup_next_step_url();
|
|
remove_oceanwp_custom_style();
|
|
if ( '1' !== cartflows.is_pb_preview ) {
|
|
trigger_facebook_events();
|
|
trigger_google_events();
|
|
}
|
|
} );
|
|
} )( jQuery );
|