- WordPress core y plugins - Tema Twenty Twenty-Four configurado - Plugin allow-unfiltered-html.php simplificado - .gitignore configurado para excluir wp-config.php y uploads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
778 lines
32 KiB
JavaScript
Executable File
778 lines
32 KiB
JavaScript
Executable File
var BWFAN_Public;
|
|
(function ($) {
|
|
"use strict";
|
|
/* Serialize the form object */
|
|
$.fn.bwfanac_serializeAndEncode = function () {
|
|
return $.map(this.serializeArray(), function (val) {
|
|
var field = $("input[name='" + val.name + "']");
|
|
if (field.attr('type') == 'checkbox') {
|
|
if (field.prop("checked")) {
|
|
return [val.name, encodeURIComponent('1')].join('=');
|
|
} else {
|
|
return [val.name, encodeURIComponent('0')].join('=');
|
|
}
|
|
} else {
|
|
return [val.name, encodeURIComponent(val.value)].join('=');
|
|
}
|
|
}
|
|
).join('&');
|
|
};
|
|
|
|
BWFAN_Public = {
|
|
|
|
checkout_form: $('form.checkout'),
|
|
last_edit_field: '',
|
|
current_step: '',
|
|
checkout_fields_data: {},
|
|
capture_email_xhr: null,
|
|
checkout_fields: [],
|
|
|
|
init: function () {
|
|
this.checkout_fields = [
|
|
'billing_first_name',
|
|
'billing_last_name',
|
|
'billing_company',
|
|
'billing_phone',
|
|
'billing_country',
|
|
'billing_address_1',
|
|
'billing_address_2',
|
|
'billing_city',
|
|
'billing_state',
|
|
'billing_postcode',
|
|
'shipping_first_name',
|
|
'shipping_last_name',
|
|
'shipping_company',
|
|
'shipping_country',
|
|
'shipping_address_1',
|
|
'shipping_address_2',
|
|
'shipping_city',
|
|
'shipping_state',
|
|
'shipping_postcode',
|
|
'shipping_phone',
|
|
'ship_to_different_address',
|
|
'shipping_same_as_billing',
|
|
'billing_same_as_shipping',
|
|
'bwfan_birthday_date_mm',
|
|
'bwfan_birthday_date_dd',
|
|
'bwfan_birthday_date_yy',
|
|
];
|
|
|
|
if (bwfanParamspublic.bwfan_custom_checkout_field != undefined && bwfanParamspublic.bwfan_custom_checkout_field != null) {
|
|
this.checkout_fields = this.union_arrays(this.checkout_fields, bwfanParamspublic.bwfan_custom_checkout_field);
|
|
}
|
|
|
|
$.each(BWFAN_Public.checkout_fields, function (i, field_name) {
|
|
BWFAN_Public.checkout_fields_data[field_name] = '';
|
|
});
|
|
|
|
this.checkout_form.find('input,select').on('change', function () {
|
|
var id = $(this).attr('id');
|
|
if ("undefined" !== id) {
|
|
BWFAN_Public.last_edit_field = id;
|
|
}
|
|
});
|
|
|
|
|
|
},
|
|
bwfan_get_cookie: function (cname) {
|
|
var name = cname + "=";
|
|
var ca = document.cookie.split(';');
|
|
for (var i = 0; i < ca.length; i++) {
|
|
var c = ca[i].trim();
|
|
if (c.indexOf(name) !== 0) {
|
|
continue;
|
|
}
|
|
var c_val = c.substring(name.length, c.length);
|
|
try {
|
|
c_val = decodeURIComponent(c_val);
|
|
} catch (e) {
|
|
console.log("Error occurred while decoding (" + c + "). Error is: " + e.message);
|
|
}
|
|
return c_val;
|
|
}
|
|
return "";
|
|
},
|
|
bwfan_check_for_checkout_fields: function () {
|
|
if ($('.wfacp_page').length === 0) {
|
|
return;
|
|
}
|
|
var checkout_fields_data = bwfanParamspublic.bwfan_checkout_js_data;
|
|
if ('no' === checkout_fields_data) {
|
|
return;
|
|
}
|
|
var localstorage_data = window.localStorage.getItem('wfacp_form_values');
|
|
if (null == localstorage_data) {
|
|
localstorage_data = "";
|
|
}
|
|
var final_data = checkout_fields_data.fields;
|
|
|
|
if ('' !== localstorage_data) {
|
|
localstorage_data = JSON.parse(localstorage_data);
|
|
for (var key in localstorage_data) {
|
|
|
|
if (localstorage_data.hasOwnProperty(key)) {
|
|
final_data[key] = localstorage_data[key];
|
|
}
|
|
}
|
|
|
|
}
|
|
if (final_data.hasOwnProperty('shipping_method')) {
|
|
delete final_data.shipping_method;
|
|
}
|
|
|
|
if (final_data.hasOwnProperty('ship_to_different_address')) {
|
|
$('#ship-to-different-address-checkbox').prop('checked', true).trigger('change');
|
|
delete final_data.shipping_method;
|
|
}
|
|
|
|
window.localStorage.setItem('wfacp_form_values', JSON.stringify(final_data));
|
|
populate_fields_value();
|
|
},
|
|
urlParam: function (name) {
|
|
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
|
|
var value = 'undefined';
|
|
|
|
if (null !== results) {
|
|
value = results[1];
|
|
}
|
|
|
|
return value;
|
|
},
|
|
bwfan_capture_email: function () {
|
|
$(document).on('focusout', '#billing_email', function () {
|
|
BWFAN_Public.bwfan_get_checkout_data();
|
|
}
|
|
);
|
|
|
|
var billing_email = jQuery('#billing_email').val();
|
|
if (billing_email !== '') {
|
|
BWFAN_Public.bwfan_capture_data_on_page_load();
|
|
BWFAN_Public.bwfan_process_email(billing_email);
|
|
}
|
|
},
|
|
bwfan_get_checkout_data: function () {
|
|
var email = $('#billing_email').val();
|
|
if (email !== '') {
|
|
BWFAN_Public.bwfan_process_email(email);
|
|
}
|
|
},
|
|
bwfan_capture_data_on_page_load: function () {
|
|
$.each(BWFAN_Public.checkout_fields, function (i, field_name) {
|
|
var $this = $('#' + field_name);
|
|
BWFAN_Public.checkout_fields_data[field_name] = $this.val();
|
|
});
|
|
},
|
|
bwfanUpdateOnAddressCheckbox: function ( field_name, field_value ) {
|
|
var checkout_formdata = BWFAN_Public.checkout_form.bwfanac_serializeAndEncode();
|
|
checkout_formdata = bwfanac_deserialize_obj(checkout_formdata);
|
|
checkout_formdata[field_name] = field_value;
|
|
if (
|
|
! (( $('#ship-to-different-address-checkbox').length && $('#ship-to-different-address-checkbox').is(':checked') && !$('.wfacp_page').length ) ||
|
|
$('#billing_same_as_shipping').length && $('#billing_same_as_shipping').is(':checked') ||
|
|
$('#shipping_same_as_billing').length && $('#shipping_same_as_billing').is(':checked'))
|
|
) {
|
|
for (var i = 0; i < BWFAN_Public.checkout_fields.length; i++) {
|
|
let field = BWFAN_Public.checkout_fields[i];
|
|
var fields = '';
|
|
|
|
if (checkout_formdata[field] && ($('#shipping_same_as_billing').length && !$('#shipping_same_as_billing').is(':checked')) || // For Aero Checkout - if shipping same as billing checkbox exists and is not checked
|
|
(!$('#ship-to-different-address-checkbox').is(':checked')) ) {
|
|
fields = field.replace('billing_', 'shipping_');
|
|
}
|
|
if (checkout_formdata[field] && ( $('#billing_same_as_shipping').length && !$('#billing_same_as_shipping').is(':checked' ) )) {
|
|
fields = field.replace('shipping_', 'billing_');
|
|
}
|
|
|
|
checkout_formdata[fields] = checkout_formdata[field];
|
|
}
|
|
|
|
|
|
}
|
|
BWFAN_Public.checkout_fields_data = checkout_formdata;
|
|
},
|
|
bwfan_captureCheckoutField: function () {
|
|
var field_name = $(this).attr('name');
|
|
if (!field_name) {
|
|
return;
|
|
}
|
|
|
|
var field_value = $(this).val();
|
|
|
|
/** for checking checkbox fields **/
|
|
if ($(this).attr('type') == 'checkbox') {
|
|
field_value = $(this).prop('checked') ? 1 : 0;
|
|
}
|
|
|
|
if (BWFAN_Public.checkout_fields.indexOf(field_name) === -1) {
|
|
return;
|
|
}
|
|
|
|
if (BWFAN_Public.checkout_fields_data[field_name] === field_value) {
|
|
return;
|
|
}
|
|
|
|
if ( ['ship_to_different_address', 'billing_same_as_shipping', 'shipping_same_as_billing'].includes( field_name ) ) {
|
|
setTimeout(function () {
|
|
BWFAN_Public.bwfanUpdateOnAddressCheckbox(field_name, field_value);
|
|
}, 200);
|
|
return;
|
|
}
|
|
BWFAN_Public.checkout_fields_data[field_name] = field_value;
|
|
|
|
// For WooCommerce - shipping same as billing
|
|
if ($('#ship-to-different-address-checkbox').length) {
|
|
BWFAN_Public.checkout_fields_data['ship_to_different_address'] = $('#ship-to-different-address-checkbox').is(':checked') ? 1 : 0;
|
|
}
|
|
|
|
// For AeroCheckout - billing same as shipping
|
|
if ($('#billing_same_as_shipping').length) {
|
|
BWFAN_Public.checkout_fields_data['billing_same_as_shipping'] = $('#billing_same_as_shipping').is(':checked') ? 1 : 0;
|
|
}
|
|
|
|
// For AeroCheckout - shipping same as billing
|
|
if ($('#shipping_same_as_billing').length) {
|
|
BWFAN_Public.checkout_fields_data['shipping_same_as_billing'] = $('#shipping_same_as_billing').is(':checked') ? 1 : 0;
|
|
}
|
|
|
|
var field = '';
|
|
|
|
// For Aero Checkout - if billing same as shipping checkbox exists and is not checked
|
|
if ($('#billing_same_as_shipping').length && !$('#billing_same_as_shipping').is(':checked')) {
|
|
if (field_name.indexOf('shipping_') === 0) {
|
|
field = field_name.replace('shipping_', 'billing_');
|
|
}
|
|
}
|
|
|
|
if (
|
|
($('#shipping_same_as_billing').length && !$('#shipping_same_as_billing').is(':checked')) || // For Aero Checkout - if shipping same as billing checkbox exists and is not checked
|
|
(!$('#ship-to-different-address-checkbox').is(':checked')) // For WooCommerce native checkout
|
|
) {
|
|
if (field_name.indexOf('billing_') === 0) {
|
|
field = field_name.replace('billing_', 'shipping_');
|
|
}
|
|
}
|
|
|
|
// For Aero Checkout - if billing/shipping same as shipping/billing checkbox not exists
|
|
if(!$('#shipping_same_as_billing').length && !$('#billing_same_as_shipping').length && $('.wfacp_page').length) {
|
|
if (field_name.indexOf('billing_') === 0) {
|
|
field = field_name.replace('billing_', 'shipping_');
|
|
}
|
|
if (field_name.indexOf('shipping_') === 0) {
|
|
field = field_name.replace('shipping_', 'billing_');
|
|
}
|
|
}
|
|
|
|
BWFAN_Public.checkout_fields_data[field] = field_value;
|
|
},
|
|
bwfan_process_email: async function (email) {
|
|
if ('undefined' === typeof email) {
|
|
return;
|
|
}
|
|
if (('0' == bwfanParamspublic.bwfan_ab_enable || bwfanParamspublic.bwfan_ab_enable == "")) {
|
|
return;
|
|
}
|
|
/**
|
|
* Removed abort as it was making a loop when bonanza is enabled
|
|
*/
|
|
if (null !== BWFAN_Public.capture_email_xhr) {
|
|
return;
|
|
}
|
|
if ('' === email) {
|
|
return;
|
|
}
|
|
if ($('#bwfan_gdpr_consent').length && 1 != $('#bwfan_gdpr_consent').val()) {
|
|
return;
|
|
}
|
|
|
|
var aero_id = ($('#wfacp_aero_checkout_id').length > 0) ? $('#wfacp_aero_checkout_id').attr('content') : '';
|
|
var step = '';
|
|
if (aero_id) {
|
|
step = (BWFAN_Public.current_step) ? BWFAN_Public.current_step : 'single_step';
|
|
}
|
|
|
|
var timezone = '';
|
|
|
|
if (typeof Intl === "object" || typeof Intl.DateTimeFormat() === "object") {
|
|
var resolved = Intl.DateTimeFormat().resolvedOptions();
|
|
if (resolved.hasOwnProperty('timeZone')) {
|
|
timezone = resolved.timeZone;
|
|
}
|
|
}
|
|
|
|
var utm_source = this.bwfan_get_cookie('utm_source');
|
|
var utm_term = this.bwfan_get_cookie('utm_term');
|
|
var utm_campaign = this.bwfan_get_cookie('utm_campaign');
|
|
var utm_medium = this.bwfan_get_cookie('utm_medium');
|
|
var utm_content = this.bwfan_get_cookie('utm_content');
|
|
if ('' != utm_source || '' != utm_term || '' != utm_campaign || '' != utm_medium || '' != utm_content) {
|
|
BWFAN_Public.checkout_fields_data['handle_utm_grabber'] = {
|
|
'utm_source': utm_source,
|
|
'utm_term': utm_term,
|
|
'utm_campaign': utm_campaign,
|
|
'utm_medium': utm_medium,
|
|
'utm_content': utm_content,
|
|
};
|
|
}
|
|
|
|
var pushengage_token = await BWFAN_Public.getPushToken();
|
|
BWFAN_Public.capture_email_xhr = $.post(bwfanParamspublic.wc_ajax_url.toString().replace('%%endpoint%%', 'bwfan_insert_abandoned_cart'), {
|
|
'email': email,
|
|
'action': 'bwfan_insert_abandoned_cart',
|
|
'checkout_fields_data': BWFAN_Public.checkout_fields_data,
|
|
'last_edit_field': BWFAN_Public.last_edit_field,
|
|
'current_step': step,
|
|
'current_page_id': bwfanParamspublic.current_page_id,
|
|
'timezone': timezone,
|
|
'aerocheckout_page_id': aero_id,
|
|
'pushengage_token': pushengage_token,
|
|
'_wpnonce': bwfanParamspublic.ajax_nonce
|
|
}, function (res) {
|
|
if (parseInt(res.id) > 0 && 0 === $('#bwfan_cart_id').length) {
|
|
var cartIdHtml = '<input type="hidden" id="bwfan_cart_id" name="bwfan_cart_id" value="' + res.id + '" />';
|
|
$('#billing_email_field').after(cartIdHtml);
|
|
console.log('Cart ID: ' + res.id + ' captured.');
|
|
}
|
|
BWFAN_Public.capture_email_xhr = null;
|
|
}
|
|
);
|
|
},
|
|
|
|
union_arrays: function (x, y) {
|
|
var obj = {};
|
|
for (var i = x.length - 1; i >= 0; --i)
|
|
obj[x[i]] = x[i];
|
|
for (var i = y.length - 1; i >= 0; --i)
|
|
obj[y[i]] = y[i];
|
|
var res = [];
|
|
for (var k in obj) {
|
|
if (obj.hasOwnProperty(k))
|
|
res.push(obj[k]);
|
|
}
|
|
return res;
|
|
},
|
|
|
|
getPushToken: async function () {
|
|
try {
|
|
const subscriberID = await window.PushEngage.getSubscriberId();
|
|
return subscriberID;
|
|
} catch (error) {
|
|
|
|
}
|
|
return null;
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Abandoned cart JS Function Initiate here
|
|
*/
|
|
BWFAN_Public.abandoned_cart = function () {
|
|
if ('0' != bwfanParamspublic.bwfan_ab_enable && bwfanParamspublic.bwfan_ab_enable != "") {
|
|
BWFAN_Public.bwfan_capture_email();
|
|
}
|
|
};
|
|
|
|
BWFAN_Public.get_selected_unsubscribe_lists = function () {
|
|
const enabled = $('#bwfan-unsubscribe-lists').length > 0;
|
|
if (!enabled) {
|
|
return [];
|
|
}
|
|
|
|
const lists = [];
|
|
$('.bwfan-unsubscribe-list-checkbox input').each(function () {
|
|
if ($(this).attr('id') === 'bwfan-list-unsubscribe-all') {
|
|
$(this).is(':checked') && lists.push('all');
|
|
return true;
|
|
}
|
|
|
|
if (!$(this).is(':checked')) {
|
|
lists.push(parseInt($(this).val()));
|
|
}
|
|
});
|
|
return lists;
|
|
};
|
|
|
|
/**
|
|
* Unsubscribe event to unsubscribe user on a link click
|
|
*/
|
|
BWFAN_Public.unsubscribe_event = function () {
|
|
$('#bwfan_unsubscribe').on('click', function (event) {
|
|
event.preventDefault();
|
|
var $this = $(this);
|
|
if ($this.hasClass('bwfan_loading')) {
|
|
return;
|
|
}
|
|
$this.addClass('bwfan_loading');
|
|
|
|
var urlParams = new URLSearchParams(window.location.search);
|
|
|
|
var recipient = $('#bwfan_unsubscribe_recipient');
|
|
recipient = (0 === recipient.length) ? urlParams.get('subscriber_recipient') : recipient.html();
|
|
|
|
var automation_id = $('#bwfan_automation_id');
|
|
automation_id = (0 === automation_id.length) ? urlParams.get('automation_id') : automation_id.val();
|
|
|
|
var broadcast_id = $('#bwfan_broadcast_id');
|
|
broadcast_id = (0 === broadcast_id.length) ? urlParams.get('broadcast_id') : broadcast_id.val();
|
|
|
|
var form_feed_id = $('#bwfan_form_feed_id');
|
|
form_feed_id = (0 === form_feed_id.length) ? urlParams.get('form_feed_id') : form_feed_id.val();
|
|
|
|
var sid = $('#bwfan_sid');
|
|
sid = (0 === sid.length) ? urlParams.get('sid') : sid.val();
|
|
|
|
var oneClick = $('#bwfan_one_click').val();
|
|
|
|
var uid = $('#bwfan_form_uid_id');
|
|
uid = (0 === uid.length) ? urlParams.get('bwfan_form_uid_id') : uid.val();
|
|
|
|
var bwfan_nonce = $('#bwfan_unsubscribe_nonce');
|
|
|
|
var oneClickArgs = urlParams.get('List-Unsubscribe');
|
|
oneClickArgs = (oneClickArgs == 'One-Click') ? 1 : 0;
|
|
|
|
if (uid == undefined && recipient == undefined) {
|
|
if ($(".bwfan_response").length === 0) {
|
|
$this.after("<div class='bwfan_response'>" + bwfanParamspublic.message_no_contact + "</div>");
|
|
}
|
|
$('.bwfan_response').fadeIn();
|
|
$this.removeClass('bwfan_loading');
|
|
setTimeout(function () {
|
|
$('.bwfan_response').fadeOut("slow");
|
|
}, 2500);
|
|
return;
|
|
}
|
|
|
|
var lists = BWFAN_Public.get_selected_unsubscribe_lists();
|
|
if (lists.includes('all')) {
|
|
$('.bwfan-unsubscribe-list-checkbox input').removeAttr('checked');
|
|
$('#bwfan-list-unsubscribe-all').prop('checked', true);
|
|
}
|
|
lists = JSON.stringify(lists);
|
|
|
|
$.ajax({
|
|
method: 'post',
|
|
dataType: 'json',
|
|
url: bwfanParamspublic.ajax_url,
|
|
data: $('#bwfan_unsubscribe_fields').serialize() + "&action=bwfan_unsubscribe_user" + "&recipient=" + recipient + "&sid=" + sid + "&unsubscribe_lists=" + lists + "&_nonce=" + bwfan_nonce.val() + "&one_click=" + oneClick + "&one_click_get=" + oneClickArgs,
|
|
success: function (result) {
|
|
// Add the redirect handling here
|
|
if (result.redirect && result.redirect_url) {
|
|
window.location.href = result.redirect_url;
|
|
return;
|
|
}
|
|
|
|
$this.removeClass('bwfan_loading');
|
|
|
|
var response_generated = $this.parent().find('.bwfan_response').html();
|
|
if ('undefined' === typeof response_generated) {
|
|
$this.after("<div class='bwfan_response'></div>");
|
|
}
|
|
|
|
if (0 === result.success) {
|
|
$('.bwfan_response').addClass('bwfan_error');
|
|
$('.bwfan_response').fadeIn().html(result.message);
|
|
|
|
if (typeof bwfan_unsubscribe_preference !== 'undefined' && bwfan_unsubscribe_preference == 'one_click') {
|
|
$('.bwfan-unsubscribe-lists').hide();
|
|
$('a#bwfan_unsubscribe').hide();
|
|
} else {
|
|
setTimeout(function () {
|
|
$('.bwfan_response').fadeOut("slow");
|
|
}, 2500);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
$('.bwfan_response').addClass('bwfan_success');
|
|
$('.bwfan_response').fadeIn().html(result.message);
|
|
if ('1' === $('#bwfan_one_click').val()) {
|
|
$('#bwfan-list-unsubscribe-all').prop('checked', true);
|
|
}
|
|
|
|
if (typeof bwfan_unsubscribe_preference !== 'undefined' && bwfan_unsubscribe_preference == 'one_click') {
|
|
$('.bwfan-unsubscribe-lists').hide();
|
|
$('a#bwfan_unsubscribe').hide();
|
|
} else {
|
|
/** Content is refresh after success */
|
|
$('#bwfan-unsubscribe-lists').load(
|
|
location.href + ' #bwfan-unsubscribe-lists > *'
|
|
);
|
|
setTimeout(function () {
|
|
$('.bwfan_response').fadeOut('slow');
|
|
}, 2500);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
/* Initialize */
|
|
BWFAN_Public.init();
|
|
|
|
$(document).ready(function () {
|
|
if ('0' != bwfanParamspublic.bwfan_ab_enable && bwfanParamspublic.bwfan_ab_enable != '') {
|
|
var bwfan_email_consent_message = '';
|
|
if ('0' != bwfanParamspublic.bwfan_ab_email_consent && bwfanParamspublic.bwfan_ab_email_consent != '') {
|
|
var site_language = bwfanParamspublic.bwfan_site_language;
|
|
var message_index = 'bwfan_ab_email_consent_message_' + site_language;
|
|
var label = bwfanParamspublic.hasOwnProperty(message_index) && bwfanParamspublic[message_index] != '' ? bwfanParamspublic[message_index] : bwfanParamspublic.bwfan_ab_email_consent_message;
|
|
bwfan_email_consent_message = '<label>' + label + '</label>';
|
|
|
|
// Remove/Strip slashes
|
|
bwfan_email_consent_message = bwfan_email_consent_message.replace(new RegExp("\\\\", "g"), "");
|
|
var start = bwfan_email_consent_message.search("{{no_thanks label=");
|
|
var end = bwfan_email_consent_message.search("}}");
|
|
if (-1 != start && -1 != end) {
|
|
var temp_start = start + 19;
|
|
var temp_end = end - 1;
|
|
var no_thanks_merge_tag = bwfan_email_consent_message.substring(start, (end + 2));
|
|
var no_thanks_label = bwfan_email_consent_message.substring(temp_start, temp_end);
|
|
no_thanks_label = no_thanks_label ? no_thanks_label : bwfanParamspublic.bwfan_no_thanks;
|
|
bwfan_email_consent_message = bwfan_email_consent_message.replace(no_thanks_merge_tag, "<a class='bwfan_email_consent_no_thanks' style='text-decoration:underline;cursor: pointer;'>" + no_thanks_label + "</a>");
|
|
} else {
|
|
bwfan_email_consent_message = bwfan_email_consent_message.replace("{{no_thanks}}", "<a class='bwfan_email_consent_no_thanks' style='text-decoration:underline;cursor: pointer;'>" + bwfanParamspublic.bwfan_no_thanks + "</a>");
|
|
}
|
|
}
|
|
|
|
var emailConsentHtml = '<input type="hidden" id="bwfan_gdpr_consent" value="1" />';
|
|
if ('' === bwfan_email_consent_message) {
|
|
$('#billing_email_field').after(emailConsentHtml);
|
|
} else {
|
|
bwfan_email_consent_message += emailConsentHtml;
|
|
$('#billing_email_field').after('<p class="form-row form-row-wide wfacp-form-control-wrapper wfacp-col-full wfacp-anim-wrap">' + bwfan_email_consent_message + '</p>');
|
|
}
|
|
|
|
$('.bwfan_email_consent_no_thanks').on('click', function (event) {
|
|
event.preventDefault();
|
|
|
|
$.post(bwfanParamspublic.wc_ajax_url.toString().replace('%%endpoint%%', 'bwfan_delete_abandoned_cart'), {
|
|
'email': $('#billing_email').val(),
|
|
'action': 'bwfan_delete_abandoned_cart',
|
|
'_wpnonce': bwfanParamspublic.ajax_nonce
|
|
}, function () {
|
|
//
|
|
}
|
|
);
|
|
$('#bwfan_gdpr_consent').val('0');
|
|
$(this).parent().fadeOut("slow");
|
|
});
|
|
}
|
|
});
|
|
let bwfFieldChangeTimer = null;
|
|
$(window).on('load', function () {
|
|
BWFAN_Public.abandoned_cart();
|
|
BWFAN_Public.unsubscribe_event();
|
|
BWFAN_Public.bwfan_check_for_checkout_fields();
|
|
BWFAN_Public.bwfan_capture_data_on_page_load();
|
|
$(document.body).on('wfacp_step_switching', function (e, v) {
|
|
BWFAN_Public.current_step = v.current_step;
|
|
var email = $('#billing_email').val();
|
|
if (email !== '') {
|
|
BWFAN_Public.bwfan_process_email(email);
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Detect change and save data in database
|
|
*/
|
|
BWFAN_Public.checkout_form.on('change', 'select', BWFAN_Public.bwfan_captureCheckoutField);
|
|
BWFAN_Public.checkout_form.on('click', '.input-checkbox', BWFAN_Public.bwfan_captureCheckoutField);
|
|
BWFAN_Public.checkout_form.on('change', '.input-checkbox', BWFAN_Public.bwfan_captureCheckoutField);
|
|
BWFAN_Public.checkout_form.on('change', '.input-text', BWFAN_Public.bwfan_captureCheckoutField);
|
|
BWFAN_Public.checkout_form.on('blur focusout', '.input-text', () => {
|
|
// add check update on typing stops
|
|
if (bwfFieldChangeTimer) {
|
|
clearTimeout(bwfFieldChangeTimer);
|
|
}
|
|
bwfFieldChangeTimer = setTimeout(() => {
|
|
BWFAN_Public.bwfan_captureCheckoutField();
|
|
}, 500);
|
|
});
|
|
// Reset the 'triggered' flag when the input element gets focused again
|
|
BWFAN_Public.checkout_form.on('focus', '.input-text', function () {
|
|
$(this).removeData('triggered');
|
|
});
|
|
|
|
var interval = null;
|
|
$(document).on('blur change', '#billing_email,.input-text,.input-checkbox, select', function () {
|
|
if (interval !== null) {
|
|
clearTimeout(interval);
|
|
}
|
|
interval = setTimeout(BWFAN_Public.bwfan_get_checkout_data, 100);
|
|
});
|
|
|
|
if (typeof bwfan_unsubscribe_preference !== 'undefined' && 'one_click' === bwfan_unsubscribe_preference) {
|
|
var urlParams = new URLSearchParams(window.location.search);
|
|
var recipient = $('#bwfan_unsubscribe_recipient');
|
|
recipient = (0 === recipient.length) ? urlParams.get('subscriber_recipient') : recipient.html();
|
|
var uid = $('#bwfan_form_uid_id');
|
|
uid = (0 === uid.length) ? urlParams.get('bwfan_form_uid_id') : uid.val();
|
|
if ((uid !== '' && uid !== null) || (recipient !== '' && recipient !== null)) {
|
|
$('#bwfan_unsubscribe').click();
|
|
}
|
|
|
|
if (uid !== '' && uid !== null) {
|
|
var cookieExpireDate = new Date();
|
|
cookieExpireDate.setFullYear(cookieExpireDate.getFullYear() + 1);
|
|
document.cookie = '_fk_contact_uid=' + uid + '; expires=' + cookieExpireDate.toUTCString() + ';';
|
|
}
|
|
}
|
|
});
|
|
var updateCartTimeout = null;
|
|
$(document).on('updated_checkout', function () {
|
|
if (updateCartTimeout !== null) {
|
|
clearTimeout(updateCartTimeout);
|
|
}
|
|
updateCartTimeout = setTimeout(function (){
|
|
var email = $('#billing_email').val();
|
|
if (email !== '') {
|
|
BWFAN_Public.bwfan_process_email(email);
|
|
}
|
|
}, 500);
|
|
});
|
|
$("#bwfan-tyb-save-btn").on('click', function () {
|
|
var $this = $(this);
|
|
var $parent = $this.parents(".bwfan-tyb-wrap");
|
|
var res_msg_selector = $parent.find('.bwfan-tyb-msg');
|
|
|
|
// Get values from the dropdown fields if they exist
|
|
var yearSelect = $parent.find('select[name="bwfan_birthday_date_yy"]');
|
|
var monthSelect = $parent.find('select[name="bwfan_birthday_date_mm"]');
|
|
var daySelect = $parent.find('select[name="bwfan_birthday_date_dd"]');
|
|
|
|
// Check if the dropdowns exist
|
|
var dropdownsExist = yearSelect.length && monthSelect.length && daySelect.length;
|
|
var year = '', month = '', day = '';
|
|
// If dropdowns exist, validate their values
|
|
if (dropdownsExist) {
|
|
year = yearSelect.val();
|
|
month = monthSelect.val();
|
|
day = daySelect.val();
|
|
}
|
|
|
|
$this.addClass('bwfan-btn-spin');
|
|
$.ajax({
|
|
type: "post",
|
|
dataType: "json",
|
|
url: bwfanParamspublic.ajax_url,
|
|
data: {
|
|
"order_id": $parent.find('#bwfan-order-id').val(),
|
|
"birthday": $parent.find('#bwfan-tyb-field').val(),
|
|
"bwfan_birthday_date_yy": year,
|
|
"bwfan_birthday_date_mm": month,
|
|
"bwfan_birthday_date_dd": day,
|
|
"cid": $parent.find('#bwfan-cid').val(),
|
|
"nonce": $parent.find('#bwfan-tyb-nonce').val(),
|
|
"action": "save_birthday_on_thankyou"
|
|
},
|
|
success: function (response) {
|
|
$this.removeClass('bwfan-btn-spin');
|
|
|
|
res_msg_selector.fadeIn().html(response.msg);
|
|
|
|
if (2 === response.status) {
|
|
res_msg_selector.addClass('bwfan-tyb-error');
|
|
} else {
|
|
res_msg_selector.removeClass('bwfan-tyb-error');
|
|
}
|
|
|
|
setTimeout(function () {
|
|
res_msg_selector.fadeOut("slow");
|
|
}, 2500);
|
|
}
|
|
});
|
|
});
|
|
$(document).on('focus', '#bwfan_birthday_date', function () {
|
|
this.type = this.getAttribute("type") !== "date" ? 'date' : this.getAttribute("type");
|
|
setTimeout(() => {
|
|
this.showPicker();
|
|
}, 500);
|
|
});
|
|
|
|
if (0 !== $('form#bwfan_unsubscribe_fields').length) {
|
|
return;
|
|
}
|
|
|
|
let urlParams = new URLSearchParams(window.location.search);
|
|
let automation_id = urlParams.get('automation_id');
|
|
let broadcast_id = urlParams.get('broadcast_id');
|
|
let form_feed_id = urlParams.get('form_feed_id');
|
|
let sid = urlParams.get('sid');
|
|
let uid = urlParams.get('uid');
|
|
|
|
if (uid === null || uid === '') {
|
|
return;
|
|
}
|
|
|
|
$.ajax({
|
|
method: 'post',
|
|
url: bwfanParamspublic.ajax_url,
|
|
datatype: "JSON",
|
|
data: {
|
|
action: 'bwfan_unsubscribe_user',
|
|
uid: uid,
|
|
automation_id: automation_id ? automation_id : 0,
|
|
broadcast_id: broadcast_id ? broadcast_id : 0,
|
|
form_feed_id: form_feed_id ? form_feed_id : 0,
|
|
sid: sid ? sid : 0,
|
|
form_not_exist: 1,
|
|
one_click: 1,
|
|
},
|
|
success: function (response) {
|
|
|
|
}
|
|
});
|
|
})(jQuery);
|
|
|
|
/* Deserialize the form object */
|
|
function bwfanac_deserialize_obj(query) {
|
|
var setValue = function (root, path, value) {
|
|
if (path.length > 1) {
|
|
var dir = path.shift();
|
|
if (typeof root[dir] == 'undefined') {
|
|
root[dir] = path[0] === '' ? [] : {};
|
|
}
|
|
|
|
arguments.callee(root[dir], path, value);
|
|
} else {
|
|
if (root instanceof Array) {
|
|
root.push(value);
|
|
} else {
|
|
root[path] = value;
|
|
}
|
|
}
|
|
};
|
|
|
|
var nvp = query.split('&');
|
|
var data = {};
|
|
|
|
for (var i = 0; i < nvp.length; i++) {
|
|
var pair = nvp[i].split('=');
|
|
var name = pair[0];
|
|
var value = pair[1];
|
|
|
|
try {
|
|
name = decodeURIComponent(pair[0]);
|
|
value = decodeURIComponent(pair[1]);
|
|
} catch (e) {
|
|
console.log("Error occurred while decoding (" + nvp[i] + "). Error is: " + e.message);
|
|
}
|
|
|
|
var path = name.match(/(^[^\[]+)(\[.*\]$)?/);
|
|
var first = path[1];
|
|
if (path[2]) {
|
|
//case of 'array[level1]' || 'array[level1][level2]'
|
|
path = path[2].match(/(?=\[(.*)\]$)/)[1].split('][')
|
|
} else {
|
|
//case of 'name'
|
|
path = [];
|
|
}
|
|
path.unshift(first);
|
|
|
|
setValue(data, path, value);
|
|
}
|
|
|
|
return data;
|
|
}
|