Woocommerce - added_to_cart 触发器

Posted

技术标签:

【中文标题】Woocommerce - added_to_cart 触发器【英文标题】:Woocommerce - added_to_cart trigger 【发布时间】:2016-03-23 22:24:33 【问题描述】:

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

【问题讨论】:

【参考方案1】:

假设您使用的是默认的 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];
);

【讨论】:

不幸的是,我无法让它工作 :-( 我不能以某种方式从 added_to_cart 中得到它吗? 您是否尝试过在 Storefront 演示中通过控制台运行上述代码?然后再为您的网页?它对两者都不起作用,还是仅对您起作用?到页面的链接会很方便,所以我可以看到 HTML。 我无法让它在我自己的网站上运行。但是,您的建议使我朝正确的方向点头,最终我为所需的产品提供了一个名为 popup 的数据属性,当它们应该制作一个警报框时。现在下面的代码有点工作:var popup; jQuery('.add_to_cart_button').click(function() popup = jQuery(this).attr('popup'); ); jQuery('body').on('added_to_cart',function() if (popup === 'yes') alert(popup); ); 唯一的问题是我收到 3 或 4 个警报。我怎样才能强制它只触发一次?这是我的网站:tiny.cc/w65c7x【参考方案2】:

所以我也遇到了这个确切的问题,解决方法很简单。

您的函数实际上是正确的,它只需要包装在.ready() 函数中。

您的代码如下所示:

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

【讨论】:

【参考方案3】:

在你的模板“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

【讨论】:

您好,欢迎来到 SO。如果你回答一个问题,你必须至少解释为什么你的答案有帮助以及如何帮助。无论如何,您的建议并不能回答问题。

以上是关于Woocommerce - added_to_cart 触发器的主要内容,如果未能解决你的问题,请参考以下文章

php [wpo woocommerce] optimizacion woocommerce #woocommerce #wordpress

woocommerce 预订状态更改 woocommerce 订单状态

woocommerce网站主题添加代码

WooCommerce 钩子 – woocommerce_update_order 问题

WooCommerce 'woocommerce_payment_complete' 未在 PayPal 沙盒付款上运行

Woocommerce:woocommerce 查询库存数量简单和可变产品