访问WP REST API中的插件功能

时间:2018-10-11 作者:Ben Everard

我使用WP REST API从AJAX请求触发任务,我的回调函数尝试触发插件中的操作,但是,该插件似乎没有加载。

以下代码在我的functions.php 文件:

add_action(\'rest_api_init\', function() {

    register_rest_route(\'foo/v1\', \'/capture-payments\', array(
        \'methods\' => \'POST\',
        \'callback\' => [$this, \'capturePayments\'],
    ));

});

public static function capturePayments($request) {

    // this action doesn\'t load, because the plugin hasn\'t loaded
    if ( ! has_action(\'name_of_plugin_action\') ) {
        return new \\WP_Error(\'payment_capture_not_available\', \'Payment capture is not available\', array(\'status\' => 500));
    }

    ...

}
我的问题是,有没有办法加载这个API请求的插件,这样我就可以像在普通主题中一样访问它们的功能?

编辑1:

可能值得注意的是,这在管理中用于纯粹的后端目的。

1 个回复
最合适的回答,由SO网友:Ben Everard 整理而成

我已经解决了这个问题,在尝试了一系列我想再次检查的东西之后,插件根本没有在RESTAPI中加载。

我为讨论中的插件添加了一些基本调试,我看到插件确实正在加载,我的问题是在这种情况下,插件本身没有公开正常请求下的功能。

这个do_action 我想要实现的目标是失败的,因为它还没有注册。我只调用了注册动作的类,现在我的代码可以按需要工作了。

结束