WooCommerce REST API запросы PUT у кого-нибудь работают?
GET и POST работают, а PUT - "Параметр oauth_consumer_key утерян".
Отладка показала, что когда я выполняю PUT запрос, то все параметры есть в REQUEST_URI, но массив $_GET пуст и $_SERVER['REQUEST_METHOD'] все равно "GET", а не "PUT".
WooCommerce ищет параметры в массиве $_GET и не находит.
Сервер Apache, PHP 5.5.20.
Если у Вас работают PUT запросы, расскажите, как у Вас настроен сервер, какая версия PHP и Apache?
В $_GET попадут параметры из URL, если же вы отправляете данные в теле запроса, то нужно читать php://input и в зависимости от формата данных парсить их самостоятельно.
Samarkand: Это очень странно. Я сомневаюсь что Wordpress что-то делает с этим самостоятельно. Попробуйте отправить простенький PUT запрос на простенький PHP скрипт (без Wordpress) чтобы понять, не связано ли это с конфигурацией сервера. Если всё ОК - смотрите плагины и их конфигурацию.
В целом оно должно работать, а значит что-то его ломает.
Большое спасибо! Сделал, как Вы посоветовали. Действительно, на локальном сервере PUT работает, а на production - почему-то нет. Вот что получается:
«!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"»
«html»«head»
«title» 501 Not Implemented «/title»
«/head»«body»
«h1» Not Implemented «/h1»
«p»GET to /index.php not supported.«br /»
«/p»
«p»Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request
.«/p»
«/body»«/html»
Именно так, GET not supported, хотя я делаю запрос PUT!
При этом GET работает и на production.
Содержимое файла .htaccess стандартное (если его переименовать, ничего не меняется):