#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. Если выбрана установленная проверка подлинности клиента, то процесс работает с использованием учетных данных клиента веб-магазина (не ключа и секрета). Я до сих пор не знаю, почему он не работает с ключом / секретом, но, по крайней мере, я могу обновить группы сейчас.