2016-06-18 3 views
1

私はWooCommerceストアとやりとりするためのプラグインを開発中です。プラグインとストアが同じWordPressインストール(同じサーバーとドメイン)にあり、WooCommerce Rest API didn仕事はありません。私はすでにこの質問をしていますWooCommerce Rest APIローカルサーバーでの問題

WooCommerce API Issue with Authentication Consumer Key is missing

私の質問を:のREST APIなしで直接WooCommerceと対話するための方法は、私のプラグインとWooCommerceストアが同じサーバー上にある特別な場合、ありますか?

答えて

1

私は最終的に私が最初にこのリンクを偉大なコードを発見したのREST APIを使用せずに直接WooCommerceのAPIにアクセスするために、解決策を見つけた:

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

そして、この偉大なリンクのドキュメント

を使用して プラグイン/ woocommerce /含ん/ API下のpluginsフォルダにWooCommerceソースコードに移動して次に

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

私はここにカテゴリの商品やページ番号を使用して取得するために簡単な例である、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; 
} 
関連する問題