Dokan 使用 REST API 更新设置错误

问题描述

我正在尝试使用 REST API 更新 Dokan 设置,但是当我使用 JWT 身份验证时得到 404,当我使用基本身份验证时得到 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
          })
        });

这个请求有什么问题。

解决方法

因为更新函数不存在:

转到您站点中的文件 StoreSettingController.php 以获取 dokan :

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

enter image description here 并用这个文件替换它:

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 );
}
}

好锁