Wordpress在add_action(插件API)之前死掉

时间:2014-05-28 17:31:15

标签: api woocommerce wordpress

我的设置非常标准,Wordpress + WooCommerce。

我的客户有一个特定的流程,为此我必须开发一个Restful API才能从其他网站创建优惠券。

API运作良好。

在我的API插件代码中,我添加了一个动作以触发电子邮件(我使用自定义电子邮件扩展自WC_Email)

do_action("coupon_code_mail_validation", $params);

所以,在我的WC_Email_Coupon中,我添加了一个类似的触发器:

add_action( 'coupon_code_mail_validation', array( $this, 'trigger' ));

当我执行代码时,我的add_action永远不会被调用(使用XDebug和断点进行验证)。

经过一番研究,我想我发现了为什么,事实上,我是我的API插件,我使用了这个函数:

public function sniff_requests(){
    global $wp;
    if(isset($wp->query_vars['__api'])){
        $this->handle_request();
        exit;
    }
}

我认为这里的wordpress会死掉并且永远不会执行add_action。 我怎么能在WP死后将woocommerce插件加载到API中?

(对于我从以下方面启发的插件:https://gist.github.com/inspectorfegter/2982319

感谢您的帮助,如果您需要更多详细信息,请随时与我联系

1 个答案:

答案 0 :(得分:0)

我明白了;我不得不补充道:

global $woocommerce;
$mailer = $woocommerce->mailer();

最新版本:

WC()->mailer();