Обновить пользовательские данные в ионном - PullRequest
0 голосов
/ 19 апреля 2020

Добрый день всем, пожалуйста, мне нужна ваша помощь в том, как обновить пользовательские данные. Я новичок в angular и Иони c. Мне удалось получить идентификатор пользователя из локального хранилища, а также написать метод, который выдает пользователю новые данные, проблема, с которой я сталкиваюсь, заключается в том, как обновить пользователя новыми данными. Это мой код ниже. Спасибо.

// Update user info
  updateMethod(){

    // Retrieve user Id
    let isUserLoggedIn = localStorage.getItem('currentUserId');

    //this output user new info
    this.user = {
      first_name:this.user.first_name,
      last_name: this.user.last_name,
      username: this.user.username,
      email: this.user.email,
      billing: {
        phone: this.user.billing.phone,
        address_1: this.user.billing.address_1,
      }
   };
   console.log('new update', this.user);  
   //update user data
    this.WC.UpdateUser( isUserLoggedIn).then((data)=>{
         console.log('update successful', data);
       });

  }

service.ts

//siteUrl of the wordpress site
  siteUrl:string ='https://example.com';
  apiUrl:string ='';
  woocommercePath:string ='/wp-json/wc/v3/'
  wooPath:string ='/wp-json/wc/v2/'

  // woocommerce generated api keys
  consumerKey:string ='ck_xxxxxxxxxxxxxxx';
  consumerSecret:string ='cs_xxxxxxxxxxxxxx';


UpdateUser(userData){
  let headers = new HttpHeaders ({
    'Content-Type': 'application/x-www-form-urlencoded'
  });

  let usersData = this.JSON_to_URLEncoded(userData);

  this.apiUrl = `${this.siteUrl}${this.woocommercePath}customers/${userData}?consumer_key=${this.consumerKey}&consumer_secret=${this.consumerSecret}`;
  console.log('Update users data : ', this.apiUrl);


  return new Promise ((resolve) => {
    this.userupdate = this.http.put(this.apiUrl,usersData, {headers});
    this.userupdate.subscribe((responseData) => {
      resolve(responseData);
    });
  });

}

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

С

 this.WC.UpdateUser( isUserLoggedIn).then((data)=>{
         console.log('update successful', data);
       });

К

 this.WC.UpdateUser( isUserLoggedIn, this.user).then((data)=>{
         console.log('update successful', data);
       });

И в служебном файле.

ОТ

UpdateUser(userData){
  let headers = new HttpHeaders ({
    'Content-Type': 'application/x-www-form-urlencoded'
  });

  let usersData = this.JSON_to_URLEncoded(userData);

  this.apiUrl = `${this.siteUrl}${this.woocommercePath}customers/${userData}?consumer_key=${this.consumerKey}&consumer_secret=${this.consumerSecret}`;
  console.log('Update users data : ', this.apiUrl);


  return new Promise ((resolve) => {
    this.userupdate = this.http.put(this.apiUrl,usersData, {headers});
    this.userupdate.subscribe((responseData) => {
      resolve(responseData);
    });
  });

}

К

UpdateUser(id,userData){
  let headers = new HttpHeaders ({
    'Content-Type': 'application/x-www-form-urlencoded'
  });

  let usersData = this.JSON_to_URLEncoded(userData);

  this.apiUrl = `${this.siteUrl}${this.woocommercePath}customers/${id}?consumer_key=${this.consumerKey}&consumer_secret=${this.consumerSecret}`;
  console.log('Update users data : ', this.apiUrl);


  return new Promise ((resolve) => {
    this.userupdate = this.http.put(this.apiUrl,usersData, {headers});
    this.userupdate.subscribe((responseData) => {
      resolve(responseData);
    });
  });

}
0 голосов
/ 19 апреля 2020

Без показа вашего метода this.W C .updateUser, правильного предложения или ответа не будет.

Пожалуйста, опубликуйте это, а затем мы можем помочь.

Проще говоря, localStorage.setItem (), JSON .stringify ()) будет достаточно. Затем, когда вы хотите получить его, вам нужно сделать обратное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...