我目前正在使用客户端 API 来实现一个简单的用户前端来上传产品。该功能client->products->create()
似乎工作正常,但我无法解决一个问题。
每次上传产品时,vendor都设置为admin用户,而不是当前登录的用户。有没有办法通过API设置vendor?有没有人做到这一点?
这是我创建的在提交表单时由 AJaX 调用的函数(我故意将键和网站字段留空):
function addProduct()
{
$options = array(
'debug' => false,
'return_as_array' => false,
'validate_url' => false,
'timeout' => 30,
'ssl_verify' => false,
);
try {
$client = new WC_API_Client('', '', '', $options);
$productName = $_POST["productname"];
$price = $_POST["price"];
$discountPrice = $_POST["discountPrice"];
$description = $_POST["description"];
$shortDescription = $_POST["shortDescription"];
$authorId = 5;
$client->products->create(array('title' => $productName, 'type' => 'simple', 'regular_price' => $price, 'description' => $description));
} catch (WC_API_Client_Exception $e) {
echo $e->getMessage() . PHP_EOL;
echo $e->getCode() . PHP_EOL;
if ($e instanceof WC_API_Client_HTTP_Exception) {
print_r($e->get_request());
print_r($e->get_response());
}
}
echo ("Publicado" . $authorId);
// Una función AJaX en WordPress debe siempre terminarse con die().
die();
}
问题似乎是消费者密钥和消费者秘密,那么,有没有办法以编程方式为客户端提供 API 密钥并动态获取这些密钥?