Woocommerce API返回1,但有效

时间:2015-05-29 13:58:12

标签: php wordpress woocommerce

我正在尝试为WooCommerce编写自己的支付网关,并且进展顺利。现在我的支付提供商可以进行回调以验证支付状态,因此我创建了一个回调函数。

 add_action('woocommerce_api_'.strtolower(get_class($this)), array(&$this, 'callback'));

    public function callback()
    {
        mail('my@email.com', 'callback ideal', print_r($_REQUEST,true) . print_r($_SERVER,true));

        echo '+';
        return '+';
    }

当我调用回调URL时,我收到回调函数中的电子邮件,但回调给出的输出始终为1.

我做了一些关于1意味着什么的谷歌搜索,这意味着回调没有结束或根本没有被调用。

在我的情况下它会被调用,因为我收到了电子邮件。有人能指出我正确的方向吗?我一定错过了什么。

更新

当我用回调函数中的退出来杀死脚本时,我可以看到输出。但这可能不是合适的解决方案

1 个答案:

答案 0 :(得分:0)

原因可能是这个动作是通过一些ajax调用的。在wordpress中,ajax默认返回函数结束前的die()函数。因此,如果我们不在自定义函数中指定die(),它将在我们的回调中追加数据1。     所以你必须在输出回显到浏览器之后调用die或exit,以防止返回和我们通过ajax调用的自定义函数中的其他数据。

希望此解决方案可以帮助您。