Listă de evenimente JavaScript în frontend-ul WooCommerce
Unde pot găsi o listă exhaustivă a evenimentelor Javascript definite de WooCommerce (evenimente precum woocommerce_variation_has_changed
)?

În căutarea aceluiași lucru, am făcut o scurtă incursiune în fișierele sursă JS.
Evenimente JavaScript în WooCommerce
Evenimente JS la finalizarea comenzii în WooCommerce
$( document.body ).trigger( 'init_checkout' );
$( document.body ).trigger( 'payment_method_selected' );
$( document.body ).trigger( 'update_checkout' );
$( document.body ).trigger( 'updated_checkout' );
$( document.body ).trigger( 'checkout_error' );
$( document.body ).trigger( 'applied_coupon_in_checkout' );
$( document.body ).trigger( 'removed_coupon_in_checkout' );
Evenimente JS pe pagina coșului în WooCommerce
$( document.body ).trigger( 'wc_cart_emptied' );
$( document.body ).trigger( 'update_checkout' );
$( document.body ).trigger( 'updated_wc_div' );
$( document.body ).trigger( 'updated_cart_totals' );
$( document.body ).trigger( 'country_to_state_changed' );
$( document.body ).trigger( 'updated_shipping_method' );
$( document.body ).trigger( 'applied_coupon', [ coupon_code ] );
$( document.body ).trigger( 'removed_coupon', [ coupon ] );
Evenimente JS pe pagina unui singur produs în WooCommerce
$( '.wc-tabs-wrapper, .woocommerce-tabs, #rating' ).trigger( 'init' );
Evenimente JS pe pagina produselor variabile în WooCommerce
$( document.body ).trigger( 'found_variation', [variation] );
Evenimente JS la adăugarea în coș în WooCommerce
$( document.body ).trigger( 'adding_to_cart', [ $thisbutton, data ] );
$( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash, $thisbutton ] );
$( document.body ).trigger( 'removed_from_cart', [ response.fragments, response.cart_hash, $thisbutton ] );
$( document.body ).trigger( 'wc_cart_button_updated', [ $button ] );
$( document.body ).trigger( 'cart_page_refreshed' );
$( document.body ).trigger( 'cart_totals_refreshed' );
$( document.body ).trigger( 'wc_fragments_loaded' );
Evenimente JS la adăugarea metodei de plată în WooCommerce
$( document.body ).trigger( 'init_add_payment_method' );
Pentru a asculta aceste evenimente, folosește:
jQuery('<event_target>').on('<event_name>', function(){
console.log('<event_name> triggered');
});
De exemplu:
jQuery('body').on('init_checkout', function(){
console.log('init_checkout triggered');
// now.do.whatever();
});

Mulțumesc pentru răspuns, exact acest lucru căutam, voi reveni aici dacă găsesc alte evenimente.

Această soluție nu funcționează pentru mine. Bănuiesc că scriptul meu trebuie să fie dependent de scripturile WooCommerce, dar nu știu sub ce nume sunt înregistrate.

@Badger ce anume nu funcționează? Pe ce pagină lucrezi și ai verificat dacă scripturile WooCommerce sunt încărcate?

Nu se înregistrează nimic în consolă când adaug ceva în coș pe pagina produsului folosind următorul cod: jQuery(function() {
// Produs adăugat în coș
jQuery('body').on('added_to_cart', function(){
console.log('Item was added to cart');
});
});
Scripturile par să se încarce. Am încărcat scriptul meu ca dependent de 'woocommerce'

@Badger îmi pare rău că am uitat să îți răspund. Pentru alții care ar putea întâmpina aceeași problemă, implicit Woocommerce face o reîncărcare completă a paginii la evenimentul de adăugare în coș, de aceea evenimentul JS nu are loc niciodată. Dacă activezi adăugarea în coș cu AJAX în setările WC, vei primi și evenimentul JS.

Poate cineva să adauge o descriere pentru fiecare dintre triggeri? Mai exact, caut un eveniment care este declanșat după un checkout cu succes - ar trebui să folosesc "init_checkout" sau altceva?

