[英]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.