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