1895 lines
65 KiB
JavaScript
1895 lines
65 KiB
JavaScript
/**
|
|
* 2010-2020 Webkul.
|
|
*
|
|
* NOTICE OF LICENSE
|
|
*
|
|
* All right is reserved,
|
|
* Please go through this link for complete license : https://store.webkul.com/license.html
|
|
*
|
|
* DISCLAIMER
|
|
*
|
|
* Do not edit or add to this file if you wish to upgrade this module to newer
|
|
* versions in the future. If you wish to customize this module for your
|
|
* needs please refer to https://store.webkul.com/customisation-guidelines/ for more information.
|
|
*
|
|
* @author Webkul IN <support@webkul.com>
|
|
* @copyright 2010-2020 Webkul IN
|
|
* @license https://store.webkul.com/license.html
|
|
*/
|
|
|
|
$(document).ready(function() {
|
|
// refresh cart information when customer/visitor vist the cart page
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updateShippingorPayment();
|
|
}
|
|
});
|
|
//---------------------------------------------------------------------
|
|
|
|
// $(document).ajaxSend(function() {
|
|
// showCustomerLoader();
|
|
// });
|
|
|
|
// $(document).ajaxStop(function() {
|
|
// hideCustomerLoader();
|
|
// });
|
|
|
|
$(document).on('blur', '#delivery_message', function() {
|
|
if (id_cart) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'id_cart': id_cart,
|
|
'id_customer': id_customer,
|
|
'token': wktoken,
|
|
'message': $('#delivery_message').val(),
|
|
'action': 'addDeliveryMessage',
|
|
},
|
|
success: function(result) {
|
|
Window.token = result;
|
|
},
|
|
});
|
|
}
|
|
});
|
|
|
|
// Show login pop for guest
|
|
$(document).on('click', '.wkbtn-login', function() {
|
|
$('#wk_login_pop').modal('show');
|
|
});
|
|
|
|
// If guest want to create account then show password input field
|
|
$(document).on('click', '#wk-create-account', function() {
|
|
if ($(this).is(":checked")) {
|
|
$('.wkpassword_div').show();
|
|
} else {
|
|
$('.wkpassword_div').hide();
|
|
}
|
|
});
|
|
|
|
// Process login
|
|
$(document).on('submit', '#wk-login-form', function(e) {
|
|
e.preventDefault();
|
|
var params = $('#wk-login-form').serialize();
|
|
loginSubmit('validateLogin', params, 'login');
|
|
});
|
|
|
|
// Validate email enter by guest
|
|
$(document).on('blur', '#wk-email', function() {
|
|
if (validateGuestEmail()) {
|
|
var email = $('#wk-email').val();
|
|
if ($('#wk-create-account').is(":checked")) {
|
|
var is_guest = 0;
|
|
} else {
|
|
var is_guest = 1;
|
|
}
|
|
checkEmailExist(email, is_guest);
|
|
}
|
|
});
|
|
|
|
// Validate password enter by guest
|
|
$(document).on('blur', '#wk-password', function() {
|
|
validatePassword();
|
|
});
|
|
|
|
// As soon as customer/vistor chnage the shipping , refresh payment method accordingly
|
|
$(document).on('change', '.wk_selected_shipping', function() {
|
|
var idCarrier = removeCommaFromShipping($(this).val());
|
|
var idCountry = false;
|
|
var selectedDeliveryAddress = $('input[name=wk-delivery-address]:checked').val();
|
|
|
|
$('.wk-shipping-info').removeClass('wkSelectedBorder');
|
|
if (typeof selectedDeliveryAddress === 'undefined') {
|
|
idCountry = $('select[name=wk_delivery_address_country] option:selected').val();
|
|
}
|
|
setDeliveryMethod(idCarrier, idCountry, true, false);
|
|
$('.wk-selected-shipping-' + idCarrier).addClass('wkSelectedBorder');
|
|
|
|
var $parentRow = $(this).closest('.row');
|
|
var $carrierExtraContent = $parentRow.next('.carrier-extra-content');
|
|
|
|
if ($carrierExtraContent.length) {
|
|
var $hookDisplayBeforeCarrier = $('#hook-display-before-carrier');
|
|
if ($hookDisplayBeforeCarrier.length) {
|
|
$carrierExtraContent.append($hookDisplayBeforeCarrier);
|
|
}
|
|
}
|
|
|
|
if ( idCarrier == 159 || idCarrier == 160 ) {
|
|
$( '#hook-display-before-carrier' ).show();
|
|
}
|
|
else {
|
|
$( '#hook-display-before-carrier' ).hide();
|
|
}
|
|
});
|
|
|
|
$(document).on('change', 'input[name=payment-option]', function() {
|
|
$('.wk-payment-info').removeClass('wkSelectedBorder');
|
|
$('.wk-selected-payment-' + $(this).attr('id')).addClass('wkSelectedBorder');
|
|
$('#' + $(this).attr('id') + '-additional-information').css({'display': 'inline-block'});
|
|
});
|
|
|
|
$(document).on('change', 'input[name="wk-delivery-address"]', function()
|
|
{
|
|
$(".wk-shipping-carriers").html("<div class='alert alert-danger'>Zatwierdź adres dostawy</div>");
|
|
$(".wk-payment-method").html("<div class='alert alert-danger'>Zatwierdź adres dostawy</div>");
|
|
$('#wk-msg-new-delivery').hide().text('');
|
|
showNewDeliveryAddress($(this).val());
|
|
|
|
});
|
|
|
|
$(document).on('change', 'input[name="wk-invoice-address"]', function() {
|
|
showInvoiceAddress($(this).val());
|
|
var idCountry = $('select[name=wk_invoice_address_country] option:selected').val();
|
|
getStateByIdCountry(idCountry, 'invoice');
|
|
});
|
|
|
|
$(document).on('change', '#wk-existing-delivery-address', function() {
|
|
var idAddress = $(this).val();
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
var idAddressInvoice = idAddress;
|
|
} else {
|
|
var idAddressInvoice = $('#wk-existing-invoice-address option:selected').val();
|
|
}
|
|
updateCustomerAddress(idAddress, idAddressInvoice, 'delivery', true, true);
|
|
});
|
|
|
|
$(document).on('change', '#wk-existing-invoice-address', function() {
|
|
var idAddressInvoice = $(this).val();
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
var idAddress = idAddressInvoice;
|
|
} else {
|
|
var idAddress = $('#wk-existing-delivery-address option:selected').val();
|
|
}
|
|
updateCustomerAddress(idAddress, idAddressInvoice, 'invoice', true, true);
|
|
});
|
|
|
|
// Increase product quantity into the cart
|
|
$(document).on('click', '.wk-qty-up', function() {
|
|
var obj = $(this);
|
|
var currentQty = $(this).parent().siblings('input.wk-hidden-qty').val();
|
|
currentQty = parseInt(currentQty) + 1;
|
|
//$(this).parent().siblings('input.wk-qty').val(currentQty);
|
|
|
|
changeCartQuantity(obj, 'updateQty', 'up', 1, false);
|
|
});
|
|
|
|
// Decrease product quantity from the cart
|
|
$(document).on('click', '.wk-qty-down', function() {
|
|
var obj = $(this);
|
|
var currentQty = $(this).parent().siblings('input.wk-hidden-qty').val();
|
|
currentQty = parseInt(currentQty) - 1;
|
|
//$(this).parent().siblings('input.wk-qty').val(currentQty);
|
|
|
|
changeCartQuantity(obj, 'updateQty', 'down', 1, false);
|
|
});
|
|
|
|
$(document).on('blur', 'input[name=wk-cart-qty]', function() {
|
|
$('.wkorder_error').hide().text('');
|
|
var obj = $(this);
|
|
var inputQty = $(this).val();
|
|
var idProduct = $(this).attr('data-id-product');
|
|
var idProductAttribute = $(this).attr('data-id-product-attribute');
|
|
var currentQty = $('input[data-id-product=' + idProduct + '][data-id-product-attribute=' + idProductAttribute + ']').val();
|
|
|
|
if (inputQty < 0) {
|
|
$('.wkorder_error').show().text(qty_less);
|
|
return false;
|
|
} else if (inputQty > currentQty) {
|
|
var condition = 'up';
|
|
} else if (inputQty < currentQty) {
|
|
var condition = 'down';
|
|
}
|
|
changeCartQuantity(obj, 'updateQty', condition, Math.abs(inputQty - currentQty), true);
|
|
});
|
|
|
|
// Delete product from the cart
|
|
$(document).on('click', '#wk-remove-cart', function() {
|
|
var obj = $(this);
|
|
changeCartQuantity(obj, 'deleteCartProduct', false, false, false);
|
|
});
|
|
|
|
// Disabled invoice tab in case delivery address selected same as invoice
|
|
$(document).on('click', 'input[name="wk-different-invoice"]', function() {
|
|
if ($(this).is(":checked")) {
|
|
$('.wk-disabled-invoice').addClass('disabled');
|
|
$('.wk-disabled-invoice a').removeAttr('data-toggle');
|
|
} else {
|
|
$('.wk-disabled-invoice').removeClass('disabled');
|
|
$('.wk-disabled-invoice a').attr('data-toggle', 'tab');
|
|
}
|
|
});
|
|
|
|
// Disabled invoice tab in case delivery address selected same as invoice
|
|
$(document).on('click', '#wk_new_invoice_address', function() {
|
|
if ($(this).is(":checked")) {
|
|
$('.wk-new-invoice').addClass('disabled');
|
|
$('.wk-new-invoice a').removeAttr('data-toggle');
|
|
} else {
|
|
$('.wk-new-invoice').removeClass('disabled');
|
|
$('.wk-new-invoice a').attr('data-toggle', 'tab');
|
|
}
|
|
});
|
|
|
|
// Add available voucher on cart
|
|
$(document).on('click', '#addVoucher', function() {
|
|
var discountName = $('#wk-voucher').val();
|
|
addVoucherOnCart(discountName);
|
|
});
|
|
|
|
// Delete applied voucher from the cart
|
|
$(document).on('click', '#wk-delete-voucher', function() {
|
|
var idVoucher = $(this).attr('data-id');
|
|
if (idVoucher) {
|
|
deleteCartVoucher(idVoucher)
|
|
}
|
|
});
|
|
|
|
// On changing country get states based on country
|
|
$(document).on('change', '.wk_address_country', function() {
|
|
var idCountry = $(this).val();
|
|
var dataAttr = $(this).attr('data-attr');
|
|
getStateByIdCountry(idCountry, dataAttr);
|
|
$('.wk-save-address').trigger('click');
|
|
});
|
|
|
|
// On changing state update carrier/payment methods
|
|
$(document).on('change', '.wk_address_state', function() {
|
|
var idCountry = $('.wk_address_country option:selected').val();
|
|
var idState = $(this).val();
|
|
var dataAttr = $(this).attr('data-attr');
|
|
if (dataAttr == 'delivery') {
|
|
updateShippingMethod(1, idCountry, idState).then(function(updateshippingresponse){
|
|
if (updateshippingresponse) {
|
|
updatePaymentMethod(0, idCountry, 0);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
if (typeof address_exist === 'undefined') {
|
|
// On load check delivery selected country
|
|
var idCountry = $('.wk_address_country option:selected').val();
|
|
var dataAttr = 'delivery';
|
|
getStateByIdCountry(idCountry, dataAttr);
|
|
|
|
// On load check invoice selected country
|
|
var idCountry = $('select[name=wk_invoice_address_country] option:selected').val();
|
|
var dataAttr = 'invoice';
|
|
getStateByIdCountry(idCountry, dataAttr);
|
|
}
|
|
|
|
// Validate delivery and invoice address field
|
|
$(document).on('change', '.wkvalidatefield', function() {
|
|
if (typeof inline !== 'undefined') {
|
|
var fieldValue = $.trim($(this).val());
|
|
var fieldId = $(this).attr('id');
|
|
var maxlength = $(this).attr('maxlength');
|
|
var required = $(this).attr('data-required');
|
|
var fieldValidation = $(this).attr('data-validate');
|
|
|
|
if (!fieldValue) {
|
|
if (required == 1) {
|
|
$('#' + fieldId).addClass('border-error').removeClass('border-success');
|
|
$('.error_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
$('.icon_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
}
|
|
} else {
|
|
if (typeof maxlength !== 'undefinded') {
|
|
if (fieldValue.length > maxlength) {
|
|
$('#' + fieldId).addClass('border-error').removeClass('border-success');
|
|
$('.error_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
$('.icon_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
$('.' + fieldId).text(error_length);
|
|
} else {
|
|
if (fieldId == 'wk_delivery_address_zip') {
|
|
var idCountry = $('select[name=wk_delivery_address_country] option:selected').val();
|
|
validatePostalCode(fieldValue, fieldId, idCountry);
|
|
} else if (fieldId == 'wk_invoice_address_zip') {
|
|
var idCountry = $('select[name=wk_invoice_address_country] option:selected').val();
|
|
validatePostalCode(fieldValue, fieldId, idCountry);
|
|
} else {
|
|
validateAddressField(fieldValue, fieldId, fieldValidation, maxlength, required);
|
|
}
|
|
}
|
|
} else {
|
|
validateAddressField(fieldValue, fieldId, fieldValidation, maxlength, required);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// Save customer delivery and invoice address by clicking on save button
|
|
$(document).on('click', '.wk-save-address', function(e)
|
|
{
|
|
e.preventDefault();
|
|
var dataType = $(this).attr('data-type');
|
|
$('#wk-msg-new' + dataType).hide().text('');
|
|
if (dataType == 'delivery')
|
|
{
|
|
var formData = $('#wk-delivery-form').serialize();
|
|
$(".wk-shipping-carriers").html("<div class='alert alert-danger'>Zatwierdź adres dostawy</div>");
|
|
$(".wk-payment-method").html("<div class='alert alert-danger'>Zatwierdź adres dostawy</div>");
|
|
$('#wk-msg-new-delivery').hide().text('');
|
|
|
|
} else if (dataType == 'invoice') {
|
|
var formData = $('#wk-invoice-form').serialize();
|
|
}
|
|
var no_error = true;
|
|
|
|
if (wk_is_logged == 0 && customer_is_guest == 0) {
|
|
no_error = validateGuestEmail();
|
|
if (no_error == true) {
|
|
var email = $('#wk-email').val();
|
|
if ($('#wk-create-account').is(":checked")) {
|
|
var is_guest = 0;
|
|
} else {
|
|
var is_guest = 1;
|
|
}
|
|
no_error = checkEmailExist(email, is_guest);
|
|
|
|
if (no_error == true) {
|
|
var isValidated = validateDeliveryFormData(formData, dataType);
|
|
if (isValidated) {
|
|
wknewtoken = createAccount();
|
|
if (wknewtoken) {
|
|
//update token
|
|
wktoken = wknewtoken;
|
|
wk_is_logged = 1;
|
|
if (is_guest == 1) {
|
|
customer_is_guest = 1;
|
|
} else {
|
|
customer_is_guest = 0;
|
|
}
|
|
} else {
|
|
no_error = false;
|
|
}
|
|
} else {
|
|
no_error = false;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
var isValidated = validateDeliveryFormData(formData, dataType);
|
|
if (!isValidated) {
|
|
no_error = false;
|
|
}
|
|
}
|
|
|
|
if (no_error == true) {
|
|
var isCreated = createNewAddress(formData, dataType, true, true, false);
|
|
if (isCreated) {
|
|
$('#wk-msg-new-' + dataType).show().text(wk_add_success).addClass('wksuccesscolor');
|
|
} else {
|
|
$('#wk-msg-new-' + dataType).show().text(wk_add_failed).addClass('wkerrorcolor');
|
|
}
|
|
}
|
|
});
|
|
|
|
// Add voucher code into input box
|
|
$(document).on('click', '#wkadd-code', function() {
|
|
$('#wk-voucher').attr('value', $(this).text());
|
|
});
|
|
|
|
// check if payment method is checked or not
|
|
var paymentChecked = $('input[name=payment-option]:checked').attr('id');
|
|
//$('#' + paymentChecked + '-additional-information').show();
|
|
$('#' + paymentChecked + '-additional-information').css({'display': 'inline-block'});
|
|
|
|
// By selecting terms and condition make payment button enabled
|
|
$(document).on('click', '.wk-condition-check', function() {
|
|
if ( $( '.wk-condition-check:checked' ).length == $( '.wk-condition-check' ).length )
|
|
$('#wk-payment-confirmation button').removeAttr('disabled');
|
|
else
|
|
$('#wk-payment-confirmation button').attr('disabled', 'disabled');
|
|
});
|
|
|
|
// On quick view, proceed to checkout will reload the page on order controller
|
|
$(document).on('click', 'div.cart-content-btn a', function(event) {
|
|
event.preventDefault();
|
|
window.location.href = wkorder;
|
|
});
|
|
|
|
// on quick view, if customer choose to continue shopping then redirect to home page
|
|
$(document).on('click', 'div.cart-content-btn button', function(event) {
|
|
window.location.href = wkhome;
|
|
});
|
|
|
|
// change image when customer open modal box to view product image in large size
|
|
$(document).on('click', '.js-modal-thumb', function(event) {
|
|
if ($('.js-modal-thumb').hasClass('selected')) {
|
|
$('.js-modal-thumb').removeClass('selected');
|
|
}
|
|
$(event.currentTarget).addClass('selected');
|
|
var idProduct = $(event.currentTarget).attr('data-id-product');
|
|
$('.js-modal-product-cover-' + idProduct).attr('src', $(event.target).data('image-large-src'));
|
|
$('.js-modal-product-cover-' + idProduct).attr('title', $(event.target).attr('title'));
|
|
$('.js-modal-product-cover-' + idProduct).attr('alt', $(event.target).attr('alt'));
|
|
});
|
|
|
|
// Add product into cart when customer click on add to cart from below of cart page
|
|
$(document).on('click', '[data-button-action="wk-add-to-cart"]', function(event) {
|
|
var idProduct = $(this).attr('data-id-product');
|
|
var idProductAttribute = $(this).attr('data-id-product-attribute');
|
|
addProductIntoCart(idProduct, idProductAttribute);
|
|
});
|
|
|
|
// save cart when customer click on save cart icon from cart detail page
|
|
$(document).on('click', '#wk-cart-save', function() {
|
|
var obj = $(this);
|
|
if (saveCart(obj, 'saveCartProduct', false, false)) {
|
|
changeCartQuantity(obj, 'deleteCartProduct', false, false, false);
|
|
}
|
|
});
|
|
|
|
// Final payment process
|
|
$(document).on('click', '#wk-payment-confirmation button', function() {
|
|
//TO:DO PYZIAK JACEK walidacja paczkomatów
|
|
|
|
$( '.paczkomat-error' ).remove();
|
|
if (
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 83
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 85
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 87
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 88
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 96
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 97
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 110
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 114
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 123
|
|
||
|
|
$( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) == 126 )
|
|
{
|
|
if ( $( '.point-info' ).text() == '' )
|
|
{
|
|
if ( $( '#paczkomat-error-' + $( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) ).text() == "" )
|
|
$( '.point-info' ).after( '<div class="paczkomat-error" id="paczkomat-error-' + $( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) + '" style="text-align: center; color: #cc0000;">Proszę wybrać paczkomat</div>' );
|
|
|
|
$('html, body').animate({
|
|
scrollTop: ($(".wk_selected_shipping[wk-opc-id-carrier='" + $( '.wk_selected_shipping:checked' ).attr( 'wk-opc-id-carrier' ) + "']").offset().top - 200)
|
|
}, 2000);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var stepGuest = stepAddress = stepShipping = stepPayment = stepCustomer = true;
|
|
if (wk_is_logged == 0) {
|
|
stepGuest = validateGuestOrNewCustomer();
|
|
if (!stepGuest) {
|
|
$('html, body').animate({
|
|
scrollTop: ($('#wk-email').offset().top - 200)
|
|
}, 2000);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
stepAddress = validateCustomerAddress();
|
|
if (!stepAddress) {
|
|
$('html, body').animate({
|
|
scrollTop: ($('#wk_delivery_first_name, #wk_invoice_first_name').offset().top - 80)
|
|
}, 2000);
|
|
return false;
|
|
}
|
|
|
|
stepOrderSummary = validateOrderSummary();
|
|
|
|
if (!stepOrderSummary) {
|
|
$('html, body').animate({
|
|
scrollTop: ($('#wk-order-summary-ajax').offset().top - 80)
|
|
}, 2000);
|
|
return false;
|
|
}
|
|
|
|
stepShipping = validateShippingSelection();
|
|
if (!stepShipping) {
|
|
return false;
|
|
}
|
|
|
|
stepPayment = validatePaymentSelection();
|
|
if (!stepPayment) {
|
|
$('#wkpayment-error').show().text(wk_payment_err);
|
|
$('html, body').animate({
|
|
scrollTop: ($('#wkpayment-error').offset().top - 200)
|
|
}, 2000);
|
|
return false;
|
|
}
|
|
|
|
if (wk_is_logged == 0 && customer_is_guest == 0) {
|
|
wknewtoken = createAccount();
|
|
if (!wknewtoken) {
|
|
return false;
|
|
}
|
|
}
|
|
if (typeof wknewtoken === 'undefined') {
|
|
wknewtoken = wktoken;
|
|
}
|
|
stepCustomer = createCustomerAddress(wknewtoken);
|
|
if (!stepCustomer) {
|
|
wkShowError(address_failed);
|
|
return false;
|
|
}
|
|
|
|
var shippingMethodWithComma = $('input:radio.wk_selected_shipping:checked').val();
|
|
var shippingMethod = removeCommaFromShipping(shippingMethodWithComma);
|
|
if (typeof shippingMethod !== 'undefined') {
|
|
stepCarrier = setDeliveryMethod(shippingMethod, false, false, wknewtoken);
|
|
if (!stepCarrier) {
|
|
$('#wkshipping-error').show().text(no_shipping_select); // Shipping is not updated
|
|
$('html, body').animate({
|
|
scrollTop: ($('.wk-shipping-icon').offset().top - 10)
|
|
}, 2000);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
$('#wkpayment-error, #wkshipping-error').hide().text('');
|
|
makePayment();
|
|
return false;
|
|
});
|
|
|
|
if (typeof noAddress !== 'undefined') {
|
|
showNewDeliveryAddress(2);
|
|
}
|
|
});
|
|
|
|
function wkShowError(msg) {
|
|
$.growl.error({ title: "", message: msg });
|
|
}
|
|
|
|
function wkShowSuccess(msg) {
|
|
$.growl.notice({ title: "", message: msg });
|
|
}
|
|
|
|
function validateGuestOrNewCustomer() {
|
|
if (validateGuestEmail()) {
|
|
var wk_day = $('select[name=wk_day]').val();
|
|
var wk_month = $('select[name=wk_month]').val();
|
|
var wk_year = $('select[name=wk_year]').val();
|
|
|
|
if (typeof wk_day !== 'undefined' || typeof wk_month !== 'undefined' || typeof wk_year !== 'undefined') {
|
|
if (wk_day == 0 && wk_month == 0 && wk_year == 0) {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
} else if (wk_day > 0 && wk_month > 0 && wk_year > 0) {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
} else if (!wk_day) {
|
|
$('#wk_day').addClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
return false;
|
|
} else if (!wk_month) {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').addClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
return false;
|
|
} else if (!wk_year) {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').addClass('border-error');
|
|
return false;
|
|
} else {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
}
|
|
} else {
|
|
$('#wk_day').removeClass('border-error');
|
|
$('#wk_month').removeClass('border-error');
|
|
$('#wk_year').removeClass('border-error');
|
|
}
|
|
|
|
var create_account = 0;
|
|
if ($('#wk-create-account').is(":checked")) {
|
|
var create_account = 1;
|
|
}
|
|
if (checkEmailExist($('#wk-email').val(), create_account)) {
|
|
if (create_account) {
|
|
if (validatePassword()) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} else {
|
|
return true;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function validateGuestEmail() {
|
|
$('#wk-email-error').text('');
|
|
var email = $('#wk-email').val();
|
|
|
|
if (!email) {
|
|
$('#wk-email').addClass('border-error');
|
|
$('#wk-email-error').text(email_required);
|
|
$('.error_wk_email').show();
|
|
return false;
|
|
} else if (!ValidateEmail(email)) {
|
|
$('#wk-email').addClass('border-error');
|
|
$('#wk-email-error').text(email_error);
|
|
$('.error_wk_email').show();
|
|
return false;
|
|
} else if (email.length > 128) {
|
|
$('#wk-email').addClass('border-error');
|
|
$('#wk-email-error').text(email_length);
|
|
$('.error_wk_email').show();
|
|
return false;
|
|
} else if (!ValidateEmail(email)) {
|
|
$('#wk-email').addClass('border-error');
|
|
$('#wk-email-error').text(email_error);
|
|
$('.error_wk_email').show();
|
|
return false;
|
|
} else {
|
|
$('.error_wk_email').hide();
|
|
$('.icon_wk_email').show();
|
|
$('#wk-email').removeClass('border-error').addClass('border-success');
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function validatePassword() {
|
|
$('#wk-password').removeClass('border-error, border-success');
|
|
$('.error_wk_password, .icon_wk_password').hide();
|
|
var password = $('#wk-password').val();
|
|
if (!password) {
|
|
$('#wk-password').addClass('border-error');
|
|
$('#wk-password-error').text(password_required);
|
|
$('#wk-password-error').show();
|
|
$('.error_wk_password').show();
|
|
return false;
|
|
} else if (password.length > 60) {
|
|
$('#wk-password').addClass('border-error');
|
|
$('#wk-password-error').text(password_length);
|
|
$('.error_wk_password').show();
|
|
return false;
|
|
} else {
|
|
$('#wk-password').removeClass('border-error').addClass('border-success');
|
|
$('.error_wk_password').hide();
|
|
$('.icon_wk_password').show();
|
|
$('#wk-password-error').hide();
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function checkEmailExist(email, create_account) {
|
|
Window.error = false;
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'email': email,
|
|
'create_account': create_account,
|
|
'action': 'checkEmail',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result.status == 'ko') {
|
|
$('#' + result.id).removeClass('border-success').addClass('border-error');
|
|
$('#wk-email-error').html(result.msg);
|
|
$('.icon_wk_email').hide();
|
|
$('.error_wk_email').show();
|
|
Window.error = true;
|
|
} else {
|
|
$('#wk-email').removeClass('border-error').addClass('border-success');
|
|
$('.error_wk_email').hide();
|
|
$('.icon_wk_email').show();
|
|
}
|
|
},
|
|
});
|
|
|
|
if (Window.error) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validateCustomerAddress() {
|
|
var selectedDeliveryAddress = $('input[name=wk-delivery-address]:checked').val();
|
|
var selectedInvoiceAddress = $('input[name=wk-invoice-address]:checked').val();
|
|
|
|
// checking delivery address
|
|
if (typeof selectedDeliveryAddress === 'undefined') {
|
|
var formData = $('#wk-delivery-form').serialize();
|
|
var isDeliveryAddressValidated = validateDeliveryFormData(formData, 'delivery');
|
|
if (!isDeliveryAddressValidated) {
|
|
return false;
|
|
}
|
|
} else {
|
|
if (selectedDeliveryAddress == 1) {
|
|
var idDeliveryAddress = $('#wk-existing-delivery-address').val();
|
|
if (typeof idDeliveryAddress === 'undefined') {
|
|
wkShowError(delivery_adrs_not_select);
|
|
return false;
|
|
}
|
|
} else if (selectedDeliveryAddress == 2) {
|
|
var idDeliveryAddress = $('#id-new-delivery-address').val();
|
|
if (typeof idDeliveryAddress === 'undefined') {
|
|
var formData = $('#wk-delivery-form').serialize();
|
|
var isDeliveryAddressValidated = validateDeliveryFormData(formData, 'delivery');
|
|
if (!isDeliveryAddressValidated) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// checking invoice address
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
return true;
|
|
} else {
|
|
if (typeof selectedInvoiceAddress === 'undefined') {
|
|
var formData = $('#wk-invoice-form').serialize();
|
|
var isInvoiceAddressCreated = validateDeliveryFormData(formData, 'invoice');
|
|
if (!isInvoiceAddressCreated) {
|
|
return false;
|
|
}
|
|
} else {
|
|
if (selectedInvoiceAddress == 1) {
|
|
var idInvoiceAddress = $('#wk-existing-invoice-address').val();
|
|
if (typeof idInvoiceAddress === 'undefined') {
|
|
wkShowError(invoice_not_created);
|
|
return false;
|
|
}
|
|
} else if (selectedInvoiceAddress == 2) {
|
|
var idInvoiceAddress = $('#id-new-invoice-address').val();
|
|
if (!idInvoiceAddress) {
|
|
var formData = $('#wk-invoice-form').serialize();
|
|
var isInvoiceAddressCreated = validateDeliveryFormData(formData, 'invoice');
|
|
if (!isInvoiceAddressCreated) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validateOrderSummary() {
|
|
Window.error = false;
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'checkProductQuantity',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
hideOrderSummaryLoader();
|
|
},
|
|
success: function(result) {
|
|
if (!jQuery.isEmptyObject(result)) {
|
|
$.each(result, function(i, item) {
|
|
if (item.status == 'ko') {
|
|
//$('.wkorder_error').show().append('<p>' + item.msg + '</p>');
|
|
$('.wkorder_error .wk-qty-error').remove();
|
|
$('.wkorder_error').show().append('<div class="col-md-12 alert alert-danger wk-qty-error">' + item.msg + '</div>');
|
|
}
|
|
});
|
|
Window.error = true;
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
if (Window.error) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Create a function remove comma from shipping value
|
|
function removeCommaFromShipping(shippingMethod) {
|
|
return shippingMethod.replace(/\,/g,"");
|
|
}
|
|
|
|
function validateShippingSelection() {
|
|
// checking shipping method
|
|
var shippingMethodWithComma = $('input:radio.wk_selected_shipping:checked').val();
|
|
var shippingMethod = removeCommaFromShipping(shippingMethodWithComma);
|
|
if (typeof shippingMethod === 'undefined' && !wkvirtualcart) {
|
|
wkShowError(no_shipping_select);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validatePaymentSelection() {
|
|
// checking payment method
|
|
var paymentMethod = $('input[name=payment-option]:checked').val();
|
|
if (typeof paymentMethod === 'undefined') {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function appendErrorConsoleItems(_errors) {
|
|
var __error_parent_exists = $('#fmm_error_console').length;
|
|
if (__error_parent_exists > 0 && _errors.length > 0) {
|
|
for (var i = 0; i < _errors.length; i++) {
|
|
$('#fmm_error_console').append('<div class="fmm_error_console_item">'+_errors[i]+'</div>');
|
|
}
|
|
}
|
|
errorConsoleDropEverything();
|
|
}
|
|
|
|
function errorConsoleDropEverything() {
|
|
setTimeout(function() {$('#fmm_error_console *').fadeOut(800)}, 5000);
|
|
}
|
|
|
|
function getPaymentBtn(text) {
|
|
return '<span class="btn btn-primary center-block cf_disabled_btn" id="fmm-payment-btn">'+text+'</span>'
|
|
}
|
|
|
|
function makePayment() {
|
|
|
|
var data = $('#shipping_form').serializeArray().reduce(function(obj, item) {
|
|
obj[item.name] = item.value;
|
|
return obj;
|
|
}, {});
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
cache: false,
|
|
url: $("#shipping_form").attr("action"),
|
|
data: data,
|
|
beforeSend: function()
|
|
{
|
|
|
|
},
|
|
success: function( response )
|
|
{
|
|
$('.wk_ps_payment_button').html('<div id="payment-confirmation"><div class="ps-shown-by-js"><button type="submit" class="btn btn-primary center-block"></button></div></div>');
|
|
$('#payment-confirmation button').trigger('click');
|
|
}
|
|
});
|
|
}
|
|
|
|
function createAccount() {
|
|
var fname = $('#wk_delivery_first_name').val();
|
|
var lname = $('#wk_delivery_last_name').val();
|
|
var email = $('#wk-email').val();
|
|
|
|
if (wk_guest_allow == 1) {
|
|
if ($('#wk-create-account').is(":checked")) {
|
|
var create_account = 1;
|
|
var pswrd = $('#wk-password').val();
|
|
} else {
|
|
var create_account = 0;
|
|
}
|
|
} else {
|
|
var create_account = 1;
|
|
var pswrd = $('#wk-password').val();
|
|
}
|
|
var social_title = $('input[name=id_gender]:checked').val();
|
|
if (typeof social_title === 'undefined') {
|
|
social_title = 0;
|
|
}
|
|
var wk_optin = $('input[name=wk-optin]:checked').val();
|
|
if (typeof wk_optin === 'undefined') {
|
|
wk_optin = 0;
|
|
}
|
|
var wk_newsletter = $('input[name=wk-newsletter]:checked').val();
|
|
if (typeof wk_newsletter === 'undefined') {
|
|
wk_newsletter = 0;
|
|
}
|
|
var wk_day = $('select[name=wk_day]').val();
|
|
if (typeof wk_day === 'undefined') {
|
|
wk_day = 0;
|
|
}
|
|
var wk_month = $('select[name=wk_month]').val();
|
|
if (typeof wk_month === 'undefined') {
|
|
wk_month = 0;
|
|
}
|
|
var wk_year = $('select[name=wk_year]').val();
|
|
if (typeof wk_year === 'undefined') {
|
|
wk_year = 0;
|
|
}
|
|
|
|
Window.idCustomer = false;
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'fname': fname,
|
|
'lname': lname,
|
|
'email': email,
|
|
'password': pswrd,
|
|
'social_title': social_title,
|
|
'wk_optin': wk_optin,
|
|
'wk_newsletter': wk_newsletter,
|
|
'wk_day': wk_day,
|
|
'wk_month': wk_month,
|
|
'wk_year': wk_year,
|
|
'action': 'createAccount',
|
|
'create_account': create_account,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result) {
|
|
Window.idCustomer = result;
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
|
|
if (Window.idCustomer) {
|
|
return Window.idCustomer;
|
|
}
|
|
|
|
return Window.idCustomer;
|
|
}
|
|
|
|
function createCustomerAddress(wknewtoken) {
|
|
var selectedDeliveryAddress = $('input[name=wk-delivery-address]:checked').val();
|
|
var selectedInvoiceAddress = $('input[name=wk-invoice-address]:checked').val();
|
|
// checking delivery address
|
|
if (typeof selectedDeliveryAddress === 'undefined') {
|
|
var formData = $('#wk-delivery-form').serialize();
|
|
isDeliveryAddressCreated = createNewAddress(formData, 'delivery', false, false, wknewtoken);
|
|
if (!isDeliveryAddressCreated) {
|
|
wkShowError(delivery_not_created);
|
|
return false;
|
|
}
|
|
} else {
|
|
if (selectedDeliveryAddress == 1) {
|
|
var idDeliveryAddress = $('#wk-existing-delivery-address').val();
|
|
if (typeof idDeliveryAddress === 'undefined') {
|
|
wkShowError(delivery_adrs_not_select);
|
|
return false;
|
|
}
|
|
} else if (selectedDeliveryAddress == 2) {
|
|
var idDeliveryAddress = $('#id-new-delivery-address').val();
|
|
if (typeof idDeliveryAddress === 'undefined') {
|
|
var formData = $('#wk-delivery-form').serialize();
|
|
isDeliveryAddressCreated = createNewAddress(formData, 'delivery', false, false, wknewtoken);
|
|
if (!isDeliveryAddressCreated) {
|
|
wkShowError(delivery_not_created);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// checking invoice address
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
if (typeof selectedDeliveryAddress === 'undefined') {
|
|
var idInvoiceAddress = $('#id-new-delivery-address').val();
|
|
if (typeof idInvoiceAddress === 'undefined') {
|
|
wkShowError(invoice_adrs_not_select);
|
|
return false;
|
|
}
|
|
} else {
|
|
if (selectedDeliveryAddress == 1) {
|
|
var idInvoiceAddress = idDeliveryAddress;
|
|
} else {
|
|
var idInvoiceAddress = $('#id-new-delivery-address').val();
|
|
}
|
|
|
|
if (!idInvoiceAddress) {
|
|
wkShowError(invoice_adrs_not_select);
|
|
return false;
|
|
}
|
|
}
|
|
} else {
|
|
if (typeof selectedInvoiceAddress === 'undefined') {
|
|
var formData = $('#wk-invoice-form').serialize();
|
|
isInvoiceAddressCreated = createNewAddress(formData, 'invoice', false, false, wknewtoken);
|
|
if (!isInvoiceAddressCreated) {
|
|
wkShowError(invoice_not_created);
|
|
return false;
|
|
}
|
|
} else {
|
|
if (selectedInvoiceAddress == 1) {
|
|
var idInvoiceAddress = $('#wk-existing-invoice-address').val();
|
|
if (typeof idInvoiceAddress === 'undefined') {
|
|
wkShowError(invoice_adrs_not_select);
|
|
return false;
|
|
}
|
|
} else if (selectedInvoiceAddress == 2) {
|
|
var idInvoiceAddress = $('#id-new-invoice-address').val();
|
|
if (!idInvoiceAddress) {
|
|
var formData = $('#wk-invoice-form').serialize();
|
|
isInvoiceAddressCreated = createNewAddress(formData, 'invoice', false, false, wknewtoken);
|
|
if (!isInvoiceAddressCreated) {
|
|
wkShowError(invoice_not_created);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validatePostalCode(fieldValue, fieldId, idCountry) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'fieldValue': fieldValue,
|
|
'fieldId': fieldId,
|
|
'idCountry': idCountry,
|
|
'action': 'checkPostalCode',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result.status == 'ko') {
|
|
$('#' + fieldId).addClass('border-error').removeClass('border-success');
|
|
$('.' + fieldId).html(result.msg);
|
|
$('.icon_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
$('.error_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
} else {
|
|
$('.' + fieldId).text('');
|
|
$('#' + fieldId).removeClass('border-error').addClass('border-success');
|
|
$('.icon_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
$('.error_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function validateDeliveryFormData(formData, dataType) {
|
|
Window.error = false;
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'formData': formData,
|
|
'dataType': dataType,
|
|
'action': 'validateDeliveryFormField',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result) {
|
|
$.each(result, function(i, item) {
|
|
if (item.status == 'ko') {
|
|
$('#' + item.id).addClass('border-error').removeClass('border-success');
|
|
$('.' + item.id).html(item.msg);
|
|
$('.icon_' + item.id).addClass('wkhide').removeClass('wkshow');
|
|
$('.error_' + item.id).addClass('wkshow').removeClass('wkhide');
|
|
$("a[href='#wk-existing-" + dataType + "']").trigger('click');
|
|
}
|
|
});
|
|
Window.error = true;
|
|
}
|
|
},
|
|
});
|
|
if (Window.error) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function createNewAddress(formData, dataType, updateShipping, updatePayment, wknewtoken) {
|
|
if (typeof wknewtoken !== 'undefined') {
|
|
if (wknewtoken) {
|
|
wktoken = wknewtoken;
|
|
}
|
|
}
|
|
Window.error = false;
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'formData': formData,
|
|
'dataType': dataType,
|
|
'action': 'createAddress',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result) {
|
|
if (dataType == 'delivery') {
|
|
$('#wk-delivery-address-form').html(result);
|
|
var idDeliveryAddress = $('#id-new-delivery-address').val();
|
|
if (typeof idDeliveryAddress === 'undefined') {
|
|
Window.error = true;
|
|
} else {
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
var idInvoiceAddress = idDeliveryAddress;
|
|
} else {
|
|
var idInvoiceAddress = $('#wk-existing-invoice-address').val();
|
|
}
|
|
updateCustomerAddress(
|
|
idDeliveryAddress,
|
|
idInvoiceAddress,
|
|
dataType,
|
|
updateShipping,
|
|
updatePayment
|
|
);
|
|
}
|
|
} else {
|
|
$('#wk-invoice-address-form').html(result);
|
|
var idInvoiceAddress = $('#id-new-invoice-address').val();
|
|
if (typeof idInvoiceAddress === 'undefined') {
|
|
Window.error = true;
|
|
} else {
|
|
if ($('input[name="wk-delivery-address"]:checked').val() == 1) {
|
|
var idDeliveryAddress = $('#wk-existing-delivery-address option:selected').val();
|
|
} else {
|
|
var idDeliveryAddress = $('#id-new-delivery-address').val();
|
|
}
|
|
updateCustomerAddress(
|
|
idDeliveryAddress,
|
|
idInvoiceAddress,
|
|
dataType,
|
|
updateShipping,
|
|
updatePayment
|
|
);
|
|
}
|
|
}
|
|
} else {
|
|
Window.error = true;
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
|
|
if (Window.error) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function validateAddressField(fieldValue, fieldId, fieldValidation, maxlength, required) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: true,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'fieldValue': fieldValue,
|
|
'fieldId': fieldId,
|
|
'fieldValidation': fieldValidation,
|
|
'maxlength': maxlength,
|
|
'required': required,
|
|
'action': 'validateAddressField',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result.status == 'ko') {
|
|
$('#' + fieldId).addClass('border-error').removeClass('border-success');
|
|
$('.' + fieldId).text(result.msg);
|
|
$('.icon_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
$('.error_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
} else {
|
|
$('.' + fieldId).text('');
|
|
$('#' + fieldId).removeClass('border-error').addClass('border-success');
|
|
$('.icon_' + fieldId).addClass('wkshow').removeClass('wkhide');
|
|
$('.error_' + fieldId).addClass('wkhide').removeClass('wkshow');
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function updateCustomerAddress(idAddress, idAddressInvoice, address, updateShipping, updatePayment) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
cache: false,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'changeAddressCard',
|
|
'address': address,
|
|
'idAddress': idAddress,
|
|
'idAddressInvoice': idAddressInvoice,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
if (address == 'delivery') {
|
|
$('.wk-delivery-address-card').html(result);
|
|
} else if (address == 'invoice') {
|
|
$('.wk-invoice-address-card').html(result);
|
|
}
|
|
$('#wkcustomer_info').html('');
|
|
updateOrderSummary();
|
|
if (updateShipping) {
|
|
updateShippingMethod(0, 0, 0);
|
|
} else {
|
|
showShippingMethodLoader();
|
|
}
|
|
if (updatePayment) {
|
|
updatePaymentMethod(1, false, false);
|
|
} else {
|
|
showPaymentMethodLoader();
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function setDeliveryMethod(idCarrier, idCountry, paymentupdate, wknewtoken) {
|
|
if (typeof wknewtoken !== 'undefined') {
|
|
if (wknewtoken) {
|
|
wktoken = wknewtoken;
|
|
}
|
|
}
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'idCarrier': idCarrier,
|
|
'action': 'setDeliveryOption',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showShippingMethodLoader();
|
|
},
|
|
complete: function() {
|
|
hideShippingMethodLoader();
|
|
},
|
|
success: function(result) {
|
|
if (idCountry) {
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updatePaymentMethod(0, idCountry, idCarrier);
|
|
}
|
|
});
|
|
} else {
|
|
if (paymentupdate) {
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updatePaymentMethod(1, idCountry, false);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
return true;
|
|
}
|
|
|
|
function addVoucherOnCart(discountName) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'addVoucher',
|
|
'discountName': discountName,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
hideOrderSummaryLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result.status == 'ok') {
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updateShippingorPayment();
|
|
}
|
|
});
|
|
} else {
|
|
$('.wkpromo-code').removeClass('wkhide').addClass('wkshow');
|
|
$('.wkpromo-code span').text(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
function deleteCartVoucher(idVoucher) {
|
|
var deletecartvoucher = $.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
//cache: false, //only work correctly with HEAD and GET requests.
|
|
//async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'deleteVoucher',
|
|
'deleteDiscount': idVoucher,
|
|
'token': wktoken,
|
|
},
|
|
});
|
|
|
|
var deletecartvouchersuccess = function(result) {
|
|
if (result.status == 'ok') {
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updateShippingorPayment();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//@TODO::to set error
|
|
|
|
deletecartvoucher.then(deletecartvouchersuccess);
|
|
}
|
|
|
|
function getStateByIdCountry(idCountry, dataAttr) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'getState',
|
|
'idCountry': idCountry,
|
|
'dataAttr': dataAttr,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showCustomerLoader();
|
|
},
|
|
complete: function() {
|
|
hideCustomerLoader();
|
|
},
|
|
success: function(result) {
|
|
/*if (dataAttr == 'delivery') {
|
|
updateShippingMethod(1, idCountry, 0).then(function(updateshippingresponse){
|
|
if (updateshippingresponse) {
|
|
updatePaymentMethod(0, idCountry, 0);
|
|
}
|
|
});
|
|
if (result) {
|
|
$('#wk-delivery-country-state').html(result);
|
|
} else {
|
|
$('#wk-delivery-country-state').html('');
|
|
}
|
|
} else if (dataAttr == 'invoice') {
|
|
if (result) {
|
|
$('#wk-invoice-country-state').html(result);
|
|
} else {
|
|
$('#wk-invoice-country-state').html('');
|
|
}
|
|
}*/
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function saveCart(obj, action, condition, currentQty) {
|
|
Window.success = false;
|
|
if (action == 'saveCartProduct') {
|
|
var idProduct = obj.attr('data-id-product');
|
|
var idProductAttribute = obj.attr('data-id-product-attribute');
|
|
currentQty = obj.attr('data-quantity');
|
|
}
|
|
|
|
var saveCartAjax = $.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
cache: false,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': action,
|
|
'qty': currentQty,
|
|
'operator': condition,
|
|
'idProduct': idProduct,
|
|
'idProductAttribute': idProductAttribute,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
hideOrderSummaryLoader();
|
|
wkShowSuccess(saveSuccessMsg);
|
|
},
|
|
});
|
|
|
|
var saveCartSuccess = function(result) {
|
|
if (result) {
|
|
Window.success = true;
|
|
}
|
|
};
|
|
|
|
saveCartAjax.then(saveCartSuccess);
|
|
return saveCartAjax;
|
|
// if (Window.success) {
|
|
// return true;
|
|
// }
|
|
//
|
|
// return false;
|
|
}
|
|
|
|
function changeCartQuantity(obj, action, condition, currentQty, changebyinput) {
|
|
var changeQty = 0;
|
|
var idProduct = obj.parent().siblings('input.wk-qty').attr('data-id-product');
|
|
var idProductAttribute = obj.parent().siblings('input.wk-qty').attr('data-id-product-attribute');
|
|
var idCustomization = obj.parent().siblings('input.wk-qty').attr('data-id-customization');
|
|
|
|
if (action == 'deleteCartProduct') {
|
|
var idProduct = obj.attr('data-id-product');
|
|
var idProductAttribute = obj.attr('data-id-product-attribute');
|
|
var idCustomization = obj.attr('data-id-customization');
|
|
}
|
|
|
|
if (changebyinput) {
|
|
changeQty = 1;
|
|
var idProduct = obj.attr('data-id-product');
|
|
var idProductAttribute = obj.attr('data-id-product-attribute');
|
|
var idCustomization = obj.attr('data-id-customization');
|
|
}
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': action,
|
|
'qty': currentQty,
|
|
'changeQty': changeQty,
|
|
'operator': condition,
|
|
'idProduct': idProduct,
|
|
'idProductAttribute': idProductAttribute,
|
|
'idCustomization': idCustomization,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
hideOrderSummaryLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result == '0') {
|
|
$('.wkorder_error').show().text(wk_no_longer);
|
|
} else if (result == '2') {
|
|
$('.wkorder_error').show().text(wk_no_stock);
|
|
} else if (result == '3') {
|
|
$('.wkorder_error').show().text(wk_minimum_qty);
|
|
} else if (result == '4') {
|
|
$('.wkorder_error').show().text(wk_max_qty);
|
|
} else if (result == '5') {
|
|
$('.wkorder_error').show().text(wk_update_qty_err);
|
|
} else if (result == 6) {
|
|
window.location.reload(true);
|
|
} else if (result == 7) {
|
|
// Nothing happend as no quantity change
|
|
} else if (result) {
|
|
$('.wkorder_error').hide().text('');
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updateShippingorPayment();
|
|
}
|
|
});
|
|
updateFooterBlock();
|
|
wkShowSuccess(deleteSuccessMsg)
|
|
} else {
|
|
window.location.reload(true);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
function addProductIntoCart(idProduct, idProductAttribute) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcart,
|
|
cache: false,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'update',
|
|
'token': wktoken,
|
|
'add': 1,
|
|
'qty': 1,
|
|
'id_product': idProduct,
|
|
'id_customization': 0,
|
|
},
|
|
beforeSend: function() {
|
|
//showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
//hideOrderSummaryLoader();
|
|
},
|
|
success: function(result) {
|
|
if (result) {
|
|
$('html, body').animate({
|
|
scrollTop: ($('#wk-one-page-checkout').offset().top)
|
|
}, 2000, function() {
|
|
updateOrderSummary().then(function(ordersummaryresponse){
|
|
if (ordersummaryresponse) {
|
|
updateShippingorPayment();
|
|
}
|
|
});
|
|
updateFooterBlock();
|
|
});
|
|
} else {
|
|
window.location.reload(true);
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function updateFooterBlock() {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
cache: false,
|
|
async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'updateFooter',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
|
|
},
|
|
complete: function() {
|
|
|
|
},
|
|
success: function(result) {
|
|
if (result) {
|
|
$('.wk-products').html(result);
|
|
} else {
|
|
$('#wk-products').remove();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function loginSubmit(action, info, condition) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
dataType: 'json',
|
|
data: {
|
|
ajax: true,
|
|
action: action,
|
|
params: info,
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
if (condition == 'login') {
|
|
$('.wk-loader').removeClass('wkhide').addClass('wkshowinline');
|
|
$('#wk-submit-login').attr('disabled', 'disabled');
|
|
}
|
|
},
|
|
complete: function() {
|
|
if (condition == 'login') {
|
|
$('.wk-loader').removeClass('wkshowinline').addClass('wkhide');
|
|
$('#wk-submit-login').removeAttr('disabled');
|
|
}
|
|
},
|
|
success: function(result) {
|
|
if (result.status == 'ok') {
|
|
window.location.reload(true);
|
|
} else {
|
|
$('.wk-login-error').text(result.msg).removeClass('wkhide').addClass('wkshow');
|
|
$('#' + result.id).addClass('border-error');
|
|
}
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function changeLogin(val) {
|
|
if (val == 1) { // Already Login Customers
|
|
$('.wk-login-form').removeClass('wkhide').addClass('wkshow');
|
|
$('.wk-guest-registration, .wk-delivery-address-form').removeClass('wkshow').addClass('wkhide');
|
|
} else if (val == 2) { // Guest Customers
|
|
$('.wk-login-form').removeClass('wkshow').addClass('wkhide');
|
|
$('.wk-guest-registration, .wk-delivery-address-form').removeClass('wkhide').addClass('wkshow');
|
|
$('#wk-registration-password').removeClass('wkshow').addClass('wkhide');
|
|
} else if (val == 3) { // New Account Creation
|
|
$('.wk-login-form').removeClass('wkshow').addClass('wkhide');
|
|
$('.wk-guest-registration, .wk-delivery-address-form').removeClass('wkhide').addClass('wkshow');
|
|
$('#wk-registration-password').removeClass('wkhide').addClass('wkshow');
|
|
}
|
|
}
|
|
|
|
function showNewDeliveryAddress(condition) {
|
|
if (condition == 1) {
|
|
$('#wk-new-delivery').removeClass('wkshow').addClass('wkhide');
|
|
$('#wk-existing-delivery-address').removeAttr('disabled');
|
|
$('.wk-delivery-address-div').slideDown();
|
|
|
|
var idAddress = $('#wk-existing-delivery-address option:selected').val();
|
|
if ($('input[name="wk-different-invoice"]').is(":checked")) {
|
|
var idAddressInvoice = idAddress;
|
|
} else {
|
|
var idAddressInvoice = $('#wk-existing-invoice-address option:selected').val();
|
|
}
|
|
updateCustomerAddress(idAddress, idAddressInvoice, 'delivery', true, true);
|
|
} else if (condition == 2) {
|
|
$('#wk-new-delivery').removeClass('wkhide').addClass('wkshow');
|
|
$('#wk-existing-delivery-address').attr('disabled', 'disabled');
|
|
$('.wk-delivery-address-div').slideUp();
|
|
|
|
var idCountry = $('.wk_address_country option:selected').val();
|
|
getStateByIdCountry(idCountry, 'delivery');
|
|
}
|
|
}
|
|
|
|
function showInvoiceAddress(condition) {
|
|
if (condition == 1) {
|
|
$('#wk-new-invoice').removeClass('wkshow').addClass('wkhide');
|
|
$('#wk-existing-invoice-address').removeAttr('disabled');
|
|
} else if (condition == 2) {
|
|
$('#wk-new-invoice').removeClass('wkhide').addClass('wkshow');
|
|
$('#wk-existing-invoice-address').attr('disabled', 'disabled');
|
|
}
|
|
}
|
|
|
|
function updateOrderSummary() {
|
|
var ordersummary = $.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// cache: false,
|
|
// async: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'updateOrderSummary',
|
|
'token': wktoken,
|
|
},
|
|
beforeSend: function() {
|
|
showOrderSummaryLoader();
|
|
},
|
|
complete: function() {
|
|
hideOrderSummaryLoader();
|
|
},
|
|
});
|
|
|
|
var ordersummarysuccess = function(result) {
|
|
$('#wk-order-summary-ajax').html(result);
|
|
};
|
|
|
|
ordersummary.then(ordersummarysuccess);
|
|
|
|
return ordersummary;
|
|
}
|
|
|
|
function updateShippingMethod(newAddress, idCountry, idState) {
|
|
var updateshippingajax = $.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// async: false,
|
|
// cache: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'updateShipping',
|
|
'newAddress': newAddress,
|
|
'idCountry': idCountry,
|
|
'idState': idState,
|
|
'token': wktoken,
|
|
'wk_is_logged': wk_is_logged
|
|
},
|
|
beforeSend: function() {
|
|
showShippingMethodLoader();
|
|
},
|
|
complete: function() {
|
|
hideShippingMethodLoader();
|
|
initInpost($('.wk-shipping input' + ":checked"));
|
|
},
|
|
});
|
|
|
|
var updateshippingsuccess = function(result) {
|
|
if (wkvirtualcart) {
|
|
$('.wk-shipping-carriers').html('');
|
|
} else {
|
|
$('.wk-shipping-carriers').html(result);
|
|
}
|
|
};
|
|
|
|
updateshippingajax.then(updateshippingsuccess);
|
|
return updateshippingajax;
|
|
}
|
|
|
|
function updatePaymentMethod(showPayment, idCountry, idCarrier) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: wkcheckout,
|
|
// async: false,
|
|
// cache: false,
|
|
data: {
|
|
'ajax': true,
|
|
'action': 'updatePaymentMethod',
|
|
'showPayment': showPayment,
|
|
'idCountry': idCountry,
|
|
'idCarrier': idCarrier,
|
|
'token': wktoken,
|
|
'wk_is_logged': wk_is_logged
|
|
},
|
|
beforeSend: function() {
|
|
showPaymentMethodLoader();
|
|
},
|
|
complete: function() {
|
|
hidePaymentMethodLoader();
|
|
},
|
|
success: function(result) {
|
|
$('.wk-payment-method').html(result);
|
|
},
|
|
error: function() {},
|
|
});
|
|
}
|
|
|
|
function showCustomerLoader() {
|
|
$('#wkcustomer_info').html('<div class="wkloading_overlay"><div class="spinner"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div></div>');
|
|
}
|
|
|
|
function hideCustomerLoader() {
|
|
$('#wkcustomer_info').html('');
|
|
}
|
|
|
|
function showOrderSummaryLoader() {
|
|
$('#wkorder-summary').html('<div class="wkloading_overlay"><div class="spinner"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div></div>');
|
|
}
|
|
|
|
function hideOrderSummaryLoader() {
|
|
$('#wkorder-summary').html('');
|
|
}
|
|
|
|
function showShippingMethodLoader() {
|
|
$('#wkshipping-method').html('<div class="wkloading_overlay"><div class="spinner"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div></div>');
|
|
}
|
|
|
|
function hideShippingMethodLoader() {
|
|
$('#wkshipping-method').html('');
|
|
}
|
|
|
|
function showPaymentMethodLoader() {
|
|
$('#wkpayment-method').html('<div class="wkloading_overlay"><div class="spinner"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div></div>');
|
|
}
|
|
|
|
function hidePaymentMethodLoader() {
|
|
$('#wkpayment-method').html('');
|
|
}
|
|
|
|
function showTermsNConditionLoader() {
|
|
$('#wkcondition_info').html('<div class="wkloading_overlay"><div class="spinner" style="top:-115%;"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div></div>');
|
|
}
|
|
|
|
function hideTermsNConditionLoader() {
|
|
$('#wkcondition_info').html('');
|
|
}
|
|
|
|
function updateShippingorPayment() {
|
|
if (wk_is_logged == 0) {
|
|
var idCountry = $('select[name=wk_delivery_address_country] option:selected').val();
|
|
if (typeof idCountry !== 'undefined') {
|
|
updateShippingMethod(1, idCountry, 0).then(function(updateshippingresponse){
|
|
if (updateshippingresponse) {
|
|
updatePaymentMethod(0, idCountry, false);
|
|
}
|
|
});
|
|
} else {
|
|
updateShippingMethod(0, false, 0).then(function(updateshippingresponse){
|
|
if (updateshippingresponse) {
|
|
updatePaymentMethod(1, false, false);
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
updateShippingMethod(0, false, 0).then(function(updateshippingresponse){
|
|
if (updateshippingresponse) {
|
|
updatePaymentMethod(1, false, false);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function ValidateEmail(email) {
|
|
var check = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
|
|
return check.test(email);
|
|
};
|