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.
116 lines
2.8 KiB
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);
|
|
|