簡體   English   中英

本地服務器上的 WooCommerce Rest API 問題

[英]WooCommerce Rest API Issue on local server

我正在開發一個與 WooCommerce 商店交互的插件,問題是插件和商店在同一個 WordPress 安裝(同一個服務器和域)上,而 WooCommerce Rest API 不起作用。 我已經問過這個問題了:

缺少身份驗證使用者密鑰的 WooCommerce API 問題

我的問題:有沒有辦法在沒有 Rest API 的情況下直接與 WooCommerce 交互,特別是如果我的插件和 WooCommerce 商店在同一台服務器上?

我終於找到了解決方案,為了在不使用 REST API 的情況下直接訪問 WooCommerce API,我首先在此鏈接上找到了很棒的代碼:

https://wordpress.org/support/topic/programming-question-memory-leak-when-accessing-products

並使用這個很棒的鏈接文檔

http://woocommerce.wp-a2z.org/oik_file/includesapiv2class-wc-api-orders-php/

然后通過在 plugins/woocommerce/includes/api 下的 plugins 文件夾中的 WooCommerce 源代碼中導航

我成功訪問了 WooCommerce,這里有一個簡單的例子來獲取一個類別的產品並使用頁碼:

//you need to sign in with wordpress admin account to access WooCommerce data
function setupWooCommerce() {
    $wooCommercePath = realpath(WP_PLUGIN_DIR . '/woocommerce/woocommerce.php');
    require_once $wooCommercePath;

    WC()->api->includes();
    WC()->api->register_resources(new WC_API_Server( '/' ));

    $credentials = [
        'user_login' => 'username',
        'user_password' => 'password'
    ];
    $user = wp_signon($credentials, false);
    wp_set_current_user($user->ID);
}

function getProducts($category, $pageNumber) {
    setupWooCommerce();
    $products = NULL;
    try {
        $api = WC()->api->WC_API_Products;
        $products = $api->get_products(null, null, array('category' => $category), $pageNumber);
    } catch (Exception $e) {
        error_log("Caught $e");
    }
    return $products;
}

您可以使用 wp rest api。 下面的示例顯示了最近 12 個訂單:

        $request = new WP_REST_Request('GET', '/wc/v3/orders/');
        $request->set_query_params(['per_page' => 12]);
        $response = rest_do_request($request);
        $server = rest_get_server();
        $data = $server->response_to_data($response, false);
        $json = wp_json_encode($data);

來源: https : //wpscholar.com/blog/internal-wp-rest-api-calls/,https : //developer.wordpress.org/rest-api/reference/posts/#list-posts

暫無
暫無

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

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