首先,可以使用WooCommerce REST API文档here 你应该去看看。
其次,下面的示例使用/wc/v3/products/categories
(“List all product categories)端点。
这里有一种使用OAuth对您的请求进行身份验证的正确方法—它在通过HTTPS进行身份验证时始终有效,并且是通过HTTP进行身份验证的唯一可接受的选项:
如何在JavaScript中通过wp_localize_script()
. 或者用JavaScript实现下面的PHP代码。
您可以通过WoodPress管理界面生成WooCommerce REST API密钥;WooCommerce→设置(&R);“高级”选项卡(&R);REST API。
// Define the request method.
$method = \'GET\';
// Just set the second parameter to the proper endpoint, without /wp-json.
$url = get_rest_url( null, \'/wc/v3/products/categories\' );
// Define your keys.
$ck = \'<put key here>\'; // consumer key
$cs = \'<put key here>\'; // consumer secret
$params = [
// Required parameters:
\'oauth_consumer_key\' => $ck,
\'oauth_timestamp\' => time(),
\'oauth_nonce\' => wp_create_nonce( time() ),
\'oauth_signature_method\' => \'HMAC-SHA1\',
// Parameters specific to the endpoint:
\'per_page\' => 2,
];
// Sort the parameters and encode them into a single string.
uksort( $params, \'strcmp\' );
$params2 = \'\';
foreach ( $params as $key => $value ) {
$params2 .= ( $params2 ? \'%26\' : \'\' ) .
rawurlencode( $key ) . \'%3D\' . rawurlencode( $value );
}
// Create the signature base string.
$sig_base = $method . \'&\' . rawurlencode( $url ) . \'&\' . $params2;
// And generate the signature base.
$sig = base64_encode( hash_hmac( \'sha1\', $sig_base, $cs . \'&\', true ) );
// Add the required oauth_signature parameter.
$params[\'oauth_signature\'] = $sig;
// And build the query string.
$query = http_build_query( $params );
// Then make request to this URL:
//$req_url = $url . \'?\' . $query;
以下是您可以使用的其他选项,但仅当通过HTTPS进行身份验证时,您应该知道这些选项将公开您的消费者
secret 按键:
使用HTTP Basic Auth &mdash;设置HTTPAuthorization
收割台;i、 e。Authorization: Basic <base64 encoding of <consumer key>:<consumer secret>>
:
jQuery.ajax( {
url: \'/wp-json/wc/v3/products/categories\',
headers: {
\'Authorization\': \'Basic <base64-encoded value here>\'
},
...
} );
在PHP中,您可以
base64_encode( \'<consumer key>:<consumer secret>\' );
获取base64编码值。
并确保Authorization
已在服务器上启用标头
或提供使用者密钥/密码作为查询字符串参数&mdash;e、 g。https://example.com/wp-json/wc/v3/products/categories?consumer_key=<KEY>&consumer_secret=<KEY>
:
jQuery.ajax( {
url: \'/wp-json/wc/v3/products/categories?consumer_key=<key>&consumer_secret=<key>\',
...
} );
通过HTTPS进行身份验证时的另一个选项是使用标准cookie身份验证,如所述
here:
// This example provides the nonce as a query string parameter.
jQuery.ajax( {
url: \'/wp-json/wc/v3/products/categories?_wpnonce=<nonce>\',
...
} );
您也可以使用
authentication plugins, 但你需要自己测试它们。