【问题标题】:woocommerce_get_shop_coupon_data being called 3 timeswoocommerce_get_shop_coupon_data 被调用 3 次
【发布时间】:2018-09-15 10:23:15
【问题描述】:

我正在为 Woocommerce 编写一个插件来对优惠券提供商进行 api 调用,并且我正在通过以下方式连接到 woocommerce_get_shop_coupon_data:

add_filter( 'woocommerce_get_shop_coupon_data', 'wigroup_coupon_injecion', 1, 3  );

一切都按预期工作,但这个钩子在每次页面加载时被调用 3 次,以及在输入或删除优惠券时。

所以我的问题:

除了woocommerce_get_shop_coupon_data之外,如何挂钩正在使用的优惠券?

每次调用3次正常吗?

在 woocommerce 购物车的旁注中,我需要每个购物车的唯一标识符。我明白订单完成时只有一个唯一标识符,但我需要将一个标识符传递给每个优惠券交易。

如有任何想法,我们将不胜感激。

【问题讨论】:

    标签: php wordpress woocommerce hook-woocommerce coupon


    【解决方案1】:

    您应该更好地跟踪与优惠券相关的客户事件:

    1. 当客户使用woocommerce_applied_coupon 操作挂钩应用优惠券代码:

      add_action('woocommerce_applied_coupon', 'action_applied_coupon', 10, 1 );
      function action_applied_coupon( $coupon_code ) {
          // Your code here
      }
      
    2. 当客户使用woocommerce_removed_coupon 操作挂钩删除优惠券代码:

      add_action('woocommerce_removed_coupon', 'action_removed_coupon', 10, 1 );
      function action_removed_coupon( $coupon_code ) {
          // Your code here
      }
      

    这个钩子将只针对每个与优惠券有关的客户事件调用一次……

    【讨论】:

    • 好的,所以这很好,唯一的事情是,我需要触发我的 api,检查优惠券是否有效,以编程方式创建优惠券,然后应用它。 woocommerce_applied_coupon 将首先尝试应用优惠券(不存在),然后只进行 api 调用
    • @BGSmit 请记住,此挂钩仅在客户优惠券事件操作时触发...
    • 是的,我明白,这正是我们需要的结构。我们只能在他们提交时进行凭证验证,这就是为什么我们需要几乎拦截优惠券过程,并添加我们自己的逻辑
    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多