Поддержка Разное Дезинфекция, CURL и модерация

  • Прохожу модерацию с новым плагином. Модератор выкатил ошибки типа:
    ## Using CURL Instead of HTTP API
    ## Data Must be Sanitized, Escaped, and Validated

    Вопросы:
    1. Как я могу отказаться от Курл, если у меня используется метод PUT, например. Разве в WP есть замета на этот случай? Если есть, то как средствами вп мне посылать PUT запросы и DELETE? А если нет, что мне делать?

    2. У меня есть класс в котором есть метод, который возвращает переменную содержащую html код. (тег option с произвольным набором значений)
    В какую функцию мне обернуть эту переменную, чтобы и модератору нравилось, и код работал?
    Если я оборачиваю, например в esc_html__() то вместо рабочего кода получают просто текст. Т.е такая валидация приводит к неработоспособности кода.

    Спасибо.

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Модератор Yuri

    (@yube)

    Автор icopydoc

    (@icopydoc)

    @yube по ссылке вижу вот такой текст:

    There are other HTTP methods, such as PUT, DELETE, TRACE, and CONNECT. These methods will not be covered in this article as there aren’t pre-built methods to utilize them in WordPress, nor is it yet common for APIs to implement them.

    Если я правильно понимаю, то средствами вп PUT не послать адекватно, а значит нужно использовать curl. Так и как мне быть? Что ему можно на этот счёт написать? Типа скинуть эту цитату и сказать, что мне курл нужен?))

    Модератор Yuri

    (@yube)

    А вот этот текст с примером по ссылке с якорем разве не видно?

    <main id=»primary» class=»site-main post-11092 plugin-handbook type-plugin-handbook status-publish hentry type-handbook» role=»main»>

    Make any sort of request

    </main>
    <main id=»primary» class=»site-main post-11092 plugin-handbook type-plugin-handbook status-publish hentry type-handbook» role=»main»>

    If you need to make a request using an HTTP method that is not supported by any of the above functions do not panic. The great people developing WordPress already thought of that and lovingly provided wp_remote_request(). This function takes the same two parameters as wp_remote_get(), and allows you to specify the HTTP method as well. What data you need to pass along is up to your method.To send a DELETE method example you may have something similar to the following:

    </main>

    $args     = array(
    	'method' => 'DELETE',
    );
    $response = wp_remote_request( 'http://some-api.com/object/to/delete', $args );
    Модератор Yuri

    (@yube)

    p.s. Извиняюсь за оформление поста. Это все чертов блочный редактор! и отключаться не хочет

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Как я могу отказаться от Курл, если у меня используется метод PUT, например. Разве в WP есть замета на этот случай?

    WP_Http::request() позволяет сделать любой запрос:

    method string Request method. Accepts 'GET', 'POST', 'HEAD', 'PUT', 'DELETE', 'TRACE', 'OPTIONS', or 'PATCH'.

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

    wp_kses().

    Автор icopydoc

    (@icopydoc)

    Спасибо большое! Стало попонятнее.
    Жалко, конечно, что напрямую курлом нельзя. Причем как-то странно. В рамках импортируемых библиотек — можно. А если я из этой же самой библиотеки одну функцию вынул, с целью не засорять лишним кодом то нельзя… Придётся создавать велосипед…
    Ещё раз спасибо за ответы.

    Автор icopydoc

    (@icopydoc)

    @sergeybiryukov а подскажите, что-то не разобрался. А как при помощи этой wp_remote_request() впшной функции создать эквивалент CURLOPT_USERPWD такого круловского кода:

    $userpwd = $pwd_arr['login'].':'.$pwd_arr['pwd']; // 'логин:пароль'
    curl_setopt($curl, CURLOPT_USERPWD, $userpwd);
    
    • Ответ изменён 1 год назад пользователем icopydoc.

    создать эквивалент CURLOPT_USERPWD 

    Всё что касается заголовков запроса можно передать в $args['headers']. В частности, если вам нужно Basic HTTP Auth: https://developer.wordpress.org/apis/making-http-requests/authentication/

    Жалко, конечно, что напрямую курлом нельзя.

    Вам потом куча разработчиков спасибо скажет, т.к. все запросы сделанные с помощью WP_Http::request() можно отладить или модифицировать фильтрами.

    Причем как-то странно. В рамках импортируемых библиотек — можно.

    Это недоработка ревью-команды конечно 😁

    Автор icopydoc

    (@icopydoc)

    Вам потом куча разработчиков спасибо скажет, т.к. все запросы сделанные с помощью WP_Http::request() можно отладить или модифицировать фильтрами.

    Угу, в том числе те разрабы, кто пиратские про-версии делают) Если в основной плагин встраивать модуль проверки лицензии прошки, то в два счёта можно ломать. Понятное дело, что спиратить можно всё, что угодно, но пусть хотя бы помучаются))

    • Ответ изменён 1 год назад пользователем icopydoc.
Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Дезинфекция, CURL и модерация» закрыта для новых ответов.