Nano Hash - криптовалюты, майнинг, программирование

Клиентский API REST WooCommerce — создание продукта

В настоящее время я использую клиентский 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();  

}


Ответы:


1

Да, ваш код кажется идеальным.

Проблема, которую вы определили, заключается в том, что вы можете использовать потребительский ключ администратора и секретный ключ потребителя каждый раз при создании продукта. Вам необходимо получить текущий секретный ключ потребителя пользователя и ключ потребителя для операции, которая будет выполняться пользователем.

Примечание. Убедитесь, что у всех пользователей, от имени которых вы хотите создавать продукты, установлены разрешения на чтение и запись.

Попробуйте описанный выше подход и дайте мне знать, сработало ли это для вас.

08.07.2015
  • Здравствуйте, спасибо за ответ, который помог, он опубликовал продукт у правильного поставщика, хотя также выдал ошибку: Ошибка: No tiene permisos para leer esto product [woocommerce_api_user_cannot_read_product] 401 Как я могу программно предоставить клиентам ключи API и получить их динамически? 09.07.2015
  • Лучше задать другой вопрос, так как другим, таким как вы, было бы полезно найти решение для него. А также вы можете получить более подробный ответ от нас там же. 09.07.2015
  • Хорошо, я только что опубликовал новый вопрос: stackoverflow.com/questions/31327994/ 09.07.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..