/home/sylamedg/www/wp-content/themes/shop-toolkit/assets/js/woo-debug.js
/**
* WooCommerce AJAX Debug Script
* Remove this file after debugging is complete
*/
(function($) {
'use strict';
console.log('[WC Debug] Script loaded');
// Check if jQuery is available
if (typeof jQuery === 'undefined') {
console.error('[WC Debug] jQuery is NOT loaded!');
return;
}
console.log('[WC Debug] jQuery version:', $.fn.jquery);
// Check WooCommerce params
if (typeof wc_add_to_cart_params !== 'undefined') {
console.log('[WC Debug] wc_add_to_cart_params found:', wc_add_to_cart_params);
} else {
console.error('[WC Debug] wc_add_to_cart_params is NOT defined!');
}
// Check cart fragment params
if (typeof wc_cart_fragments_params !== 'undefined') {
console.log('[WC Debug] wc_cart_fragments_params found:', wc_cart_fragments_params);
} else {
console.warn('[WC Debug] wc_cart_fragments_params is NOT defined (may load later)');
}
$(document).ready(function() {
console.log('[WC Debug] Document ready');
// Check for add to cart buttons
var addToCartButtons = $('.ajax_add_to_cart');
console.log('[WC Debug] Found ' + addToCartButtons.length + ' ajax_add_to_cart buttons');
// Check for cart widget
var cartWidget = $('.widget_shopping_cart_content');
console.log('[WC Debug] Cart widget found:', cartWidget.length > 0);
// Check body class
var hasWcJs = $('body').hasClass('woocommerce-js');
var hasWcNoJs = $('body').hasClass('woocommerce-no-js');
console.log('[WC Debug] body has woocommerce-js:', hasWcJs);
console.log('[WC Debug] body has woocommerce-no-js:', hasWcNoJs);
// Listen for WooCommerce events
$(document.body).on('adding_to_cart', function(e, button, data) {
console.log('[WC Debug] EVENT: adding_to_cart', { button: button, data: data });
});
$(document.body).on('added_to_cart', function(e, fragments, cart_hash, button) {
console.log('[WC Debug] EVENT: added_to_cart', { fragments: fragments, cart_hash: cart_hash, button: button });
});
$(document.body).on('removed_from_cart', function(e, fragments, cart_hash, button) {
console.log('[WC Debug] EVENT: removed_from_cart');
});
$(document.body).on('wc_cart_button_updated', function(e, button) {
console.log('[WC Debug] EVENT: wc_cart_button_updated');
});
$(document.body).on('cart_page_refreshed', function() {
console.log('[WC Debug] EVENT: cart_page_refreshed');
});
$(document.body).on('cart_totals_refreshed', function() {
console.log('[WC Debug] EVENT: cart_totals_refreshed');
});
$(document.body).on('wc_fragments_refreshed', function() {
console.log('[WC Debug] EVENT: wc_fragments_refreshed');
});
$(document.body).on('wc_fragments_loaded', function() {
console.log('[WC Debug] EVENT: wc_fragments_loaded');
});
// Monitor AJAX requests
$(document).ajaxSend(function(event, jqXHR, settings) {
if (settings.url && settings.url.indexOf('wc-ajax') !== -1) {
console.log('[WC Debug] AJAX Request:', settings.url, settings.data);
}
});
$(document).ajaxComplete(function(event, jqXHR, settings) {
if (settings.url && settings.url.indexOf('wc-ajax') !== -1) {
console.log('[WC Debug] AJAX Complete:', settings.url, 'Status:', jqXHR.status);
try {
var response = JSON.parse(jqXHR.responseText);
console.log('[WC Debug] AJAX Response:', response);
} catch(e) {
console.log('[WC Debug] AJAX Response (raw):', jqXHR.responseText);
}
}
});
$(document).ajaxError(function(event, jqXHR, settings, error) {
if (settings.url && settings.url.indexOf('wc-ajax') !== -1) {
console.error('[WC Debug] AJAX Error:', error);
}
});
// Manual test function
window.testWooCommerceAjax = function() {
console.log('[WC Debug] Manual test initiated');
var firstButton = $('.ajax_add_to_cart').first();
if (firstButton.length) {
console.log('[WC Debug] Clicking first add to cart button');
firstButton.trigger('click');
} else {
console.error('[WC Debug] No add to cart button found');
}
};
console.log('[WC Debug] To manually test, run: testWooCommerceAjax()');
});
// Check after window load (when all scripts should be loaded)
$(window).on('load', function() {
console.log('[WC Debug] Window load complete');
// Re-check wc_cart_fragments_params
if (typeof wc_cart_fragments_params !== 'undefined') {
console.log('[WC Debug] wc_cart_fragments_params (on load):', wc_cart_fragments_params);
} else {
console.error('[WC Debug] wc_cart_fragments_params still NOT defined after load!');
}
// Check body class again
var hasWcJs = $('body').hasClass('woocommerce-js');
console.log('[WC Debug] body has woocommerce-js (on load):', hasWcJs);
});
})(jQuery);