Параметры обновления Dokan с помощью ошибки REST API

#dart #dokan

Вопрос:

Я пытаюсь обновить настройки Dokan с помощью REST API, но я получаю 404, когда я использую аутентификацию JWT, и я получаю 403 (Запрещено, заголовок аутентификации искажен), когда я использую базовую аутентификацию, вот мой код (Dart):

     var jwtToken = await getUserJWTToken(emailAddress, password);

    var bearerToken = 'Bearer $jwtToken';

    var basicAuth =
        'Basic '   base64Encode(utf8.encode('$emailAddress:$password'));

    final response = await httpPut(
        Uri.parse('${rootUrl}wp-json/dokan/v1/settings'),
        headers: {
          'authorization': bearerToken,
          'cache-control': 'no-cache'
        },
        body: {
          'store_name': storeName,
          'phone': phoneNumber,
          'address': jsonEncode({
            'street_1': street1,
            'street_2': street2,
            'city': city,
            'zip': zip,
            'country': country,
            'state': state
          })
        });
 

что не так с этой просьбой.

Ответ №1:

Потому что функция обновления не существует:

перейти к файлу StoreSettingController.php в вашем поиске докана :

yourplay/wp-content/plugin/dokan-lite/includes/REST/StoreSettingController.php

введите описание изображения здесь и замените его этим файлом:

https://github.com/HusamoBinAref/dokan-setting/blob/main/StoreSettingController.php

Примечание: обновление функции в файле :

 public function update_settings( $request ) {  
$vendor = $this->get_vendor();
if ( is_wp_error( $vendor ) ) {
    return $vendor;
}
 else
 {
$response = dokan()->vendor->update( $vendor->id,  $request);
return rest_ensure_response( $response );
}
}
 

хороший замок

Комментарии:

1. Я связался со службой поддержки Dokan, и оказалось, что они еще не поддерживают запросы на отправку в конечной точке настроек, хотя это присутствует в документах.

2. Да, именно поэтому я написал эту функцию сам. Теперь код работает с запросами