簡體   English   中英

WP rest api - POST 端點並存儲在用戶元數據中

[英]WP rest api - POST endpoint and store in the user meta data

我正在嘗試在 Wordpress 上創建一個自定義端點來處理 WooCommerce 身份驗證密鑰。

概括地說,當您使用 rest api 生成身份驗證密鑰時,這些 API 密鑰將在單獨的 POST 請求中發回。

所以發生的事情是,我的反應網站將授權請求提交給 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_keyconsumer_secretkey_permissions存儲在與user_id相關的用戶元數據中。

我的目標是在我提取用戶信息(包括那些元數據)時能夠獲得密鑰。

默認情況下,這些字段是新的,所以我需要確保如果數據庫中不存在consumer_keyconsumer_secretkey_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 的新手,我不知道如何在用戶數據庫中為特定的 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 已經做了檢查缺失 -> 創建或現有 -> 更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM