我正在尝试使用WooCommerce added_to_cart触发器在将特定产品添加到购物车时触发弹出窗口。到目前为止,我已成功完成以下任务:
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 ] );
答案 0 :(得分:6)
所以我也遇到了这个问题,修复非常简单。
您的功能实际上是正确的,它只需要包含在.ready()
函数中。
您的代码如下所示:
jQuery(document).ready(function($){
$('body').on( 'added_to_cart', function(){
alert("testing!");
});
});
答案 1 :(得分:2)
假设您使用的是默认的WooCommerce html结构,这应该对您有用。
我已经通过Storefront演示页面上的Chrome控制台运行它进行了测试,该页面位于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];
});
答案 2 :(得分:-1)
将此代码插入模板的“ functions.php”中
add_action('wp_footer','SA_added_to_cart');
function SA_added_to_cart(){?>
<script type="text/javascript">
// Ready state
(function($){
$( document.body ).on( 'added_to_cart', function(){
alert("testing!");
});
})(jQuery); // "jQuery" Working with WP (added the $ alias as argument)
</script>
<?php
}