本地服务器上的WooCommerce Rest API问题

本地服务器上的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; 
}