#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. Да, именно поэтому я написал эту функцию сам. Теперь код работает с запросами