Вы можете использовать подход, основанный на селекторе классов CSS.
По сути, вы используете событие click и, с помощью пары вложенных условных операторов, основанных на селекторах CSS, выполняете ваш код.Когда код выполняется, вы возвращаете false, чтобы предотвратить срабатывание оповещения.
Поскольку мы ".disabled" относим класс к .single_add_to_cart_button ", его можно безопасно использовать в любом месте вашей темы JS.
Протестированои это работает.
Источник: https://github.com/woocommerce/woocommerce/blob/master/assets/js/frontend/add-to-cart-variation.js#L94
$('.single_add_to_cart_button').on('click', function (event) {
if ($(this).is('.disabled')) {
event.preventDefault();
if ($(this).is('.wc-variation-is-unavailable')) {
//Do your thing for unavailable variation
} else if ($(this).is('.wc-variation-selection-needed')) {
//Do your thing for not selected variation
}
}
return false;
});