You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.2 KiB
72 lines
2.2 KiB
/* global woodmart_settings */
|
|
(function($) {
|
|
woodmartThemeModule.miniCartQuantity = function() {
|
|
var timeout;
|
|
|
|
woodmartThemeModule.$document.on('change input', '.woocommerce-mini-cart .quantity .qty', function() {
|
|
var input = $(this);
|
|
var qtyVal = input.val();
|
|
var itemID = input.parents('.woocommerce-mini-cart-item').data('key');
|
|
var maxValue = input.attr('max');
|
|
var cart_hash_key = woodmart_settings.cart_hash_key;
|
|
var fragment_name = woodmart_settings.fragment_name;
|
|
|
|
clearTimeout(timeout);
|
|
|
|
if (parseInt(qtyVal) > parseInt(maxValue)) {
|
|
qtyVal = maxValue;
|
|
}
|
|
|
|
timeout = setTimeout(function() {
|
|
input.parents('.mini_cart_item').addClass('wd-loading');
|
|
|
|
$.ajax({
|
|
url : woodmart_settings.ajaxurl,
|
|
data : {
|
|
action : 'woodmart_update_cart_item',
|
|
item_id: itemID,
|
|
qty : qtyVal
|
|
},
|
|
success : function(data) {
|
|
if (data && data.fragments) {
|
|
$.each(data.fragments, function(key, value) {
|
|
if ($(key).hasClass('widget_shopping_cart_content')) {
|
|
var dataItemValue = $(value).find('.woocommerce-mini-cart-item[data-key="' + itemID + '"]');
|
|
var dataFooterValue = $(value).find('.shopping-cart-widget-footer');
|
|
var $itemSelector = $(key).find('.woocommerce-mini-cart-item[data-key="' + itemID + '"]');
|
|
|
|
if (!data.cart_hash) {
|
|
$(key).replaceWith(value);
|
|
} else {
|
|
$itemSelector.replaceWith(dataItemValue);
|
|
$('.shopping-cart-widget-footer').replaceWith(dataFooterValue);
|
|
}
|
|
} else {
|
|
$(key).replaceWith(value);
|
|
}
|
|
});
|
|
|
|
if (woodmartThemeModule.supports_html5_storage) {
|
|
sessionStorage.setItem(fragment_name, JSON.stringify(data.fragments));
|
|
localStorage.setItem(cart_hash_key, data.cart_hash);
|
|
sessionStorage.setItem(cart_hash_key, data.cart_hash);
|
|
|
|
if (data.cart_hash) {
|
|
sessionStorage.setItem('wc_cart_created', (new Date()).getTime());
|
|
}
|
|
}
|
|
|
|
woodmartThemeModule.$body.trigger( 'wc_fragments_refreshed' );
|
|
}
|
|
},
|
|
dataType: 'json',
|
|
method : 'GET'
|
|
});
|
|
}, 500);
|
|
});
|
|
};
|
|
|
|
$(document).ready(function() {
|
|
woodmartThemeModule.miniCartQuantity();
|
|
});
|
|
})(jQuery);
|
|
|