我使用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:
可能值得注意的是,这在管理中用于纯粹的后端目的。
最合适的回答,由SO网友:Ben Everard 整理而成
我已经解决了这个问题,在尝试了一系列我想再次检查的东西之后,插件根本没有在RESTAPI中加载。
我为讨论中的插件添加了一些基本调试,我看到插件确实正在加载,我的问题是在这种情况下,插件本身没有公开正常请求下的功能。
这个do_action
我想要实现的目标是失败的,因为它还没有注册。我只调用了注册动作的类,现在我的代码可以按需要工作了。