WooCommerce Rest API (PHP 7.4) не может просматривать / редактировать пользователей (rest_user_cannot_view)

#php #wordpress #woocommerce #store #webshop

#php #wordpress #woocommerce #Магазин #интернет-магазин

Вопрос:

Я использую автоматический клиент для подключения к WooCommerce Rest API, и большинство запросов работают нормально. Обычно я использую конечную wc/v3 точку, но я перешел на wp/v2 нее, поскольку кажется, что роли пользователя / клиента можно редактировать только с помощью этой, и теперь нам нужно редактировать их через API. Вызов URL https://my_webshop/wp-json/wp/v2/users/{user_id} -адреса всегда приводит к rest_user_cannot_view - Sorry, you are not allowed to list users.

Для подключения к клиенту используется следующий код:

 $options = array(
  'return_as_array' => false,
  'validate_url' => false,
  'timeout' => 30,
  'ssl_verify' => false,
  'version' => "wp/v2" //added to access user endpoint
);

//$options['query_string_auth'] = "true"; //tried this one because other posts said query string authentication may help
   
$client= new Client(
  $store_url,
  $consumer_key,
  $consumer_secret,
  $options
);

$client->get("users/{user_id}");
 

Я также пытался использовать имя пользователя / пароль вместо consumer_key и secret, но все равно безуспешно.
Согласно документации по аутентификации Basic Authentication должно работать нормально.

Используя X-WP-Nonce и Cookie из заголовков результатов после входа в систему клиента браузера и добавляя их в заголовки клиента, перечислены ожидаемые пользователи, но только до тех пор, пока выполняется вход в текущий сеанс браузера. Я думаю, если есть способ получить эти параметры через API, который тоже будет работать, но я еще не нашел способ сделать это.

Ответ №1:

Обходной путь (от Mayrhofer): я нашел решение, используя плагин аутентификации WordPress REST API от miniOrange. Если выбрана установленная проверка подлинности клиента, то процесс работает с использованием учетных данных клиента веб-магазина (не ключа и секрета). Я до сих пор не знаю, почему он не работает с ключом / секретом, но, по крайней мере, я могу обновить группы сейчас.