知道为什么当用户未登录时 woocommerce_checkout_order_processed 不会触发吗?

问题描述 投票:0回答:2

正在开发 WordPress + Woocommerce 插件。下订单并保存后尝试运行功能。尝试过:

  • woocommerce_谢谢
  • woocommerce_checkout_order_processed

尝试过的优先级:

  • 10
  • 5
  • 1

我在做什么:

add_action('woocommerce_checkout_order_processed', 'func_do_my_magic', 10,1)

function func_do_my_magic($order_id) {
    //Do my magic here using $order_id
}

我的期待:

每个新订单所要发挥的魔力

发生了什么:

当下订单的用户已经登录时,魔法就完成了,对于访客订单或未登录用户的订单,魔法不会完成

有什么想法吗?

提前致谢

wordpress woocommerce hook-woocommerce
2个回答
0
投票
add_action('woocommerce_order_status_processing', 'custom_process_order', 10, 1);
function custom_process_order($order_id){
//do some your magic here
}

试试这个代码..


0
投票

就我而言,问题出在 Discount Rules PRO 2.0 插件上。他们停用所有其他 woocommerce_checkout_order_processed 挂钩(以及其他一些挂钩),以禁用其他折扣插件。

他们提供 advanced_woo_discount_rules_exclude_hooks_from_removing 排除过滤器:

add_filter( 'advanced_woo_discount_rules_exclude_hooks_from_removing', function( $filters )  {
    $filters['woocommerce_checkout_order_processed'][] = 'YourClassName|your_function_name';

    return $filters;
}, 10, 1 );
© www.soinside.com 2019 - 2024. All rights reserved.