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.
 
 
 
 
 
cosmopet.ae/wp-content/themes/woodmart22/js/scripts/wc/woodmartCompare.js

116 lines
2.8 KiB

/* global woodmart_settings */
(function($) {
woodmartThemeModule.woodmartCompare = function() {
var cookiesName = 'woodmart_compare_list';
if (woodmart_settings.is_multisite) {
cookiesName += '_' + woodmart_settings.current_blog_id;
}
var $body = woodmartThemeModule.$body,
$widget = $('.wd-header-compare'),
compareCookie = Cookies.get(cookiesName);
if ($widget.length > 0 && 'undefined' !== typeof compareCookie) {
try {
var ids = JSON.parse(compareCookie);
$widget.find('.wd-tools-count').text(ids.length);
}
catch (e) {
console.log('cant parse cookies json');
}
}
$body.on('click', '.wd-compare-btn a', function(e) {
var $this = $(this),
id = $this.data('id'),
addedText = $this.data('added-text');
if ($this.hasClass('added')) {
return true;
}
e.preventDefault();
$this.addClass('loading');
jQuery.ajax({
url : woodmart_settings.ajaxurl,
data : {
action: 'woodmart_add_to_compare',
id : id
},
dataType: 'json',
method : 'GET',
success : function(response) {
if (response.table) {
updateCompare(response);
woodmartThemeModule.$document.trigger('added_to_compare');
} else {
console.log('something wrong loading compare data ', response);
}
},
error : function() {
console.log('We cant add to compare. Something wrong with AJAX response. Probably some PHP conflict.');
},
complete: function() {
$this.removeClass('loading').addClass('added');
if ($this.find('span').length > 0) {
$this.find('span').text(addedText);
} else {
$this.text(addedText);
}
}
});
});
$body.on('click', '.wd-compare-remove', function(e) {
e.preventDefault();
var $this = $(this),
id = $this.data('id');
$this.addClass('loading');
jQuery.ajax({
url : woodmart_settings.ajaxurl,
data : {
action: 'woodmart_remove_from_compare',
id : id
},
dataType: 'json',
method : 'GET',
success : function(response) {
if (response.table) {
updateCompare(response);
} else {
console.log('something wrong loading compare data ', response);
}
},
error : function() {
console.log('We cant remove product compare. Something wrong with AJAX response. Probably some PHP conflict.');
},
complete: function() {
$this.addClass('loading');
}
});
});
function updateCompare(data) {
var $widget = $('.wd-header-compare');
if ($widget.length > 0) {
$widget.find('.wd-tools-count').text(data.count);
}
var $wcCompareTable = $('.wd-compare-table');
if ($wcCompareTable.length > 0) {
$wcCompareTable.replaceWith(data.table);
}
}
};
$(document).ready(function() {
woodmartThemeModule.woodmartCompare();
});
})(jQuery);