Run jQuery after WooCommerce AJAX cart update

2020-02-09 08:53发布

问题:

WooCommerce:

I have some jQuery that loads on document.ready that effects the quantity input box. Works great.

My issue is that when I update the cart/delete item, the jQuery needs to run again because the AJAX call kills it (refreshes it). Is there some hook/filter I can add that will re-run my script again after a cart update? Ive searched and can't find anything (or maybe I'm not aware of what I am looking for).

Thank you!!!!

回答1:

The WooCommerce scripts have several custom events built in. Your own script can listen to these events and run your own code when they are triggered. The most obvious one for your case might be updated_cart_totals but updated_wc_div might also be helpful, I'm not sure without testing. Tested and works.

$( document.body ).on( 'updated_cart_totals', function(){
    //re-do your jquery
});


回答2:

I also needed to run a function after user removes item from cart, and the above events updated_cart_totals or updated_wc_div didn't work for me.

After digging into the Woocommerce frontend code

[/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js]

I found these events:

$(document.body).on('added_to_cart removed_from_cart', do_magic);

These worked like a charm!