File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/assets/js/automatewoo-presubmit.js
jQuery(function($) {
if ( typeof automatewoo_presubmit_params === 'undefined' ) {
return false;
}
var params = automatewoo_presubmit_params;
var guest_id = parseInt( params.guest_id );
var email = '';
var $checkout_form = $( 'form.checkout' );
var email_fields = params.email_capture_selectors;
var checkout_fields = params.checkout_capture_selectors;
var checkout_fields_data = {};
var language = params.language;
var capture_email_xhr;
$.each( checkout_fields, function( i, field_name ) {
checkout_fields_data[field_name] = '';
});
function captureEmail() {
if ( ! $(this).val() || email === $(this).val() ) {
return;
}
email = $(this).val();
var data = {
email: email,
language: language,
checkout_fields: getCheckoutFieldValues()
};
if ( capture_email_xhr ) {
capture_email_xhr.abort();
}
capture_email_xhr = $.post( params.ajax_url.toString().replace( '%%endpoint%%', 'capture_email' ), data, function( response ) {
if ( response && response.success ) {
guest_id = response.data.guest_id;
}
});
}
function captureCheckoutField() {
var field_name = $(this).attr( 'name' );
var field_value = $(this).val();
if ( ! field_name || checkout_fields.indexOf( field_name ) === -1 ) {
return;
}
// Don't capture if the field is empty or hasn't changed
if ( ! field_value || checkout_fields_data[field_name] === field_value ) {
return;
}
checkout_fields_data[field_name] = field_value;
if ( guest_id ) {
$.post( params.ajax_url.toString().replace( '%%endpoint%%', 'capture_checkout_field' ), {
guest_id: guest_id,
field_name: field_name,
field_value: field_value
});
}
}
/**
* Get the current values for checkout fields.
*
* @return object
*/
function getCheckoutFieldValues() {
var fields = {};
$.each( checkout_fields, function( i, field_name ) {
fields[field_name] = $('form.woocommerce-checkout [name="'+field_name+'"]').val();
});
return fields;
}
$(document).on( 'blur change', email_fields.join(', '), captureEmail );
$checkout_form.on( 'change', 'select', captureCheckoutField );
$checkout_form.on( 'blur change', '.input-text', captureCheckoutField );
});