@SwimmingG practic, un checkout sau o comandă finalizată cu succes (trimisă) este însoțită de o redirecționare către pagina 'mulțumiri' sau similar. Ai un comportament personalizat pentru asta? Poate woocommerce_thankyou action hook (php) sau ceva similar este ceea ce ai nevoie?

@ViktorBorítás mulțumesc, Viktor - ideal ar fi să pot folosi un trigger care utilizează doar javascript pe front-end în loc să lucrez în php. Dacă nu pot face asta doar cu js, voi trece la ce ai menționat tu. Mulțumesc mult :)

Caut să declanșez verificarea stocului după actualizarea meniurilor selecte extern, dacă nu abordez greșit problema. Trebuie să transmit valorile către ceva pentru a obține un ID de variație.
Gândesc că trebuie să declanșez o reîmprospătare a butonului 'Adaugă în coș', dar nu am avut noroc până acum.

Pentru a găsi o listă completă a tuturor evenimentelor (și a rămâne la curent cu orice noi evenimente adăugate) puteți consulta fișierele .js din directorul:
/wp-content/plugins/woocommerce/assets/js/frontend
Mai jos menționez alte evenimente (în plus față de răspunsul lui @jgangso):
VARIAȚII
hide_variation
declanșat când datele afișate ale variației sunt resetateshow_variation
declanșat când a fost găsită o variație care se potrivește cu toate atributelewoocommerce_variation_select_change
declanșat când un câmp de atribut se schimbăwoocommerce_variation_has_changed
declanșat când selecția variației a fost modificatăcheck_variations
declanșat:- când un câmp de atribut se schimbă
- când se reîncarcă datele variației din DOM
woocommerce_update_variation_values
declanșat când variațiile au fost actualizatewoocommerce_gallery_reset_slide_position
resetează poziția slide-ului dacă variația are o imagine diferită față de cea curentăwoocommerce_gallery_init_zoom
setează imaginile produsului pentru variația aleasă
FRAGMENTE COȘ
wc_fragments_refreshed
declanșat când reîmprospătarea fragmentelor de coș prin Ajax a avut succeswc_fragments_ajax_error
declanșat când reîmprospătarea fragmentelor de coș prin Ajax a eșuatwc_fragment_refresh
reîmprospătează când pagina este afișată după butonul înapoi (safari)wc_fragments_loaded
declanșat după ce fragmentele de coș au fost încărcate
SELECȚIE ȚARĂ (FINALIZARE COMANDA)
country_to_state_changed
declanșat când țara se schimbă din câmpul de selectarecountry_to_state_changing
șiwc_address_i18n_ready
gestionează localizarea
PRODUS SINGULAR
wc-product-gallery-before-init
declanșat înainte de inițializarea tuturor galeriilor de pe paginăwc-product-gallery-after-init
declanșat după inițializarea tuturor galeriilor de pe pagină
GLISOR PRET
price_slider_updated
declanșat după actualizarea glisorului de prețprice_slider_create
declanșat după crearea glisorului de prețprice_slider_slide
declanșat după glisarea pe glisorul de prețprice_slider_change
declanșat după schimbarea glisorului de preț
Răspunsuri conexe:

Pe lângă lista completă de referințe, poți merge pe calea interactivă și să lipești codul de mai jos în consola ta JS, apoi să efectuezi acțiunile în magazin pe care dorești să le targetezi. Urmărește consola pentru a vedea evenimentele declanșate înregistrate.
jQuery(document.body).on(
"init_checkout payment_method_selected update_checkout updated_checkout checkout_error applied_coupon_in_checkout removed_coupon_in_checkout adding_to_cart added_to_cart removed_from_cart wc_cart_button_updated cart_page_refreshed cart_totals_refreshed wc_fragments_loaded init_add_payment_method wc_cart_emptied updated_wc_div updated_cart_totals country_to_state_changed updated_shipping_method applied_coupon removed_coupon",
function (e) {
console.log(e.type)
}
)
