2

当我把我的代码functions.php

从...开始

add_action( 'woocommerce_order_status_completed', 'do_something' );
here is my code

有用!但是当我把它放进去plugin

if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {

    if ( ! class_exists( 'WC_Some_class' ) ) {

    class  WC_Some_class {
            public function __construct() {
            add_action( 'woocommerce_order_status_completed', 'do_something' );
}
script ...

}
}
// finally instantiate our plugin class and add it to the set of globals
        $WC_Some_class = new WC_Some_class();
    }
}

这不起作用。为什么?

4

1 回答 1

5

这是通过删除部分代码并对删除键过于热情的情况之一,导致非常重要的信息丢失。

但是,我会在黑暗中刺伤并假设您正在将函数从 functions.php 移到类中。因此,您的 add_action 必须知道它需要调用类的函数(方法),而不是全局定义的函数。

尝试:

add_action( 'woocommerce_order_status_completed', array(&$this, 'do_something') );
于 2013-09-02T20:08:22.343 回答