( function ( $ ) {
console.log('init //')
let timer;
const wcf_cart_abandonment = {
init() {
if (
clientify_wcf_ca_vars._show_gdpr_message &&
! $( '#wcf_cf_gdpr_message_block' ).length
) {
$( '#billing_email' ).after(
" " +
clientify_wcf_ca_vars._gdpr_message +
" " +
clientify_wcf_ca_vars._gdpr_nothanks_msg +
' '
);
}
$( document ).on(
'keyup keypress change',
'#billing_email, #email ,#billing_phone, input.input-text, textarea.input-text, select',
this._getCheckoutData
);
$( '#wcf_ca_gdpr_no_thanks' ).on( 'click', function () {
wcf_cart_abandonment._set_cookie();
} );
$( document.body ).on( 'updated_checkout', function () {
wcf_cart_abandonment._getCheckoutData();
} );
$( function () {
setTimeout( function () {
wcf_cart_abandonment._getCheckoutData();
}, 800 );
} );
},
_set_cookie() {
const data = {
wcf_ca_skip_track_data: true,
action: 'clientify_skip_cart_tracking_gdpr',
security: clientify_wcf_ca_vars._gdpr_nonce,
};
jQuery.post( clientify_wcf_ca_vars.ajaxurl, data, function ( response ) {
if ( response.success ) {
$( '#wcf_cf_gdpr_message_block' )
.empty()
.append(
"" +
clientify_wcf_ca_vars._gdpr_after_no_thanks_msg +
''
)
.delay( 5000 )
.fadeOut();
}
} );
},
_validate_email( value ) {
let valid = true;
if ( value.indexOf( '@' ) === -1 ) {
valid = false;
} else {
const parts = value.split( '@' );
const domain = parts[ 1 ];
if ( domain.indexOf( '.' ) === -1 ) {
valid = false;
} else {
const domainParts = domain.split( '.' );
const ext = domainParts[ 1 ];
if ( ext.length > 14 || ext.length < 2 ) {
valid = false;
}
}
}
return valid;
},
_getCheckoutData() {
const wcf_email = jQuery('#billing_email').val() || jQuery('#email').val();
if (typeof wcf_email === 'undefined') {
return;
}
let wcf_phone = jQuery( '#billing_phone' ).val();
const atposition = wcf_email.indexOf( '@' );
const dotposition = wcf_email.lastIndexOf( '.' );
if ( typeof wcf_phone === 'undefined' || wcf_phone === null ) {
//If phone number field does not exist on the Checkout form
wcf_phone = '';
}
clearTimeout( timer );
if (
! (
atposition < 1 ||
dotposition < atposition + 2 ||
dotposition + 2 >= wcf_email.length
) ||
wcf_phone.length >= 1
) {
//Checking if the email field is valid or phone number is longer than 1 digit
//If Email or Phone valid
const wcf_name = jQuery( '#billing_first_name' ).val();
const wcf_surname = jQuery( '#billing_last_name' ).val();
wcf_phone = jQuery( '#billing_phone' ).val();
const wcf_country = jQuery( '#billing_country' ).val();
const wcf_city = jQuery( '#billing_city' ).val();
//Other fields used for "Remember user input" function
const wcf_billing_company = jQuery( '#billing_company' ).val();
const wcf_billing_address_1 = jQuery(
'#billing_address_1'
).val();
const wcf_billing_address_2 = jQuery(
'#billing_address_2'
).val();
const wcf_billing_state = jQuery( '#billing_state' ).val();
const wcf_billing_postcode = jQuery(
'#billing_postcode'
).val();
const wcf_shipping_first_name = jQuery(
'#shipping_first_name'
).val();
const wcf_shipping_last_name = jQuery(
'#shipping_last_name'
).val();
const wcf_shipping_company = jQuery(
'#shipping_company'
).val();
const wcf_shipping_country = jQuery(
'#shipping_country'
).val();
const wcf_shipping_address_1 = jQuery(
'#shipping_address_1'
).val();
const wcf_shipping_address_2 = jQuery(
'#shipping_address_2'
).val();
const wcf_shipping_city = jQuery( '#shipping_city' ).val();
const wcf_shipping_state = jQuery( '#shipping_state' ).val();
const wcf_shipping_postcode = jQuery(
'#shipping_postcode'
).val();
const wcf_order_comments = jQuery( '#order_comments' ).val();
const shipping_cost = jQuery( '#shipping_cost' ).val();
const data = {
action: 'clientify_save_cart_abandonment_data',
wcf_email,
wcf_name,
wcf_surname,
wcf_phone,
wcf_country,
wcf_city,
wcf_billing_company,
wcf_billing_address_1,
wcf_billing_address_2,
wcf_billing_state,
wcf_billing_postcode,
wcf_shipping_first_name,
wcf_shipping_last_name,
wcf_shipping_company,
wcf_shipping_country,
wcf_shipping_address_1,
wcf_shipping_address_2,
wcf_shipping_city,
wcf_shipping_state,
wcf_shipping_postcode,
wcf_order_comments,
shipping_cost,
security: clientify_wcf_ca_vars._nonce,
wcf_post_id: clientify_wcf_ca_vars._post_id,
};
timer = setTimeout( function () {
if (
wcf_cart_abandonment._validate_email( data.wcf_email )
) {
jQuery.post(
clientify_wcf_ca_vars.ajaxurl,
data, //Ajaxurl coming from localized script and contains the link to wp-admin/admin-ajax.php file that handles AJAX requests on Wordpress
function () {
// success response
}
);
}
}, 500 );
} else {
//console.log("Not a valid e-mail or phone address");
}
},
};
wcf_cart_abandonment.init();
// En tu archivo JavaScript (tu-script-ajax.js)
jQuery(document).ready(function ($) {
$('.woocommerce-MyAccount-navigation-link--suscripcion a').on('click', function (e) {
console.log('click')
e.preventDefault();
// Realizar solicitud Ajax
$.ajax({
url: clientify_wcf_ca_vars.ajaxurl,
cache: false,
type: 'GET',
data: {
action: 'cargar_contenido_suscripcion_endpoint',
},
success: function (response) {
res = JSON.parse(response)
console.log(res.contenido)
// Actualizar contenido en la clase woocommerce-MyAccount-content
$('.woocommerce-MyAccount-content').html(res.contenido);
// Cambia la URL utilizando history.pushState()
// Cambia la URL utilizando history.pushState()
var nuevaURL = window.location.origin + '/mi-cuenta/suscripcion';
history.pushState(null, null, nuevaURL);
// Agrega el evento al cambio del checkbox
$('#suscripcion_save').on('click', function () {
guardarCambios();
});
},
error: function (error) {
console.error(error);
}
});
});
// Función para guardar cambios
// Función para guardar cambios
function guardarCambios() {
// Recopila todos los datos del formulario
var formData = $('#formulario_suscripcion').serialize();
var urlParams = new URLSearchParams(formData);
// Obtener el valor de un parámetro específico
var contactClienteId = urlParams.get('contact_clienti_id');
var suscripcionNewsletter = urlParams.get('suscripcion_newsletter')
console.log(contactClienteId,suscripcionNewsletter)
// Realiza la solicitud Ajax
$.ajax({
type: 'POST',
url: clientify_wcf_ca_vars.ajaxurl,
data: {
action: 'guardar_suscripcion_contact_info',
id_clienti_cus: contactClienteId,
status_clienti_newsletter: suscripcionNewsletter
},
dataType: 'json',
success: function (response) {
console.log(response);
},
error: function (error) {
console.error(error);
}
});
}
});
// window.addEventListener('load', function() {
// const input = document.querySelector('#shipping-phone');
// window.intlTelInput(input, {
// initialCountry: 'auto',
// geoIpLookup: function(callback) {
// fetch('https://ipapi.co/json')
// .then(function(res) { return res.json(); })
// .then(function(data) { callback(data.country_code); })
// .catch(function() { callback(); });
// }
// });
// });
//input.style.paddingLeft = '20px';
} )( jQuery );