Как подключить rest_pre_dispatch перед API REST по умолчанию в Woocommerce - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь зашифровать свои consumer_key и consumer_secret при каждом внешнем вызове API REST моей Woocommerce.
Итак, мои внешние вызовы (GET и POST) содержат поле, скажем encryptedData, кто содержит consumer_key и consumer_secret.

Поэтому, прежде чем API аутентифицируется, я пытаюсь декодировать мои encryptedData и поместить значения в $ _GET с rest_pre_dispatch, например:

add_action('rest_pre_dispatch', 'api_pre_dispatch', 1, 4);
function api_pre_dispatch($result, $this, $request){
  $params = $request->get_params();
  if (isset($params["encryptedData"])) {
    $apiKeys = ["consumer_key", "consumer_secret"];
    $decryptedPayload = (array) json_decode(decryptPayloadApi($params["encryptedData"]));

    foreach ($decryptedPayload as $key => $data) {
      $request->set_param($key, $data);
      if (in_array($key, $apiKeys)) {
        $_GET[$key] = $data;
      }
    }   
  }
}

Проблема в том, что моя функция выполняется до нативного perform_basic_authenticationclass-wc-rest-authentication.php ...

У вас есть идеи для меня?

...