【问题标题】:Woocommerce added to cart hook (after the product was successfully added to cart)Woocommerce 添加到购物车挂钩(产品成功添加到购物车后)
【发布时间】:2017-08-02 14:54:05
【问题描述】:

我需要一个在将产品添加到购物车后触发的钩子。类似于“woocommerce_add_to_cart”的成功回调。

我想它会是“woocommerce_added_to_cart”之类的东西,但找不到类似的东西。我知道有一个 ajax 事件“add_to_cart”,但是通过 ajax 来做这件事对我来说需要很多代码。

更新 - 我的用例: 我正在我的 wc shop 上发出 slack 通知。我所有的“添加到购物车”按钮都是 ajax,从单击“添加到购物车”到出现在购物车中大约需要 0.6 秒。如果我使用“woocommerce_add_to_cart”钩子添加我的 slack 通知,那么它会等到将通知传递给 slack,然后更新最多 2 秒的购物车,这太多了。 最好的情况是在产品成功添加到购物车后触发一个 php 钩子,这不会影响它。

【问题讨论】:

  • 看起来一样。我编辑了我的帖子,以便您可以查看我的用例以更好地了解我的需求。

标签: php wordpress woocommerce


【解决方案1】:

为 Google 搜索者回答这个老问题:

将商品添加到购物车后触发woocommerce_add_to_cart 操作。

并且可以像这样使用:

add_action( 'woocommerce_add_to_cart', function ()
{
  // your code here
});

相关操作woocommerce_cart_item_removed 在删除项目后触发

【讨论】:

  • 对钩子使用闭包不是一个好主意,因为您以后无法使用 remove_action 删除它们。
【解决方案2】:

这不是问题的直接答案,它更像是他的用例场景的解决方案。

您可以在系统中的某处创建一个FIFO 队列来处理所有的松弛通知发送。

场景是这样的:

  1. 将新商品添加到购物车时,您会为其创建一个简单的队列记录(例如:AWS SQS、DB 表记录等)
  2. 使用 cron-job,您可以执行某种代码,从队列中读取条目并执行“发送通知”。

使用此技术隔离可能导致响应时间延迟的操作,例如通知发送电子邮件。

【讨论】:

    猜你喜欢
    • 2014-11-21
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2019-10-02
    • 2011-12-19
    • 1970-01-01
    • 2015-05-03
    相关资源
    最近更新 更多