Woocommerce - added_to_cart触发器

时间:2015-12-17 12:36:39

标签: php jquery ajax wordpress woocommerce

我正在尝试使用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 ] );

3 个答案:

答案 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
}