Woocommerce – триггер add_to_cart

Я пытаюсь использовать триггер add_to_cart WooCommerce для запуска всплывающего окна при добавлении определенных продуктов в корзину. До сих пор мне удалось:

jQuery('body').on('added_to_cart',function() { alert("testing!"); }); 

Это показывает окно предупреждения, когда какой-либо продукт добавляется в корзину. Тем не менее, я хотел бы, чтобы предупреждение отображалось только для определенных категорий. Но как я могу проверить, к какой категории относится товар, добавленный в корзину?

Источник для добавления в корзину: https://github.com/woothemes/woocommerce/blob/master/assets/js/frontend/add-to-cart.js

И этот триггер в этом вопросе:

 $( document.body ).trigger( 'added_to_cart', [ fragments, cart_hash, $thisbutton ] ); 

Related of "Woocommerce – триггер add_to_cart"

Поэтому я столкнулся с этой проблемой, и исправление довольно простое.

Ваша функция действительно правильная, ее просто нужно обернуть в функцию .ready() .

Ваш код будет выглядеть так:

 jQuery(document).ready(function($){ $('body').on( 'added_to_cart', function(){ alert("testing!"); }); }); 

Предполагая, что вы используете структуру html по умолчанию WooCommerce, это должно быть полезно вам.

Я протестировал его, запустив его через консоль Chrome на демонстрационной странице Storefront, которая находится здесь: http://demo2.woothemes.com/storefront/shop/ . Он отображает предупреждающее сообщение только в том случае, если в корзину добавляется продукт «радио», он находит категорию из классов родительского <li> для продукта.

 $ = jQuery; var lastCategory; $('body').on('added_to_cart',function() { if(lastCategory === 'radios'){ alert('a radio was added!'); } }); $('.add_to_cart_button').on('click',function() { lastCategory = $(this).closest('li').attr('class').split('product-cat-')[1].split(' ')[0]; });