我正在为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购物车的一个旁注中,每个购物车都需要一个唯一的标识符。我知道订单完成后只有唯一的标识符,但是我需要将标识符传递给每个优惠券交易。

任何想法,将不胜感激。

最佳答案

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

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

  • 对于每个与优惠券有关的客户事件,此挂钩仅被调用一次。

    关于php - woocommerce_get_shop_coupon_data被调用3次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49675017/

    10-12 00:10
    查看更多