本地服务器上的WooCommerce Rest API问题
问题描述:
我正在研究与WooCommerce商店进行交互的插件,问题是插件和商店位于同一WordPress安装(相同的服务器和域)以及WooCommerce Rest API didn没有工作。我已经问过这个问题:本地服务器上的WooCommerce Rest API问题
WooCommerce API Issue with Authentication Consumer Key is missing
我的问题:有没有办法与WooCommerce直接交互,而不REST API,特别是如果我的插件和WooCommerce店都是在同一台服务器上?
答
我终于找到了解决办法,以直接访问WooCommerce API不使用REST 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/
然后通过在WooCommerce中导航插件文件夹中的源代码在 插件/ woocommerce/includes/api
我成功访问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;
}