我创建了一个免费插件Ajax Cart AutoUpdate 在产品数量更改时更新购物车页面和迷你购物车总计。它有很好的附加选项,但仅脚本就可以提供更广泛的浏览器支持和更好的用户体验。
由于引入了更新延迟,Ajax调用不会持续发送,在所提供的示例中是1000毫秒,但实际的插件代码使用设置中指定的值。其工作原理如下:
自用户在“设置”(默认值1000)中指定的上次影响数量的操作以来,购物车更新延迟了毫秒数。这意味着当用户完成更改时,更新只会触发一次
同样对于页面速度狂热者,请记住,如果您想推迟jQuery,最好使用wp_enqueue_script, 设置了jQuery依赖项,因为在这种情况下,带有jQuery的内联脚本将失败。
var timeout;
jQuery(\'div.woocommerce\').on(\'change keyup mouseup\', \'input.qty\', function(){ // keyup and mouseup for Firefox support
if (timeout != undefined) clearTimeout(timeout); //cancel previously scheduled event
if (jQuery(this).val() == \'\') return; //qty empty, instead of removing item from cart, do nothing
timeout = setTimeout(function() {
jQuery(\'[name="update_cart"]\').trigger(\'click\');
}, 1000 ); // schedule update cart event with 1000 miliseconds delay
});