【问题标题】:Run jQuery after WooCommerce AJAX cart update在 WooCommerce AJAX 购物车更新后运行 jQuery
【发布时间】:2017-01-11 17:57:24
【问题描述】:

WooCommerce:

我有一些加载到 document.ready 上的 jQuery,它会影响数量输入框。效果很好。

我的问题是,当我更新购物车/删除项目时,jQuery 需要再次运行,因为 AJAX 调用会杀死它(刷新它)。是否有一些我可以添加的钩子/过滤器在购物车更新后重新运行我的脚本?我已经搜索过,但找不到任何东西(或者我可能不知道我在寻找什么)。

谢谢!!!!

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    WooCommerce 脚本内置了多个custom events。您自己的脚本可以监听这些事件并在它们被触发时运行您自己的代码。对于您的情况,最明显的一个可能是updated_cart_totals,但updated_wc_div 也可能会有所帮助,我不确定没有测试。经过测试并且可以工作。

    $( document.body ).on( 'updated_cart_totals', function(){
        //re-do your jquery
    });
    

    【讨论】:

    • 你真棒赫尔加。
    • 谢谢,仅在 document.body 周围没有任何引号的情况下工作
    • 当我单击此答案中的“自定义事件”链接时,我感到非常失望。我希望找到所有 WooCommerce 自定义事件的文档。第二个链接被证明更有用,但真的需要筛选所有 WooCommerce JavaScript 文件以找到可用的自定义事件吗?
    • 我不知道有没有列出所有自定义 JS 事件的文档。据我所知,是的,您确实必须筛选源代码。
    • @Nathan trigger 仍然存在,所以我认为它应该仍然有效。
    【解决方案2】:

    我还需要在用户从购物车中删除商品后运行一个函数,而上述事件 updated_cart_totalsupdated_wc_div 对我不起作用。

    深入了解 Woocommerce 前端代码

    [/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js]

    我发现了这些事件:

    $(document.body).on('added_to_cart removed_from_cart', do_magic);
    

    这些就像一个魅力!

    【讨论】:

      【解决方案3】:

      就我而言,我必须添加以下内容:

      jQuery(document.body).on('removed_from_cart updated_cart_totals', function () {
          location.reload();
      });
      

      因为我有一个巨大的自定义 js 购物车提交

      【讨论】:

      • 只需确保使用 wp_footer 钩子将其添加到 functions.php 文件中!
      猜你喜欢
      • 2018-07-29
      • 1970-01-01
      • 2016-10-09
      • 2016-10-31
      • 1970-01-01
      • 2012-12-05
      • 2017-01-20
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多