В настоящее время я использую клиентский API для реализации простого пользовательского интерфейса для загрузки продуктов. Функция client->products->create()
вроде работает нормально, но я не могу решить одну проблему.
Каждый раз, когда я загружаю продукт, поставщик настраивается на пользователя с правами администратора, а не на пользователя, который в настоящее время вошел в систему. Есть ли способ установить поставщика через API? Кто-нибудь сделал это?
Это созданная мной функция, которая вызывается 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 и получить их динамически?