WooCommerce - woocommerce_rest_cannot_view - Status 401

前端 未结 10 805
眼角桃花
眼角桃花 2021-01-02 00:09

I have generated a consumer key and consumer secret. The website has SSL installed. I have also installed plugins required for JSON and REST services. This is how the url lo

相关标签:
10条回答
  • 2021-01-02 00:44

    I just ran into this. Apparently something was funny with how curl was handling the url, so I had to encapsulate it in double quotes.

    This doesn't work: curl https://www.my-site.com/wp-json/wc/v3/orders?consumer_key=ck_40097dbc2844ce7712e1820bcadf0149c2bedegh&consumer_secret=cs_ab57e19263af0b9ab4c596c310f1e7904bb20123

    This does work: curl "https://www.my-site.com/wp-json/wc/v3/orders?consumer_key=ck_40097dbc2844ce7712e1820bcadf0149c2bedegh&consumer_secret=cs_ab57e19263af0b9ab4c596c310f1e7904bb20123"

    0 讨论(0)
  • 2021-01-02 00:45

    Trying to help others: I was struggling with the 401 response while trying to CURL, and also with VBA trying to request as content-type "application/json" However, I was able to pull a valid response by just entering this in my browser address bar: https://mywebsite.com/wp-json/wc/v2/products?consumer_key=ck_blahblah&consumer_secret=cs_blahblah

    Following this line of thought, I went back to my VBA app and changed the content type to "application/text" and was able to pull a valid response text with response code 200. Hope this helps someone.

    0 讨论(0)
  • 2021-01-02 00:50

    Try making the request using query parameter, like this:

    https://www.exemple.com/wp-json/wc/v3/orders?consumer_key=ck_01234567890&consumer_secret=cs_01234567890
    

    here: https://www.exemple.com you'll need to fill your url domain.

    here: consumer_key and consumer_secret is your ck and cs that was previous genereted on WooCommerce > Settings > Advanced > REST API

    0 讨论(0)
  • 2021-01-02 00:52

    This is how i stopped worrying and moved on.

    In short, the woocommerce rest controllers pretty much all have a SOMEWPRESTCLASS::get_item_permissions_check() method which in turn calls wc_rest_check_post_permissions() to decide if it returns that error;

    So you hook into that and validate whichever way you want:

    add_filter( 'woocommerce_rest_check_permissions', 'my_woocommerce_rest_check_permissions', 90, 4 );
    
    function my_woocommerce_rest_check_permissions( $permission, $context, $object_id, $post_type  ){
      return true;
    }
    
    0 讨论(0)
提交回复
热议问题