如何解决WP rest API-POST终结点并存储在用户元数据中
我试图在Wordpress上创建一个自定义终结点,以处理WooCommerce身份验证密钥。
在高层,当您使用rest api生成身份验证密钥时,这些API密钥将在单独的POST请求中发送回去。
所以发生了什么事,我的React网站向WooCommerce / Wordpress无头服务器提交了身份验证请求,回调为wordpress_url/xxx/v1/authkeys
。它还需要支持https。
我正在尝试将此xxx/v1/authkeys
端点添加到wordpress中,目的是提取JSON数据,如下所示:
{
"key_id": 1,"user_id": 123,"consumer_key": "ck_xxxxxxxxxxxxxxxx","consumer_secret": "cs_xxxxxxxxxxxxxxxx","key_permissions": "read_write"
}
并将consumer_key
,consumer_secret
和key_permissions
存储在与user_id
相关的用户元数据中。
我的目标是在提取包括那些元数据的用户信息时能够获得密钥。
默认情况下,这些字段是新字段,因此,我需要确保如果数据库中不存在consumer_key
,consumer_secret
和key_permissions
,我们将创建这些字段。
现在,我已经添加了function.php
:
function handle_woocommerce_keys($request){
$user_id = $request[user_id];
$consumer_key=$request[consumer_key];
$consumer_secret=$request[consumer_secret];
$key_permissions=$request[key_permissions];
/* search user_id in db and store the keys as meta_data */
$response = new WP_REST_Response();
$response->set_status(200);
return $response;
}
add_action('rest_api_init',function () {
register_rest_route( 'village/v1','authkeys',array(
'methods' => 'POST','callback' => 'handle_woocommerce_keys'
));
});
由于我是php / wordpress中的newby,所以我不知道如何在用户数据库中为特定的user_id添加数据
感谢您的帮助
解决方法
如果您所缺少的只是数据库存储部分,那么使用WP非常容易,您只需要这样做:
// Load wp user object (if needed)
$user = new WP_User($user_id);
// or just save the data..
update_user_meta($user_id,'consumer_key',$consumer_key);
update_user_meta($user_id,'consumer_secret',$consumer_secret);
update_user_meta($user_id,'key_permissions',$key_permissions);
update_user_meta已经进行了以下检查:->创建或存在->更新
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。