2016-01-05 27 views
2

woocomerce api針對HTTP請求採用oauth1.0,針對HTTPS請求採用基本HTTP身份驗證。我的查詢很簡單。如何簡單地刪除此身份驗證?我做了一些挖掘,發現woocommerce插件中有一個類的構造函數爲禁用woocomerce api認證?

public function __construct() { 

     // To disable authentication, hook into this filter at a later priority and return a valid WP_User 
     add_filter('woocommerce_api_check_authentication', array($this, 'authenticate'), 0); 
    } 

我的工作是簡單地刪除身份驗證部分。這裏它表示要在稍後的優先級上掛接此過濾器。如何操作以及如何返回有效的WP_User?

回答

2

創建自己的插件,並把下面的代碼:

function wc_authenticate_alter(){ 
    //return wp_get_current_user(); 
    if('GET' == WC()->api->server->method){ 
     return new WP_User(1); 
    } else { 
     throw new Exception(__('You dont have permission', 'woocommerce'), 401); 
    } 
} 

add_filter('woocommerce_api_check_authentication', 'wc_authenticate_alter', 1); 

這將繞過woocommerce API認證。使用它有你自己的風險。

(您可以在主題的functions.php,而不是自己的插件添加它。但未經測試)。

+0

代碼的add_filter替換了_construct的正確的add_filter它 – user3423364

+0

在'因爲優先級1的__construct'了'add_filter'後執行作爲第三參數。 – Karthik

+0

如果我想刪除在插件中創建的特定自定義API端點的身份驗證,此代碼是否也可以工作? – Amjad