gpt4 book ai didi

php - woocommerce_order_status_completed 未触发

转载 作者:可可西里 更新时间:2023-11-01 12:28:17 26 4
gpt4 key购买 nike

我想编写一个自定义插件,在 woocommerce 订单完成后执行一些操作,但我无法让这个 Hook 工作。我可以看到这个问题被问过很多次。

喜欢这里:https://wordpress.stackexchange.com/questions/134463/woocommerce-order-status-completed-action-hook-not-working

此处:https://wordpress.org/support/topic/woocommerce_order_status_completed-is-not-working

这里:https://wordpress.org/support/topic/woocommerce_order_status_completed-action-hook-not-working

但我无法控制这些人收到的答案。

我尝试用几种不同的方式添加 Action :

add_action( 'woocommerce_order_status_completed', 'ikwoocommerceorderstatuscompleted_func');

add_action( 'woocommerce_order_status_completed', array($this,'ikwoocommerceorderstatuscompleted_func'), 10, 1);

add_action( 'woocommerce_order_status_completed', array(&$this,'ikwoocommerceorderstatuscompleted_func'), 10, 1);

还尝试了一个类:

class IKHooks {
function __construct() {
add_action( 'woocommerce_order_status_completed', array($this,'ikwoocommerceorderstatuscompleted_func'), 10, 1);
}

public function ikwoocommerceorderstatuscompleted_func( $order_id ) {

}
}

我什至试图将 Action 放在类之外:

add_action( 'woocommerce_order_status_completed', array(IKHooks,'ikwoocommerceorderstatuscompleted_func'), 10, 1);

这些例子都不起作用。 :(

最佳答案

在调用 hook 之前检查以下步骤。

  1. 检查订单完成电子邮件是否已发送。

  2. Hook 已在插件文件或主题 functions.php

    中正确注册
add_action( 'woocommerce_order_status_completed','callback_function_name' );

function callback_function_name(){
global $wp_filter;
print_r($wp_filter);
exit;
}

检查回调函数的名称是否在钩子(Hook)数组中:

[woocommerce_order_status_completed] => Array
(
[10] => Array
(
[wc_paying_customer] => Array
(
[function] => wc_paying_customer
[accepted_args] => 1
)

[wc_downloadable_product_permissions] => Array
(
[function] => wc_downloadable_product_permissions
[accepted_args] => 1
)

[callback_function_name] => Array
(
[function] => callback_function_name
[accepted_args] => 3
)

)

)

如果您找到它,那么一切正常,这意味着您的主题或 functions.php 文件可能存在问题。检查文件中的 Hook 或回调函数,然后查找 remove_actionremove_all_actions,这可能是阻止调用 Hook 的原因。

你也可以通过这种方式签到

add_action( 'woocommerce_order_status_completed', 'callback_function_name', 1);

将 Hook 的优先级从 10 更改为 1,以便它比任何其他操作或 Hook 首先被调用。

关于php - woocommerce_order_status_completed 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36315825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com